I have a bug in ReturnRecursiveFakes, when the equals method are override.
Here's the production code
public abstract class SimpleClass
{
public string ID
{
get;
set;
}
public string Node
{
get
{
throw new NotImplementedException();
}
}
}
public abstract class WrapperClass
{
public virtual SimpleClass simClass
{
get;
set;
}
public override bool Equals(object obj)
{
WrapperClass rt = obj as WrapperClass;
return (rt.simClass.Node == simClass.Node);
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
public class WrapperClassList
{
public void Add(WrapperClass wc)
{
Debug.Assert(wc.simClass.ID != null, "hello???");
string testStr = wc.simClass.ID;
}
}
Here's the test code
[Test, Isolated]
public void TestRecursive()
{
WrapperClass sc = Isolate.Fake.Instance<WrapperClass>(Members.ReturnRecursiveFakes);
Isolate.WhenCalled(() => sc.simClass.ID).WillReturn("1");
WrapperClassList sclist = new WrapperClassList();
sclist.Add(sc);
}
The code will blow up at line
string testStr = wc.simClass.ID;
________
Henry Ford II history