public void AutomaticModeDependentWithSetter() { var efficientMode = new AutomaticMode(); var counter = 0; ObservableUtility.FromProperty(() => efficientMode.DependentWithSetter).Subscribe(_ => counter++); Assert.AreEqual(1, counter); efficientMode.Source = !efficientMode.Source; Assert.AreEqual(2, counter); }
public void TestChangingDependenciesForSourceTrap() { var first = new Source(); var second = new Source(); var sink = new HasAsymmetricalWrapper(first, second); var counter = 0; var expectation = 0; Assert.AreEqual(false, sink.AsymmetricalWrapper); first.Woop = true; ObservableUtility.FromProperty(() => sink.AsymmetricalWrapper, false).Subscribe(value => { counter++; }); Assert.AreEqual(expectation, counter); second.Woop = true; Assert.AreEqual(expectation += FindsChangingDependenciesForDependentWithSetter ? 1 : 0, counter); }
public void DependentWithSetter() { var dependent = new HasWrapperProperty(); var counter = 0; ObservableUtility.FromProperty(() => dependent.Wrapper).Skip(1).Subscribe(_ => counter++); var expectation = 0; Assert.AreEqual(dependent.Woop, dependent.Wrapper); Assert.AreEqual(expectation, counter); dependent.FlipWoop(); Assert.AreEqual(++expectation, counter); dependent.Wrapper = !dependent.Wrapper; Assert.AreEqual(expectation += NotificationsWhenSettingDependentSetter, counter); }