Exemple #1
0
            public static void Refresh()
            {
                var model1 = Collections.ReadOnlyViews.MappingViewTests.Model.Create(1);
                var model2 = Collections.ReadOnlyViews.MappingViewTests.Model.Create(2);
                var model3 = Collections.ReadOnlyViews.MappingViewTests.Model.Create(3);
                var source = new ObservableBatchCollection <Collections.ReadOnlyViews.MappingViewTests.Model <int> >(
                    new[]
                {
                    model1,
                    model1,
                    model1,
                    model2,
                    model2,
                    model2,
                    model3,
                    model3,
                    model3,
                });

                using var view     = source.AsMappingView(Collections.ReadOnlyViews.MappingViewTests.Vm.Create);
                using var expected = source.SubscribeAll();
                using var actual   = view.SubscribeAll();
                CollectionAssert.IsEmpty(actual);
                CollectionAssert.AreEqual(source, view.Select(x => x.Model));

                source.AddRange(new[] { model1, model2, model2 });
                CollectionAssert.AreEqual(source, view.Select(x => x.Model));
                CollectionAssert.AreEqual(expected, actual);

                source.Clear();
                CollectionAssert.IsEmpty(view);
                CollectionAssert.AreEqual(expected, actual, EventArgsComparer.Default);
            }
        public void AddRange()
        {
            var batchCollection = new ObservableBatchCollection <int>();

            using (var actualChanges = batchCollection.SubscribeAll())
            {
                var expectedChanges = new List <EventArgs>
                {
                    CachedEventArgs.CountPropertyChanged,
                    CachedEventArgs.IndexerPropertyChanged,
                    CachedEventArgs.NotifyCollectionReset,
                };
                batchCollection.AddRange(new[] { 1, 2 });
                CollectionAssert.AreEqual(new[] { 1, 2 }, batchCollection);
                CollectionAssert.AreEqual(expectedChanges, actualChanges, EventArgsComparer.Default);

                batchCollection.AddRange(new[] { 3, 4 });
                CollectionAssert.AreEqual(new[] { 1, 2, 3, 4 }, batchCollection);
                expectedChanges.AddRange(
                    new EventArgs[]
                {
                    CachedEventArgs.CountPropertyChanged,
                    CachedEventArgs.IndexerPropertyChanged,
                    CachedEventArgs.NotifyCollectionReset,
                });
                CollectionAssert.AreEqual(expectedChanges, actualChanges, EventArgsComparer.Default);
            }
        }
Exemple #3
0
        public MainWindowVM(
            IEnumerable <UpdaterProcess> updaters)
        {
            Updaters = new ObservableBatchCollection <UpdaterVM>(
                updaters.Select(updater => new UpdaterVM(updater)));

            updateAllCommand = new RelayCommand(() =>
            {
                foreach (var updater in Updaters)
                {
                    if (updater.UpdateCommand.CanExecute(null))
                    {
                        updater.UpdateCommand.Execute(null);
                    }
                }
            }, () =>
            {
                return(Updaters.All(updater => updater.UpdateCommand.CanExecute(null)));
            });

            foreach (var updater in Updaters)
            {
                updater.UpdateCommand.CanExecuteChanged += UpdateAllCommandCanExecuteChanged;
                updater.PropertyChanged += UpdaterPropertyChanged;
            }

            QuitCommand = new RelayCommand(() =>
            {
                App.Current.MainWindow.Close();
            });
        }
            public void Refresh()
            {
                var source = new ObservableBatchCollection <int>
                {
                    1,
                    1,
                    1,
                    2,
                    2,
                    2,
                    3,
                    3,
                    3,
                };

                using (var view = source.AsMappingView(CreateStrictMock, WithIndex, x => x.Object.Dispose()))
                {
                    using (var expected = source.SubscribeAll())
                    {
                        using (var actual = view.SubscribeAll())
                        {
                            CollectionAssert.IsEmpty(actual);
                            CollectionAssert.AreEqual(source, view.Select(x => x.Object.Value));
                            CollectionAssert.AreEqual(source.Select((_, i) => i), view.Select(x => x.Object.Index));

                            var mocks = view.ToArray();
                            foreach (var mock in mocks)
                            {
                                mock.Setup(x => x.Dispose());
                            }

                            source.AddRange(new[] { 1, 2, 2 });
                            CollectionAssert.AreEqual(source, view.Select(x => x.Object.Value));
                            CollectionAssert.AreEqual(source.Select((_, i) => i), view.Select(x => x.Object.Index));
                            CollectionAssert.AreEqual(expected, actual);
                            foreach (var mock in mocks)
                            {
                                mock.Verify(x => x.Dispose(), Times.Once);
                            }

                            mocks = view.ToArray();
                            foreach (var mock in mocks)
                            {
                                mock.Setup(x => x.Dispose());
                            }

                            source.Clear();
                            CollectionAssert.IsEmpty(view);
                            CollectionAssert.AreEqual(expected, actual, EventArgsComparer.Default);
                            foreach (var mock in mocks)
                            {
                                mock.Verify(x => x.Dispose(), Times.Once);
                            }
                        }
                    }
                }
            }
Exemple #5
0
        public void Add()
        {
            var reference      = new ObservableCollection <int>();
            var expectedEvents = reference.SubscribeAllEvents();
            var batchCol       = new ObservableBatchCollection <int>();
            var actualEvents   = batchCol.SubscribeAllEvents();

            reference.Add(1);
            batchCol.Add(1);
            CollectionAssert.AreEqual(expectedEvents, actualEvents, ObservableCollectionArgsComparer.Default);
            CollectionAssert.AreEqual(reference, batchCol);
        }
            public void RefreshAddSingle()
            {
                var reference      = new ObservableCollection <int>();
                var expectedEvents = reference.SubscribeAllEvents();
                var errors         = new ObservableBatchCollection <int>();
                var allEvents      = errors.SubscribeAllEvents();

                errors.Refresh(new[] { 1 });
                reference.Add(1);

                CollectionAssert.AreEqual(expectedEvents, allEvents, ObservableCollectionArgsComparer.Default);
                CollectionAssert.AreEqual(reference, errors);
            }
            public void Refresh()
            {
                var model1 = Model.Create(1);
                var model2 = Model.Create(2);
                var model3 = Model.Create(3);
                var source = new ObservableBatchCollection <Model <int> >(
                    new[]
                {
                    model1,
                    model1,
                    model1,
                    model2,
                    model2,
                    model2,
                    model3,
                    model3,
                    model3,
                });

                using (var view = source.AsMappingView(CreateStrictMock, x => x.Object.Dispose()))
                {
                    using (var expected = source.SubscribeAll())
                    {
                        using (var actual = view.SubscribeAll())
                        {
                            CollectionAssert.IsEmpty(actual);
                            CollectionAssert.AreEqual(source, view.Select(x => x.Object.Model));

                            source.AddRange(new[] { model1, model2, model2 });
                            CollectionAssert.AreEqual(source, view.Select(x => x.Object.Model));
                            CollectionAssert.AreEqual(expected, actual);

                            var mocks = view.ToArray();
                            foreach (var mock in mocks)
                            {
                                mock.Setup(x => x.Dispose());
                            }

                            source.Clear();
                            CollectionAssert.IsEmpty(view);
                            CollectionAssert.AreEqual(expected, actual, EventArgsComparer.Default);
                            foreach (var mock in mocks)
                            {
                                mock.Verify(x => x.Dispose(), Times.Once);
                            }
                        }
                    }
                }
            }
Exemple #8
0
 public KanjiProperties(
     KanjiDict kanjiDict,
     Kradfile kradfile,
     Radkfile radkfile,
     RadicalRemapper remapper)
 {
     this.kradfile  = kradfile;
     this.radkfile  = radkfile;
     this.remapper  = remapper;
     KanjiOrderings = new ObservableBatchCollection <KanjiOrdering>
     {
         KanjiOrdering.Create("Sort by stroke count", kanjiDict, x => x.StrokeCount),
         KanjiOrdering.Create("Sort by frequency", kanjiDict, x => x.FrequencyRating)
     };
 }
        public void SerializeRountrip()
        {
            var binaryFormatter = new BinaryFormatter();

            using (var stream = new MemoryStream())
            {
                var ints = new ObservableBatchCollection <int> {
                    1, 2
                };
                binaryFormatter.Serialize(stream, ints);
                stream.Position = 0;
                var roundtripped = (ObservableBatchCollection <int>)binaryFormatter.Deserialize(stream);
                Assert.AreEqual(ints, roundtripped);
            }
        }
Exemple #10
0
        public void AddRange()
        {
            var batchCol     = new ObservableBatchCollection <int>();
            var actualEvents = batchCol.SubscribeAllEvents();

            batchCol.AddRange(new[] { 1, 2, 3 });
            var expectedEvents = new EventArgs[]
            {
                new PropertyChangedEventArgs("Count"),
                new PropertyChangedEventArgs("Item[]"),
                new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)
            };

            CollectionAssert.AreEqual(expectedEvents, actualEvents, ObservableCollectionArgsComparer.Default);
            CollectionAssert.AreEqual(new[] { 1, 2, 3 }, batchCol);
        }
            public void RefreshRemoveSingleEmpty()
            {
                var reference = new ObservableCollection <int> {
                    1
                };
                var expectedEvents = reference.SubscribeAllEvents();
                var errors         = new ObservableBatchCollection <int> {
                    1
                };
                var allEvents = errors.SubscribeAllEvents();

                errors.Refresh(new int[0]);
                reference.Remove(1);

                CollectionAssert.AreEqual(expectedEvents, allEvents, ObservableCollectionArgsComparer.Default);
                CollectionAssert.AreEqual(reference, errors);
            }
Exemple #12
0
        public void ResetTo()
        {
            var batchCollection = new ObservableBatchCollection <int> {
                1, 2, 3
            };

            using var actualChanges = batchCollection.SubscribeAll();
            batchCollection.ResetTo(new[] { 4, 5 });
            CollectionAssert.AreEqual(new[] { 4, 5 }, batchCollection);
            var expectedChanges = new List <EventArgs>
            {
                CachedEventArgs.CountPropertyChanged,
                CachedEventArgs.IndexerPropertyChanged,
                CachedEventArgs.NotifyCollectionReset,
            };

            CollectionAssert.AreEqual(expectedChanges, actualChanges, EventArgsComparer.Default);
        }
Exemple #13
0
        public void AddRangeSingle()
        {
            var reference = new ObservableCollection <int>();

            using var expectedChanges = reference.SubscribeAll();
            var batchCollection = new ObservableBatchCollection <int>();

            using var actualChanges = batchCollection.SubscribeAll();
            reference.Add(1);
            batchCollection.AddRange(new[] { 1 });
            CollectionAssert.AreEqual(reference, batchCollection);
            CollectionAssert.AreEqual(expectedChanges, actualChanges, EventArgsComparer.Default);

            reference.Add(2);
            batchCollection.AddRange(new[] { 2 });
            CollectionAssert.AreEqual(reference, batchCollection);
            CollectionAssert.AreEqual(expectedChanges, actualChanges, EventArgsComparer.Default);
        }
            public void RefreshAddMany()
            {
                var errors = new ObservableBatchCollection <int> {
                    1
                };
                var allEvents = errors.SubscribeAllEvents();

                errors.Refresh(new[] { 2, 3, 4 });

                var expectedEvents = new List <EventArgs>
                {
                    new PropertyChangedEventArgs("Count"),
                    new PropertyChangedEventArgs("Item[]"),
                    new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)
                };

                CollectionAssert.AreEqual(expectedEvents, allEvents, ObservableCollectionArgsComparer.Default);
                CollectionAssert.AreEqual(new[] { 2, 3, 4 }, errors);
            }
Exemple #15
0
        public void RemoveAll()
        {
            var batchCollection = new ObservableBatchCollection <int> {
                1, 2, 3, 4
            };
            var reference = batchCollection.ToList();

            using var actualChanges = batchCollection.SubscribeAll();
            var expectedChanges = new List <EventArgs>
            {
                CachedEventArgs.CountPropertyChanged,
                CachedEventArgs.IndexerPropertyChanged,
                CachedEventArgs.NotifyCollectionReset,
            };

            Assert.AreEqual(reference.RemoveAll(x => x % 2 == 0), batchCollection.RemoveAll(x => x % 2 == 0));
            CollectionAssert.AreEqual(reference, batchCollection);
            CollectionAssert.AreEqual(expectedChanges, actualChanges, EventArgsComparer.Default);
        }
Exemple #16
0
        public void BatchRemove()
        {
            var reference = new ObservableCollection <int> {
                1, 2
            };
            var expectedEvents = reference.SubscribeAllEvents();
            var batchCol       = new ObservableBatchCollection <int> {
                1, 2
            };
            var actualEvents = batchCol.SubscribeAllEvents();

            reference.Remove(1);
            using (batchCol.BeginChange())
            {
                batchCol.Remove(1);
            }

            CollectionAssert.AreEqual(expectedEvents, actualEvents, ObservableCollectionArgsComparer.Default);
            CollectionAssert.AreEqual(reference, batchCol);
        }
Exemple #17
0
        public void Remove()
        {
            var reference = new ObservableCollection <int> {
                1, 2, 3
            };

            using var expectedChanges = reference.SubscribeAll();
            var batchCollection = new ObservableBatchCollection <int>(reference);

            using var actualChanges = batchCollection.SubscribeAll();
            reference.Remove(1);
            batchCollection.Remove(1);
            CollectionAssert.AreEqual(reference, batchCollection);
            CollectionAssert.AreEqual(expectedChanges, actualChanges, EventArgsComparer.Default);

            reference.Remove(2);
            batchCollection.Remove(2);
            CollectionAssert.AreEqual(reference, batchCollection);
            CollectionAssert.AreEqual(expectedChanges, actualChanges, EventArgsComparer.Default);
        }
Exemple #18
0
 public TagDisplay()
 {
     tags = new ObservableBatchCollection <KeyValuePair <Namespace, IReadOnlyList <Tag> > >();
     InitializeComponent();
 }
 public ContextList(string rootPath, IEnumerable <Context> children, SimpleProject project)
 {
     this.rootPath = rootPath;
     this.project  = project;
     this.children = new ObservableBatchCollection <Context>(children);
 }
Exemple #20
0
 public MainWindowModel()
 {
     taxonomies = new ObservableSet <TaxonomyItem>();
     namespaces = new ObservableBatchCollection <NamespaceItem>();
     files      = new ObservableBatchCollection <FileEntry>();
 }
 public LineVM(IEnumerable <WordVM> words)
 {
     Words = new ObservableBatchCollection <WordVM>(words);
 }