public void TestNestedExpressions() { var term1 = new ReactiveVar <int>(1); var term2 = new ReactiveVar <int>(2); var subexpression = new ReactiveExpression <int>(() => term1.Value + term2.Value); ChangedCalled subexpressionChangedCalled = EnsureChangedCalled(subexpression); var term3 = new ReactiveVar <int>(3); var expression = new ReactiveExpression <int>(() => subexpression.Value + term3.Value); ChangedCalled expressionChangeCalled = EnsureChangedCalled(expression); Transaction.Start(); term3.Set(5); CompleteTransactionAndAssertChangedCalled(expressionChangeCalled); Assert.AreEqual(8, expression.Value); expressionChangeCalled.Reset(); Transaction.Start(); term1.Set(10); CompleteTransactionAndAssertChangedCalled(expressionChangeCalled); subexpressionChangedCalled.AssertCalled(); Assert.AreEqual(17, expression.Value); }
protected ChangedCalled EnsureChangedCalled(IReactive reactive) { var changedCalled = new ChangedCalled(); reactive.Changed += () => changedCalled.Increment(); return(changedCalled); }
public void TestNotifyChanged() { var testObject = new TestObject(); ChangedCalled changedCalled = EnsureChangedCalled(testObject); Transaction.Start(); testObject.IntValue = 1; testObject.IntValue = 2; testObject.IntValue = 3; CompleteTransactionAndAssertChangedCalled(changedCalled); }
public void TestNotifyChanged() { var testObject = new TestInpc(); var reactiveTestObject = new ReactiveInpc <TestInpc>(testObject); ChangedCalled changedCalled = EnsureChangedCalled(reactiveTestObject); Transaction.Start(); testObject.TestProperty = 2; testObject.TestProperty = 3; testObject.TestProperty = 4; CompleteTransactionAndAssertChangedCalled(changedCalled); }
public void TestSet() { var reactiveVar = new ReactiveVar <int>(1); ChangedCalled changedCalled = EnsureChangedCalled(reactiveVar); Transaction.Start(); reactiveVar.Set(2); changedCalled.AssertNotCalled(); Transaction.End(); changedCalled.AssertCalled(); Assert.AreEqual(2, reactiveVar.Value); }
public void TestNotifyChanged() { var testObject = new TestInpcObject(); ChangedCalled changedCalled = EnsureChangedCalled(testObject); PropertyChangedCalled propertyChangedCalled = EnsurePropertyChangedCalled(testObject); Transaction.Start(); testObject.IntValue = 1; propertyChangedCalled.AssertCalledWith(testObject, "IntValue"); propertyChangedCalled.Reset(); testObject.IntValue = 2; propertyChangedCalled.AssertCalledWith(testObject, "IntValue"); propertyChangedCalled.Reset(); testObject.IntValue = 3; propertyChangedCalled.AssertCalledWith(testObject, "IntValue"); CompleteTransactionAndAssertChangedCalled(changedCalled); }
public void TestSimpleExpression() { var term1 = new ReactiveVar <int>(1); var term2 = new ReactiveVar <int>(2); var expression = new ReactiveExpression <int>(() => term1.Value + term2.Value); Assert.AreEqual(3, expression.Value); ChangedCalled changedCalled = EnsureChangedCalled(expression); Transaction.Start(); term1.Set(3); term2.Set(4); CompleteTransactionAndAssertChangedCalled(changedCalled); Assert.AreEqual(7, expression.Value); changedCalled = EnsureChangedCalled(expression); Transaction.Start(); term1.Set(5); CompleteTransactionAndAssertChangedCalled(changedCalled); Assert.AreEqual(9, expression.Value); }
protected static void CompleteTransactionAndAssertChangedCalled(ChangedCalled changedCalled) { changedCalled.AssertNotCalled(); Transaction.End(); changedCalled.AssertCalled(); }