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")); }
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")); }
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")); }
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")); }