コード例 #1
0
        public void IntAverage_ObservableSource_NoUpdatesWhenDetached()
        {
            var update = false;
            var coll   = new NotifyCollection <int>()
            {
                1, 2, 3
            };

            var test = Observable.Expression(() => coll.Average());

            test.ValueChanged += (o, e) => update = true;

            Assert.AreEqual(2, test.Value);
            Assert.IsFalse(update);

            test.Detach();

            coll.Add(4);

            Assert.IsFalse(update);

            test.Attach();

            Assert.IsTrue(update);
            Assert.AreEqual(2.5, test.Value);
            update = false;

            coll.Add(5);

            Assert.IsTrue(update);
        }
コード例 #2
0
ファイル: AvgTests.cs プロジェクト: FrederikP/NMF
        public void IntAverage_ObservableSource_NoUpdatesWhenDetached()
        {
            var update = false;
            var coll = new NotifyCollection<int>() { 1, 2, 3 };

            var test = Observable.Expression(() => coll.Average());

            test.ValueChanged += (o, e) => update = true;

            Assert.AreEqual(2, test.Value);
            Assert.IsFalse(update);

            test.Detach();

            coll.Add(4);

            Assert.IsFalse(update);

            test.Attach();

            Assert.IsTrue(update);
            Assert.AreEqual(2.5, test.Value);
            update = false;

            coll.Add(5);

            Assert.IsTrue(update);
        }
コード例 #3
0
        public void LambdaNullableIntAverage_ObservableSourceReset_Update()
        {
            var update = false;
            var coll   = new NotifyCollection <Dummy <int?> >()
            {
                1, 2, new Dummy <int?>(), 3
            };

            var test = Observable.Expression(() => coll.Average(d => d.Item));

            test.ValueChanged += (o, e) => update = true;

            coll.Clear();

            Assert.IsTrue(update);
        }
コード例 #4
0
        public void IntAverage_ObservableSourceReset_Update()
        {
            var update = false;
            var coll   = new NotifyCollection <int>()
            {
                1, 2, 3
            };

            var test = Observable.Expression(() => coll.Average());

            test.ValueChanged += (o, e) => update = true;

            coll.Clear();

            Assert.IsTrue(update);
        }
コード例 #5
0
ファイル: UnitTest1.cs プロジェクト: mlessmann/NMF
        public void SelectWithAverage2()
        {
            var updates = 0;
            var coll    = new NotifyCollection <TestItem>();

            var query = from item in coll
                        where item.Items < coll.Average(t => t.Items)
                        select item;


            var testItem1 = new TestItem()
            {
                Items = 1, Team = "A"
            };
            var testItem2 = new TestItem()
            {
                Items = 2, Team = "A"
            };

            query.CollectionChanged += (o, e) =>
            {
                updates++;
                Assert.AreEqual(NotifyCollectionChangedAction.Add, e.Action);
                Assert.AreEqual(1, e.NewItems.Count);
                Assert.AreSame(testItem1, e.NewItems[0]);
            };

            coll.Add(testItem2);

            Assert.AreEqual(0, updates);

            coll.Add(testItem1);

            Assert.AreEqual(1, updates);
            Assert.AreEqual(1, query.Count());
            Assert.IsTrue(query.Contains(testItem1));
        }
コード例 #6
0
ファイル: UnitTest1.cs プロジェクト: FrederikP/NMF
        public void SelectWithAverage2()
        {
            var updates = 0;
            var coll = new NotifyCollection<TestItem>();

            var query = from item in coll
                        where item.Items < coll.Average(t => t.Items)
                        select item;


            var testItem1 = new TestItem() { Items = 1, Team = "A" };
            var testItem2 = new TestItem() { Items = 2, Team = "A" };

            query.CollectionChanged += (o, e) =>
            {
                updates++;
                Assert.AreEqual(NotifyCollectionChangedAction.Add, e.Action);
                Assert.AreEqual(1, e.NewItems.Count);
                Assert.AreSame(testItem1, e.NewItems[0]);
            };

            coll.Add(testItem2);

            Assert.AreEqual(0, updates);

            coll.Add(testItem1);

            Assert.AreEqual(1, updates);
            Assert.AreEqual(1, query.Count());
            Assert.IsTrue(query.Contains(testItem1));
        }
コード例 #7
0
ファイル: AvgTests.cs プロジェクト: FrederikP/NMF
        public void LambdaNullableIntAverage_ObservableSourceReset_Update()
        {
            var update = false;
            var coll = new NotifyCollection<Dummy<int?>>() { 1, 2, new Dummy<int?>(), 3 };

            var test = Observable.Expression(() => coll.Average(d => d.Item));

            test.ValueChanged += (o, e) => update = true;

            coll.Clear();

            Assert.IsTrue(update);
        }
コード例 #8
0
ファイル: AvgTests.cs プロジェクト: FrederikP/NMF
        public void IntAverage_ObservableSourceReset_Update()
        {
            var update = false;
            var coll = new NotifyCollection<int>() { 1, 2, 3 };

            var test = Observable.Expression(() => coll.Average());

            test.ValueChanged += (o, e) => update = true;

            coll.Clear();

            Assert.IsTrue(update);
        }