public interface Parent { InternalProperty MainNternalProperty { get; set; } } public interface InternalProperty { ObservableCollection<Parent> Derives { get; } } public class Derived : Parent { private InternalProperty _mainNternalProperty; public InternalProperty MainNternalProperty { get { return _mainNternalProperty; } set { _mainNternalProperty = value; value.Derives.Add(this); } } } I want to be sure that the Add method was called. so the test is: [TestClass] public class ObservTests { private Derived _derived; [TestMethod] public void ObservTest() { // Arrange _derived = Isolate.Fake.Instance<Derived>(Members.CallOriginal); InternalProperty nternalProperty = Isolate.Fake.Instance<InternalProperty>(); Isolate.WhenCalled(() => nternalProperty.Derives).WillReturn(Isolate.Fake.Instance<ObservableCollection<Parent>>()); // Act _derived.MainNternalProperty = nternalProperty; // Assert Isolate.WhenCalled(() => nternalProperty.Derives.Add(_derived)); } }
Struggling with legacy code? Let’s solve it together
Δ
Notifications