コード例 #1
0
        public void JoinComparer_ObservableInnerResult_Update()
        {
            var update  = false;
            var item    = new ObservablePair <int, string>(1, "Foo");
            var source2 = new List <Pair <int, string> >()
            {
                item
            };
            var source1 = CreateFilterSource(-1);

            var test = source1.WithUpdates().Join(source2,
                                                  filter => filter.Item1,
                                                  content => content.Item1,
                                                  (filter, content) => filter.Item2 ? content.Item2 : null,
                                                  new AbsoluteValueComparer());

            test.CollectionChanged += (o, e) =>
            {
                Assert.AreEqual(1, e.OldItems.Count);
                Assert.AreEqual(1, e.NewItems.Count);
                Assert.AreEqual("Foo", e.OldItems[0]);
                Assert.AreEqual("Bar", e.NewItems[0]);
                update = true;
            };

            Assert.AreEqual(1, test.Count());
            Assert.IsTrue(test.Contains("Foo"));
            Assert.IsFalse(update);

            item.Item2 = "Bar";

            Assert.IsTrue(update);
            Assert.AreEqual(1, test.Count());
            Assert.IsTrue(test.Contains("Bar"));
        }
コード例 #2
0
        public void Join_ObservableInnerKey_Update()
        {
            var update  = false;
            var item    = new ObservablePair <int, string>(3, "Foo");
            var source2 = new List <Pair <int, string> >()
            {
                item
            };
            var source1 = CreateFilterSource();

            var test = source1.WithUpdates().Join(source2,
                                                  filter => filter.Item1,
                                                  content => content.Item1,
                                                  (filter, content) => filter.Item2 ? content.Item2 : null);

            test.CollectionChanged += (o, e) =>
            {
                Assert.AreEqual(1, e.OldItems.Count);
                Assert.AreEqual(1, e.NewItems.Count);
                Assert.IsNull(e.OldItems[0]);
                Assert.AreEqual("Foo", e.NewItems[0]);
                update = true;
            };

            Assert.AreEqual(1, test.Count());
            Assert.IsTrue(test.Contains(null));
            Assert.IsFalse(update);

            item.Item1 = 1;

            Assert.IsTrue(update);
            Assert.AreEqual(1, test.Count());
            Assert.IsTrue(test.Contains("Foo"));
        }
コード例 #3
0
ファイル: JoinTests.cs プロジェクト: FrederikP/NMF
        public void JoinComparer_ObservableInnerKey_Update()
        {
            var update = false;
            var item = new ObservablePair<int, string>(3, "Foo");
            var source2 = new List<Pair<int, string>>() { item };
            var source1 = CreateFilterSource(-1);

            var test = source1.WithUpdates().Join(source2,
                filter => filter.Item1,
                content => content.Item1,
                (filter, content) => filter.Item2 ? content.Item2 : null,
                new AbsoluteValueComparer());

            test.CollectionChanged += (o, e) =>
            {
                Assert.AreEqual(1, e.OldItems.Count);
                Assert.AreEqual(1, e.NewItems.Count);
                Assert.IsNull(e.OldItems[0]);
                Assert.AreEqual("Foo", e.NewItems[0]);
                update = true;
            };

            Assert.AreEqual(1, test.Count());
            Assert.IsTrue(test.Contains(null));
            Assert.IsFalse(update);

            item.Item1 = 1;

            Assert.IsTrue(update);
            Assert.AreEqual(1, test.Count());
            Assert.IsTrue(test.Contains("Foo"));
        }
コード例 #4
0
ファイル: JoinTests.cs プロジェクト: FrederikP/NMF
        public void Join_ObservableInnerResult_Update()
        {
            var update = false;
            var item = new ObservablePair<int, string>(1, "Foo");
            var source2 = new List<Pair<int, string>>() { item };
            var source1 = CreateFilterSource();

            var test = source1.WithUpdates().Join(source2,
                filter => filter.Item1,
                content => content.Item1,
                (filter, content) => filter.Item2 ? content.Item2 : null);

            test.CollectionChanged += (o, e) =>
            {
                Assert.AreEqual(1, e.OldItems.Count);
                Assert.AreEqual(1, e.NewItems.Count);
                Assert.AreEqual("Foo", e.OldItems[0]);
                Assert.AreEqual("Bar", e.NewItems[0]);
                update = true;
            };

            Assert.AreEqual(1, test.Count());
            Assert.IsTrue(test.Contains("Foo"));
            Assert.IsFalse(update);

            item.Item2 = "Bar";

            Assert.IsTrue(update);
            Assert.AreEqual(1, test.Count());
            Assert.IsTrue(test.Contains("Bar"));
        }