attached project with test case.
Seems this is happening when you use interfaces. Without interfaces works fine