public void UpdateMatched()
        {
            const string key       = "Adult1";
            var          newperson = new Person(key, 50);
            var          updated   = new Person(key, 51);

            _source.Add(newperson);
            _source.Replace(newperson, updated);

            Assert.AreEqual(2, _results.Messages.Count, "Should be 2 updates");
            Assert.AreEqual(1, _results.Messages[0].Adds, "Should be 1 adds");
            Assert.AreEqual(1, _results.Messages[1].Replaced, "Should be 1 update");
        }
예제 #2
0
        public void UpdateMatched()
        {
            const string key       = "Adult1";
            var          newperson = new Person(key, 50);
            var          updated   = new Person(key, 51);

            _source.Add(newperson);
            _source.Replace(newperson, updated);

            _results.Messages.Count.Should().Be(2, "Should be 2 updates");
            _results.Messages[0].Adds.Should().Be(1, "Should be 1 adds");
            _results.Messages[1].Replaced.Should().Be(1, "Should be 1 update");
        }
예제 #3
0
        public void Replacing()
        {
            var person      = new Person("A", 20);
            var replaceWith = new Person("A", 21);

            _source.Add(person);
            _source.Replace(person, replaceWith);
            _results.Messages.Count.Should().Be(2, "Should be 1 update message");
            _results.Data.Count.Should().Be(1, "Should be 1 items in the cache");

            _results.Messages.First().Adds.Should().Be(1, "First message should be an add");
            _results.Messages.Skip(1).First().Count.Should().Be(2, "Second messsage should be an add an a remove");
        }
예제 #4
0
        public void Replace()
        {
            var people = _generator.Take(100).ToArray();

            _source.AddRange(people);

            var shouldbefirst = new Person("__A", 99);

            _source.Replace(10, shouldbefirst);

            Assert.AreEqual(100, _results.Data.Count, "Should be 100 people in the cache");

            Assert.AreEqual(shouldbefirst, _results.Data.Items.First());
        }
예제 #5
0
        public void UpdateWillChangeTheGroup()
        {
            var person  = new Person("Adult1", 50);
            var amended = new Person("Adult1", 60);

            _source.Add(person);
            _source.Replace(0, amended);

            Assert.AreEqual(2, _results.Messages.Count, "Should be 2 updates");
            Assert.AreEqual(1, _results.Data.Count, "Should be 1 item in the cache");

            var firstGroup = _results.Data.Items.First().List.Items.ToArray();

            Assert.AreEqual(person, firstGroup[0], "Should be same person");
        }
예제 #6
0
        public void UpdateAnItemWillChangedThegroup()
        {
            var person1 = new Person("Person1", 20);

            _source.Add(person1);
            _source.Replace(person1, new Person("Person1", 21));

            Assert.AreEqual(1, _results.Data.Count);
            Assert.AreEqual(1, _results.Messages.First().Adds);
            Assert.AreEqual(1, _results.Messages.Skip(1).First().Adds);
            Assert.AreEqual(1, _results.Messages.Skip(1).First().Removes);
            var group = _results.Data.Items.First();

            Assert.AreEqual(1, group.Count);

            Assert.AreEqual(21, group.Key);
        }
        public void UpdateAnItemWillChangedThegroup()
        {
            var person1 = new Person("Person1", 20);

            _source.Add(person1);
            _source.Replace(person1, new Person("Person1", 21));

            _results.Data.Count.Should().Be(1);
            _results.Messages.First().Adds.Should().Be(1);
            _results.Messages.Skip(1).First().Adds.Should().Be(1);
            _results.Messages.Skip(1).First().Removes.Should().Be(1);
            var group = _results.Data.Items.First();

            group.Count.Should().Be(1);

            group.Key.Should().Be(21);
        }
예제 #8
0
        public void Replace()
        {
            var frientofchild1 = new PersonWithRelations("Friend1", 10);
            var child1         = new PersonWithRelations("Child1", 10, new[] { frientofchild1 });
            var child2         = new PersonWithRelations("Child2", 8);
            var child3         = new PersonWithRelations("Child3", 8);
            var mother         = new PersonWithRelations("Mother", 35, new[] { child1, child2, child3 });

            _source.Add(mother);

            var child4        = new PersonWithRelations("Child4", 2);
            var updatedMother = new PersonWithRelations("Mother", 35, new[] { child1, child2, child4 });

            _source.Replace(mother, updatedMother);

            _results.Data.Count.Should().Be(4);
            _results.Data.Items.ShouldAllBeEquivalentTo(new[] { child1, child2, frientofchild1, child4 });
        }
        public void ExpireIsCancelledWhenUpdated()
        {
            var remover = _source.ExpireAfter(p => TimeSpan.FromMilliseconds(100), _scheduler).Subscribe();

            var p1 = new Person("Name1", 20);
            var p2 = new Person("Name1", 21);

            _source.Add(p1);

            _source.Replace(p1, p2);

            _scheduler.AdvanceBy(TimeSpan.FromMilliseconds(200).Ticks);
            remover.Dispose();
            _results.Data.Count.Should().Be(0, "Should be no data in the cache");
            _results.Messages.Count.Should().Be(3, "Should be 3 updates");
            _results.Messages[0].Adds.Should().Be(1, "Should be 1 add in the first message");
            _results.Messages[1].Replaced.Should().Be(1, "Should be 1 update in the second message");
            _results.Messages[2].Removes.Should().Be(1, "Should be 1 remove in the 3rd message");
        }