public void TestList2() { var sourcesList = new ClassWithList(); var property = new ReactiveExpression <int>(() => sourcesList.Sources.Count); property.Evaluate(); var counter = 0; var expectation = 1; property.Subscribe(s => ReactiveManagerTest.Const(s, () => counter++)); Assert.AreEqual(expectation, counter); var source1 = new Source(); sourcesList.Sources.Add(source1); Assert.AreEqual(++expectation, counter); Assert.AreEqual(1, property.Evaluate()); var source2 = new Source(); sourcesList.Sources.Add(source2); Assert.AreEqual(++expectation, counter); source1.Woop = true; Assert.AreEqual(expectation, counter); }
public void TestReactiveVariable() { var woop = new HasReactiveVariableAttribute(); var expression = new ReactiveExpression <bool>(() => woop.Woop); int counter = 0; var expectation = 1; expression.Subscribe(get => ReactiveManagerTest.Const(get, () => counter++)); woop.Woop = !woop.Woop; Assert.AreEqual(++expectation, counter); }
public void TestList() { var source1 = new Source(); var source2 = new Source(); var source3 = new Source(); var sourcesList = new ClassWithList(); sourcesList.Sources.Add(source1); sourcesList.Sources.Add(source2); var counter = 0; var expectation = 1; var property = new ReactiveExpression <bool>(() => sourcesList.Sources[1].Woop); property.Evaluate(); property.Subscribe(s => ReactiveManagerTest.Const(s, () => counter++)); source1.Woop = true; Assert.AreEqual(expectation, counter); source2.Woop = true; Assert.AreEqual(true, property.Evaluate()); Assert.AreEqual(++expectation, counter); source1.Woop = false; sourcesList.Sources.Insert(0, source3); Assert.AreEqual(false, property.Evaluate()); Assert.AreEqual(++expectation, counter); source2.Woop = false; source3.Woop = true; Assert.AreEqual(expectation, counter); source1.Woop = true; Assert.AreEqual(true, property.Evaluate()); Assert.AreEqual(++expectation, counter); }