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);
        }
Exemplo n.º 2
0
        protected ChangedCalled EnsureChangedCalled(IReactive reactive)
        {
            var changedCalled = new ChangedCalled();

            reactive.Changed += () => changedCalled.Increment();

            return(changedCalled);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 8
0
 protected static void CompleteTransactionAndAssertChangedCalled(ChangedCalled changedCalled)
 {
     changedCalled.AssertNotCalled();
     Transaction.End();
     changedCalled.AssertCalled();
 }