public void SelectThenExcept() { var coll1 = new ObservableCollection<SelectObservableCollectionViewModel>(); coll1.Add(new SelectObservableCollectionViewModel("test")); var coll2 = new ObservableCollection<string>(new[] {"test"}); var result1 = coll1.ToLiveLinq().Select(vm => vm.Name.AsObservable()).ToReadOnlyObservableList(); var result2 = result1.ToLiveLinq().Except(coll2.ToLiveLinq()).ToReadOnlyObservableList(); result1.Count.Should().Be(1); result1[0].Should().Be("test"); result2.Count.Should().Be(0); coll1[0].Name.Value = "test2"; result1.Count.Should().Be(1); result1[0].Should().Be("test2"); result2.Count.Should().Be(1); result2[0].Should().Be("test2"); coll2[0] = "test2"; result1.Count.Should().Be(1); result1[0].Should().Be("test2"); result2.Count.Should().Be(0); coll2[0] = "test3"; result1.Count.Should().Be(1); result1[0].Should().Be("test2"); result2.Count.Should().Be(1); result2[0].Should().Be("test2"); }
public void ObservableCollection_Clear() { var source = new ObservableCollection<string>() { "A", "B", "C" }; var snapshot = source.ToLiveLinq().ToObservableEnumerable().Snapshot(); source.Clear(); snapshot.Value.Should().BeEmpty(); }
public void ObservableCollection_Add() { var source = new ObservableCollection<string>(); var snapshot = source.ToLiveLinq().ToObservableEnumerable().Snapshot(); source.Add("A"); snapshot.Value.Should().ContainSingle("A"); }
public void ObservableCollection_AddRemove() { var source = new ObservableCollection<string>(); var snapshot = source.ToLiveLinq().ToObservableEnumerable().Snapshot(); source.Add("A"); source.RemoveAt(0); snapshot.Value.Should().BeEmpty(); }
public void InitialThenChange() { var vm = new SelectObservableCollectionViewModel("test1"); var vms = new ObservableCollection<SelectObservableCollectionViewModel>(new[] { vm }); var result = vms.ToLiveLinq().Select(avm => avm.Name.AsObservable()).ToReadOnlyObservableList(); result[0].Should().Be("test1"); vm.Name.Value = "test2"; result[0].Should().Be("test2"); }
public void AddThenChangeIncludeToFalse() { var vms = new ObservableCollection<WhereObservableCollectionViewModel>(); var result = vms.ToLiveLinq().Where(vm => vm.Predicate).ToReadOnlyObservableList(); result.Count.Should().Be(0); vms.Add(new WhereObservableCollectionViewModel(true)); result.Count.Should().Be(1); vms[0].Predicate.Value = false; result.Count.Should().Be(0); }
public void ChangeIncludeToTrue() { var vms = new ObservableCollection<WhereObservableCollectionViewModel>(new[] {new WhereObservableCollectionViewModel(false)}); var result = vms.ToLiveLinq().Where(vm => vm.Predicate).ToReadOnlyObservableList(); result.Count.Should().Be(0); vms[0].Predicate.Value = true; result.Count.Should().Be(1); }
public void Remove() { var vms = new ObservableCollection<SelectObservableCollectionViewModel>(); var result = vms.ToLiveLinq().Select(vm => vm.Name.AsObservable()).ToReadOnlyObservableList(); result.Count.Should().Be(0); vms.Add(new SelectObservableCollectionViewModel("test1")); result.Count.Should().Be(1); vms.RemoveAt(0); result.Count.Should().Be(0); }
public void AddThenChange() { var vm = new SelectObservableCollectionViewModel("test1"); var vms = new ObservableCollection<SelectObservableCollectionViewModel>(); var result = vms.ToLiveLinq().Select(avm => avm.Name.AsObservable()).ToReadOnlyObservableList(); result.Should().BeEmpty(); vms.Add(vm); result.Should().BeEquivalentTo("test1"); vm.Name.Value = "test2"; result.Should().BeEquivalentTo("test2"); }
public void ToDictionary_Reset() { var source = new ObservableCollection<IKeyValuePair<int, string>>(); var get2 = Nothing<string>(); source.ToLiveLinq().ToLiveLinq()[2].Subscribe(val => get2 = val); get2.Should().Be(Nothing<string>()); source.Add(KeyValuePair(2, "Hi there")); get2.Should().Be(Something("Hi there")); source.RemoveAt(0); source.Add(KeyValuePair(2, "Hello")); get2.Should().Be(Something("Hello")); }
public void RemoveThenChangeIncludeToTrue() { var vms = new ObservableCollection<WhereObservableCollectionViewModel>(); var result = vms.ToLiveLinq().Where(vm2 => vm2.Predicate).ToReadOnlyObservableList(); result.Count.Should().Be(0); var vm = new WhereObservableCollectionViewModel(false); vms.Add(vm); result.Count.Should().Be(0); vms.RemoveAt(0); vm.Predicate.Value = true; result.Count.Should().Be(0); }
public void SelectTwice() { var coll1 = new ObservableCollection<NestedViewModel>(); var result = coll1.ToLiveLinq() .Select(nested => nested.Property.AsObservable()) .Select(kvp => kvp.Name.AsObservable()).ToReadOnlyObservableList(); result.Count.Should().Be(0); coll1.Add(new NestedViewModel(new SelectObservableCollectionViewModel("test"))); result.Count.Should().Be(1); result[0].Should().Be("test"); coll1[0].Property.Value.Name.Value = "test2"; result[0].Should().Be("test2"); }
public void SyncTo_RemoveThenChange() { var vms = new ObservableCollection<SelectObservableCollectionViewModel>(); var result = new List<string>(); vms.ToLiveLinq().Select(vm => vm.Name.AsObservable()).SyncTo(result, false); result.Count.Should().Be(0); var tmp = new SelectObservableCollectionViewModel("test1"); vms.Add(tmp); result.Count.Should().Be(1); vms.RemoveAt(0); result.Count.Should().Be(0); tmp.Name.Value = "test2"; result.Count.Should().Be(0); }
public void SyncTo_AddThenChange() { var vm = new SelectObservableCollectionViewModel("test1"); var vms = new ObservableCollection<SelectObservableCollectionViewModel>(); var result = new List<string>(); vms.ToLiveLinq().Select(avm => avm.Name.AsObservable()).SyncTo(result, false); result.Should().BeEmpty(); vms.Add(vm); result.Should().BeEquivalentTo("test1"); vm.Name.Value = "test2"; result.Should().BeEquivalentTo("test2"); }
public void SyncTo_InitialThenChange() { var vm = new SelectObservableCollectionViewModel("test1"); var vms = new ObservableCollection<SelectObservableCollectionViewModel>(new[] { vm }); var result = new List<string>(); vms.ToLiveLinq().Select(avm => avm.Name.AsObservable()).SyncTo(result, false); result[0].Should().Be("test1"); vm.Name.Value = "test2"; result[0].Should().Be("test2"); }