コード例 #1
0
        public void BatchUpdate4()
        {
            var people = _generator.Take(10).ToArray();

            _source.AddOrUpdate(people);

            var list = new ObservableCollectionExtended <Person>(people.OrderBy(p => p, _comparer));

            var toupdate = people[3];

            _source.Edit(updater =>
            {
                updater.AddOrUpdate(new Person(toupdate.Name, toupdate.Age - 24));
                updater.AddOrUpdate(new Person("Mr", "A", 10, "M"));
                updater.Remove(people[5]);
                updater.AddOrUpdate(new Person("Mr", "C", 70, "M"));
            });

            var adaptor = new SortedObservableCollectionAdaptor <Person, string>();

            adaptor.Adapt(_results.Messages.Last(), list);

            var shouldbe = _results.Messages.Last().SortedItems.Select(p => p.Value).ToList();

            list.ShouldAllBeEquivalentTo(shouldbe);
        }
コード例 #2
0
        public void InlineChanges()
        {
            var people = _generator.Take(10000).ToArray();

            _cache.AddOrUpdate(people);

            //apply mutable changes to the items
            var random   = new Random();
            var tochange = people.OrderBy(x => Guid.NewGuid()).Take(10).ToList();

            tochange.ForEach(p => p.Age = random.Next(0, 100));

            _cache.Refresh(tochange);

            var expected = people.OrderBy(t => t, _comparer).ToList();
            var actual   = _results.Messages.Last().SortedItems.Select(kv => kv.Value).ToList();

            CollectionAssert.AreEqual(expected, actual);

            var list    = new ObservableCollectionExtended <Person>();
            var adaptor = new SortedObservableCollectionAdaptor <Person, string>();

            foreach (var message in _results.Messages)
            {
                adaptor.Adapt(message, list);
            }
            CollectionAssert.AreEquivalent(expected, list);
        }
コード例 #3
0
        public void BatchUpdateWhereUpdateMovesTheIndexDown()
        {
            var people = _generator.Take(10).ToArray();

            _source.AddOrUpdate(people);

            var toupdate = people[3];

            _source.Edit(updater =>
            {
                updater.Remove(people[0].Key);
                updater.Remove(people[1].Key);

                updater.AddOrUpdate(new Person(toupdate.Name, toupdate.Age + 50));

                updater.AddOrUpdate(_generator.Take(2));

                updater.Remove(people[7]);
            });

            var list    = new ObservableCollectionExtended <Person>(people.OrderBy(p => p, _comparer));
            var adaptor = new SortedObservableCollectionAdaptor <Person, string>();

            adaptor.Adapt(_results.Messages.Last(), list);

            var shouldbe = _results.Messages.Last().SortedItems.Select(p => p.Value).ToList();

            list.Should().BeEquivalentTo(shouldbe);
        }
コード例 #4
0
        public void BatchUpdateShiftingIndicies()
        {
            var testData = new[] {
                new Person("A", 3),
                new Person("B", 5),
                new Person("C", 7),
                new Person("D", 8),
                new Person("E", 10),
                new Person("F", 12),
                new Person("G", 14)
            };

            _source.AddOrUpdate(testData);
            var list = new ObservableCollectionExtended <Person>(testData.OrderBy(p => p, _comparer));

            var toUpdate1 = testData[0];
            var toUpdate2 = testData[3];

            _source.Edit(updater =>
            {
                updater.AddOrUpdate(new Person(toUpdate1.Name, 6));
                updater.AddOrUpdate(new Person(toUpdate2.Name, 2));
            });

            var adaptor = new SortedObservableCollectionAdaptor <Person, string>();

            adaptor.Adapt(_results.Messages.Last(), list);
            var shouldbe = _results.Messages.Last().SortedItems.Select(p => p.Value).ToList();

            list.Should().BeEquivalentTo(shouldbe);
        }
コード例 #5
0
ファイル: SortFixture.cs プロジェクト: TomKearney/DynamicData
        public void BatchUpdate6()
        {
            var people = _generator.Take(10).ToArray();

            _source.AddOrUpdate(people);


            _source.BatchUpdate(updater =>
            {
                updater.Clear();
                updater.AddOrUpdate(_generator.Take(10).ToArray());
                updater.Clear();
            });


            var list = new ObservableCollectionExtended <Person>(people.OrderBy(p => p, _comparer));

            var adaptor = new SortedObservableCollectionAdaptor <Person, string>();


            adaptor.Adapt(_results.Messages.Last(), list);



            var shouldbe = _results.Messages.Last().SortedItems.Select(p => p.Value).ToList();

            CollectionAssert.AreEquivalent(shouldbe, list);
        }
コード例 #6
0
        public void InlineUpdateProducesAReplace()
        {
            var people = _generator.Take(10).ToArray();

            _source.AddOrUpdate(people);
            var toupdate = people[3];

            _source.AddOrUpdate(new Person(toupdate.Name, toupdate.Age + 1));

            var list    = new ObservableCollectionExtended <Person>(people.OrderBy(p => p, _comparer));
            var adaptor = new SortedObservableCollectionAdaptor <Person, string>();

            adaptor.Adapt(_results.Messages.Last(), list);

            var shouldbe = _results.Messages.Last().SortedItems.Select(p => p.Value).ToList();

            list.ShouldAllBeEquivalentTo(shouldbe);
        }
コード例 #7
0
        public void InlineChanges()
        {
            var people = _generator.Take(10000).ToArray();
            _cache.BatchUpdate(updater => updater.AddOrUpdate(people));

            //apply mutable changes to the items
            var random = new Random();
            var tochange = people.OrderBy(x => Guid.NewGuid()).Take(10).ToList();

            tochange.ForEach(p => p.Age = random.Next(0, 100));

               // _sortController.Resort();

               _cache.Evaluate(tochange);

            var expected = people.OrderBy(t=>t,_comparer).ToList();
            var actual = _results.Messages.Last().SortedItems.Select(kv=>kv.Value).ToList();
            CollectionAssert.AreEqual(expected,actual);

            var list = new ObservableCollectionExtended<Person>();
            var adaptor = new SortedObservableCollectionAdaptor<Person, string>();
            foreach (var message in _results.Messages)
            {
                adaptor.Adapt(message, list);
            }
            CollectionAssert.AreEquivalent(expected, list);
        }