IgnoreCall applied on a real object will will result in Weird Typemock exception.
Here's the production code
class MoreBaseClass
{
public int Counter
{
get;
set;
}
public int ReturnCount()
{
return Counter;
}
}
class NoThink
{
public MoreBaseClass DoWhat(int issd)
{
return new MoreBaseClass();
}
}
class DontCloneMe
{
public NoThink DrawComp
{ get; private set; }
public List<int> ePHandle
{
get;
private set;
}
public DontCloneMe(NoThink drawComp)
{
DrawComp = drawComp;
ePHandle = new List<int>();
}
public void DrawDotEntity(object er1)
{
}
public void FreeHandle()
{
ePHandle.ForEach(handle => DrawComp.DoWhat(handle));
ePHandle.Clear();
}
}
Here's the test code
[Test, Isolated]
public void Ftes1()
{
DontCloneMe mtt = new DontCloneMe(Isolate.Fake.Instance<NoThink>(Members.ReturnRecursiveFakes));
Isolate.WhenCalled(()=>mtt.DrawDotEntity(null)).IgnoreCall();
}
And here's the exception
No method with name FreeHandle>b__0 in type Test.TypeMockTesting.CloneTest exists.
at cz.b(Type A_0, String A_1)
at cz.c(Type A_0, String A_1)
at TypeMock.Mock.a(String A_0, Object A_1, Boolean A_2, Boolean A_3, Int32 A_4, Type[] A_5)
at TypeMock.Mock.a(String A_0, Object A_1, Boolean A_2, Boolean A_3, Type[] A_4)
at TypeMock.Mock.AlwaysCallOriginal(String method, Type[] genericTypes)
at TypeMock.MockManager.b(Mock A_0, BindingFlags A_1)
at TypeMock.MockManager.b(Object A_0, String A_1)
at TypeMock.MockManager.a(String A_0, String A_1, Object A_2, Object A_3, Boolean A_4, Object[] A_5)
at TypeMock.InternalMockManager.getReturn(Object that, String typeName, String methodName, Object methodParameters, Boolean isInjected, Object p1)
________
RL250