public void detect_changes_then_clear_the_changes()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get <Target>(a.Id, serializer.ToJson(a).ToReader(), null);

            a1.Long++;

            var b1 = map.Get <Target>(b.Id, serializer.ToJson(b).ToReader(), null);
            var c1 = map.Get <Target>(c.Id, serializer.ToJson(c).ToReader(), null);

            c1.Long++;

            var d1 = map.Get <Target>(d.Id, serializer.ToJson(d).ToReader(), null);


            var changes = map.DetectChanges();

            changes.Each(x => x.ChangeCommitted());


            map.DetectChanges().Any().ShouldBeFalse();
        }
        public void detect_changes_with_multiple_dirties()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get <Target>(a.Id, serializer.ToJson(a).ToReader(), null);

            a1.Long++;

            var b1 = map.Get <Target>(b.Id, serializer.ToJson(b).ToReader(), null);
            var c1 = map.Get <Target>(c.Id, serializer.ToJson(c).ToReader(), null);

            c1.Long++;

            var d1 = map.Get <Target>(d.Id, serializer.ToJson(d).ToReader(), null);


            var changes = map.DetectChanges();

            changes.Count().ShouldBe(2);
            changes.Any(x => x.Id.As <Guid>() == a1.Id).ShouldBeTrue();
            changes.Any(x => x.Id.As <Guid>() == c1.Id).ShouldBeTrue();
        }
        public void has_negative()
        {
            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Has <Target>(Guid.NewGuid()).ShouldBeFalse();
        }
Пример #4
0
        public void get_with_miss_in_database()
        {
            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Get <Target>(Guid.NewGuid(), () => null).ShouldBeNull();
        }
        public void has_positive()
        {
            var target     = Target.Random();
            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Store(target.Id, target);

            map.Has <Target>(target.Id).ShouldBeTrue();
        }
        public void retrieve()
        {
            var target     = Target.Random();
            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Store(target.Id, target);

            map.Retrieve <Target>(target.Id).ShouldBeTheSameAs(target);
        }
        public void store()
        {
            var target     = Target.Random();
            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Store(target.Id, target);


            map.Get <Target>(target.Id, "".ToReader(), null).ShouldBeTheSameAs(target);
        }
        public void store()
        {
            var target     = Target.Random();
            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer);

            map.Store(target.Id, target);


            map.Get <Target>(target.Id, "").ShouldBeTheSameAs(target);
        }
        public void get_value_on_first_request()
        {
            var target = Target.Random();

            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var target2 = map.Get <Target>(target.Id, serializer.ToJson(target).ToReader(), null);

            target2.Id.ShouldBe(target.Id);
            target2.ShouldNotBeTheSameAs(target);
        }
Пример #10
0
        public void get_value_on_first_request()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var target2 = map.Get<Target>(target.Id, serializer.ToJson(target));

            target2.Id.ShouldBe(target.Id);
            target2.ShouldNotBeTheSameAs(target);
        }
        public void get_with_concrete_type()
        {
            var serializer = new JsonNetSerializer();
            var camaro     = new NulloIdentityMapTests.Camaro();

            var json = serializer.ToJson(camaro);

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Get <NulloIdentityMapTests.Car>(camaro.Id, typeof(NulloIdentityMapTests.Camaro), json.ToReader(), null)
            .ShouldBeOfType <NulloIdentityMapTests.Camaro>()
            .Id.ShouldBe(camaro.Id);
        }
Пример #12
0
        public void get_with_concrete_type()
        {
            var serializer = new JsonNetSerializer();
            var camaro = new NulloIdentityMapTests.Camaro();

            var json = serializer.ToJson(camaro);

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Get<NulloIdentityMapTests.Car>(camaro.Id, typeof(NulloIdentityMapTests.Camaro), json)
                .ShouldBeOfType<NulloIdentityMapTests.Camaro>()
                .Id.ShouldBe(camaro.Id);


        }
Пример #13
0
        public void get_value_on_first_request_with_lazy_json()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var json         = serializer.ToJson(target);
            var clonedTarget = serializer.FromJson <Target>(json);

            var target2 = map.Get <Target>(target.Id, () =>
            {
                return(new FetchResult <Target>(clonedTarget, json));
            });

            target2.Id.ShouldBe(target.Id);
            target2.ShouldNotBeTheSameAs(target);
        }
Пример #14
0
        public void get_value_on_first_request_with_lazy_json()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var json = serializer.ToJson(target);
            var clonedTarget = serializer.FromJson<Target>(json);

            var target2 = map.Get<Target>(target.Id, () =>
            {
                
                return new FetchResult<Target>(clonedTarget, json);
            });

            target2.Id.ShouldBe(target.Id);
            target2.ShouldNotBeTheSameAs(target);
        }
        public void remove_item()
        {
            var target  = Target.Random();
            var target2 = Target.Random();

            target2.Id = target.Id;

            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var target3 = map.Get <Target>(target.Id, serializer.ToJson(target).ToReader(), null);

            // now remove it
            map.Remove <Target>(target.Id);

            var target4 = map.Get <Target>(target.Id, serializer.ToJson(target2).ToReader(), null);

            target4.ShouldNotBeNull();
            target4.ShouldNotBeTheSameAs(target3);
        }
        public void detect_changes_with_no_changes()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get <Target>(a.Id, serializer.ToJson(a).ToReader(), null);
            var b1 = map.Get <Target>(a.Id, serializer.ToJson(b).ToReader(), null);
            var c1 = map.Get <Target>(a.Id, serializer.ToJson(c).ToReader(), null);
            var d1 = map.Get <Target>(a.Id, serializer.ToJson(d).ToReader(), null);

            // no changes

            map.DetectChanges().Any().ShouldBeFalse();
        }
Пример #17
0
        public void get_value_on_subsequent_requests()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var target2 = map.Get<Target>(target.Id, serializer.ToJson(target));
            var target3 = map.Get<Target>(target.Id, serializer.ToJson(target));
            var target4 = map.Get<Target>(target.Id, serializer.ToJson(target));
            var target5 = map.Get<Target>(target.Id, serializer.ToJson(target));

            target2.Id.ShouldBe(target.Id);
            target3.Id.ShouldBe(target.Id);
            target4.Id.ShouldBe(target.Id);
            target5.Id.ShouldBe(target.Id);

            target2.ShouldBeTheSameAs(target3);
            target2.ShouldBeTheSameAs(target4);
            target2.ShouldBeTheSameAs(target5);
        }
Пример #18
0
        public void get_value_on_subsequent_requests()
        {
            var target = Target.Random();

            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var target2 = map.Get <Target>(target.Id, serializer.ToJson(target), null);
            var target3 = map.Get <Target>(target.Id, serializer.ToJson(target), null);
            var target4 = map.Get <Target>(target.Id, serializer.ToJson(target), null);
            var target5 = map.Get <Target>(target.Id, serializer.ToJson(target), null);

            target2.Id.ShouldBe(target.Id);
            target3.Id.ShouldBe(target.Id);
            target4.Id.ShouldBe(target.Id);
            target5.Id.ShouldBe(target.Id);

            target2.ShouldBeTheSameAs(target3);
            target2.ShouldBeTheSameAs(target4);
            target2.ShouldBeTheSameAs(target5);
        }
Пример #19
0
        public void get_value_on_subsequent_requests_with_lazy_json()
        {
            var target = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var target2 = map.Get <Target>(target.Id, () => new FetchResult <Target>(target, serializer.ToJson(target)));
            var target3 = map.Get <Target>(target.Id, () => new FetchResult <Target>(target, serializer.ToJson(target)));
            var target4 = map.Get <Target>(target.Id, () => new FetchResult <Target>(target, serializer.ToJson(target)));
            var target5 = map.Get <Target>(target.Id, () => new FetchResult <Target>(target, serializer.ToJson(target)));

            target2.Id.ShouldBe(target.Id);
            target3.Id.ShouldBe(target.Id);
            target4.Id.ShouldBe(target.Id);
            target5.Id.ShouldBe(target.Id);

            target2.ShouldBeTheSameAs(target3);
            target2.ShouldBeTheSameAs(target4);
            target2.ShouldBeTheSameAs(target5);
        }
        public void store()
        {
            var target = Target.Random();
            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Store(target.Id, target);


            map.Get<Target>(target.Id, "", null).ShouldBeTheSameAs(target);
        }
Пример #21
0
        public void retrieve()
        {
            var target = Target.Random();
            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Store(target.Id, target);

            map.Retrieve<Target>(target.Id).ShouldBeTheSameAs(target);
        }
Пример #22
0
        public void has_negative()
        {
            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);
            map.Has<Target>(Guid.NewGuid()).ShouldBeFalse();
        }
Пример #23
0
        public void has_positive()
        {
            var target = Target.Random();
            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            map.Store(target.Id, target);

            map.Has<Target>(target.Id).ShouldBeTrue();

        }
Пример #24
0
        public void get_with_miss_in_database()
        {
            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);
            map.Get<Target>(Guid.NewGuid(), () => null).ShouldBeNull();
        }
Пример #25
0
        public void remove_item()
        {
            var target = Target.Random();
            var target2 = Target.Random();
            target2.Id = target.Id;

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var target3 = map.Get<Target>(target.Id, serializer.ToJson(target));

            // now remove it
            map.Remove<Target>(target.Id);

            var target4 = map.Get<Target>(target.Id, serializer.ToJson(target2));
            target4.ShouldNotBeNull();
            target4.ShouldNotBeTheSameAs(target3);

        }
Пример #26
0
        public void detect_changes_then_clear_the_changes()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get<Target>(a.Id, serializer.ToJson(a));
            a1.Long++;

            var b1 = map.Get<Target>(b.Id, serializer.ToJson(b));
            var c1 = map.Get<Target>(c.Id, serializer.ToJson(c));
            c1.Long++;

            var d1 = map.Get<Target>(d.Id, serializer.ToJson(d));


            var changes = map.DetectChanges();

            changes.Each(x => x.ChangeCommitted());


            map.DetectChanges().Any().ShouldBeFalse();
        }
Пример #27
0
        public void detect_changes_with_multiple_dirties()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get<Target>(a.Id, serializer.ToJson(a));
            a1.Long++;

            var b1 = map.Get<Target>(b.Id, serializer.ToJson(b));
            var c1 = map.Get<Target>(c.Id, serializer.ToJson(c));
            c1.Long++;

            var d1 = map.Get<Target>(d.Id, serializer.ToJson(d));


            var changes = map.DetectChanges();
            changes.Count().ShouldBe(2);
            changes.Any(x => x.Id.As<Guid>() == a1.Id).ShouldBeTrue();
            changes.Any(x => x.Id.As<Guid>() == c1.Id).ShouldBeTrue();
        }
Пример #28
0
        public void detect_changes_with_no_changes()
        {
            var a = Target.Random();
            var b = Target.Random();
            var c = Target.Random();
            var d = Target.Random();

            var serializer = new JilSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);


            var a1 = map.Get<Target>(a.Id, serializer.ToJson(a));
            var b1 = map.Get<Target>(a.Id, serializer.ToJson(b));
            var c1 = map.Get<Target>(a.Id, serializer.ToJson(c));
            var d1 = map.Get<Target>(a.Id, serializer.ToJson(d));

            // no changes

            map.DetectChanges().Any().ShouldBeFalse();
        }
        public void get_value_on_subsequent_requests_with_lazy_json()
        {
            var target = Target.Random();

            var serializer = new TestsSerializer();

            var map = new DirtyTrackingIdentityMap(serializer, null);

            var target2 = map.Get<Target>(target.Id, () => new FetchResult<Target>(target, serializer.ToJson(target), null));
            var target3 = map.Get<Target>(target.Id, () => new FetchResult<Target>(target, serializer.ToJson(target), null));
            var target4 = map.Get<Target>(target.Id, () => new FetchResult<Target>(target, serializer.ToJson(target), null));
            var target5 = map.Get<Target>(target.Id, () => new FetchResult<Target>(target, serializer.ToJson(target), null));

            target2.Id.ShouldBe(target.Id);
            target3.Id.ShouldBe(target.Id);
            target4.Id.ShouldBe(target.Id);
            target5.Id.ShouldBe(target.Id);

            target2.ShouldBeTheSameAs(target3);
            target2.ShouldBeTheSameAs(target4);
            target2.ShouldBeTheSameAs(target5);
        }