Пример #1
0
        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);
        }
Пример #3
0
        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);
        }