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);
        }
Beispiel #2
0
        public void BatchUpdate1()
        {
            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.Remove(people[0].Key);
                updater.Remove(people[1].Key);
                updater.AddOrUpdate(new Person(toupdate.Name, toupdate.Age - 24));
                updater.Remove(people[7]);
            });

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

            actual.ShouldAllBeEquivalentTo(expected);

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

            foreach (var message in _results.Messages)
            {
                adaptor.Adapt(message, list);
            }

            list.ShouldAllBeEquivalentTo(expected);
        }
        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);
        }
        public void BatchUpdate3()
        {
            var people = _generator.Take(10).ToArray();

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

            var toupdate = people[7];

            _source.Edit(
                updater =>
            {
                updater.AddOrUpdate(new Person(toupdate.Name, toupdate.Age - 24));
                updater.AddOrUpdate(new Person("Mr", "A", 10, "M"));
                updater.AddOrUpdate(new Person("Mr", "B", 40, "M"));
                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.Should().BeEquivalentTo(shouldbe);
        }
Beispiel #6
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);
        }
Beispiel #7
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);
        }
Beispiel #8
0
        public void BatchUpdate6()
        {
            var people = _generator.Take(10).ToArray();

            _source.AddOrUpdate(people);

            _source.Edit(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();

            list.ShouldAllBeEquivalentTo(shouldbe);
        }