public void get_with_json() { var serializer = new TestsSerializer(); var target = new Target(); var json = serializer.ToJson(target); var map = new NulloIdentityMap(serializer); var target2 = map.Get<Target>(target.Id, json, null); target2.Id.ShouldBe(target.Id); }
public void lazy_get_hit() { var serializer = new TestsSerializer(); var target = new Target(); var json = serializer.ToJson(target); var map = new NulloIdentityMap(serializer); var target2 = map.Get<Target>(target.Id, () => new FetchResult<Target>(target, json, null)); target2.Id.ShouldBe(target.Id); }
public void store() { var target = Target.Random(); var serializer = new TestsSerializer(); var map = new IdentityMap(serializer, null); map.Store(target.Id, target); map.Get <Target>(target.Id, "", null).ShouldBeTheSameAs(target); }
public void lazy_get_hit() { var serializer = new TestsSerializer(); var target = new Target(); var json = serializer.ToJson(target); var map = new NulloIdentityMap(serializer); var target2 = map.Get <Target>(target.Id, () => new FetchResult <Target>(target, json, null)); target2.Id.ShouldBe(target.Id); }
public void get_with_json() { var serializer = new TestsSerializer(); var target = new Target(); var json = serializer.ToJson(target); var map = new NulloIdentityMap(serializer); var target2 = map.Get <Target>(target.Id, json.ToReader(), null); target2.Id.ShouldBe(target.Id); }
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), null); target2.Id.ShouldBe(target.Id); target2.ShouldNotBeTheSameAs(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); }
public void get_value_on_first_request_with_lazy_json() { var target = Target.Random(); var serializer = new TestsSerializer(); var map = new IdentityMap(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, null)); }); target2.Id.ShouldBe(target.Id); target2.ShouldNotBeTheSameAs(target); }
public void end_to_end_test_using_the_transform() { var user = new User { FirstName = "Jeremy", LastName = "Miller" }; var json = new TestsSerializer().ToCleanJson(user); var func = TransformFunction.ForFile(new StoreOptions(), _getFullnameJs); using var conn = theStore.Tenancy.Default.Database.CreateConnection(); conn.Open(); conn.CreateCommand(func.GenerateFunction()).ExecuteNonQuery(); var actual = (string)conn.CreateCommand("select mt_transform_get_fullname(:json)") .With("json", json, NpgsqlDbType.Jsonb) .ExecuteScalar(); actual.ShouldBe("{\"fullname\": \"Jeremy Miller\"}"); }
public void end_to_end_test_using_the_transform() { var user = new User { FirstName = "Jeremy", LastName = "Miller" }; var json = new TestsSerializer().ToCleanJson(user); var func = TransformFunction.ForFile(new StoreOptions(), _getFullnameJs); using (var conn = theStore.Tenancy.Default.OpenConnection()) { var cmd = new NpgsqlCommand(func.GenerateFunction()); conn.Execute(cmd); var cmd2 = new NpgsqlCommand("select mt_transform_get_fullname(:json)").WithJsonParameter("json", json); var actual = conn.QueryScalar <string>(cmd2); actual.ShouldBe("{\"fullname\": \"Jeremy Miller\"}"); } }
public void remove_item() { var target = Target.Random(); var target2 = Target.Random(); target2.Id = target.Id; var serializer = new TestsSerializer(); var map = new IdentityMap(serializer, null); var target3 = map.Get<Target>(target.Id, serializer.ToJson(target), null); // now remove it map.Remove<Target>(target.Id); var target4 = map.Get<Target>(target.Id, serializer.ToJson(target2), null); target4.ShouldNotBeNull(); target4.ShouldNotBeTheSameAs(target3); }
public void get_value_on_first_request_with_lazy_json() { var target = Target.Random(); var serializer = new TestsSerializer(); 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, null); }); target2.Id.ShouldBe(target.Id); target2.ShouldNotBeTheSameAs(target); }
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(); }
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 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); }
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); }
public void get_value_on_subsequent_requests() { var target = Target.Random(); var serializer = new TestsSerializer(); var map = new IdentityMap(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); }
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), null); var b1 = map.Get<Target>(a.Id, serializer.ToJson(b), null); var c1 = map.Get<Target>(a.Id, serializer.ToJson(c), null); var d1 = map.Get<Target>(a.Id, serializer.ToJson(d), null); // no changes 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), null); a1.Long++; var b1 = map.Get<Target>(b.Id, serializer.ToJson(b), null); var c1 = map.Get<Target>(c.Id, serializer.ToJson(c), null); c1.Long++; var d1 = map.Get<Target>(d.Id, serializer.ToJson(d), 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 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), null); a1.Long++; var b1 = map.Get<Target>(b.Id, serializer.ToJson(b), null); var c1 = map.Get<Target>(c.Id, serializer.ToJson(c), null); c1.Long++; var d1 = map.Get<Target>(d.Id, serializer.ToJson(d), null); var changes = map.DetectChanges(); changes.Each(x => x.ChangeCommitted()); map.DetectChanges().Any().ShouldBeFalse(); }
public void get_with_miss_in_database() { var serializer = new TestsSerializer(); 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 has_negative() { var serializer = new TestsSerializer(); var map = new DirtyTrackingIdentityMap(serializer, null); map.Has<Target>(Guid.NewGuid()).ShouldBeFalse(); }
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 IdentityMap(serializer, null); map.Store(target.Id, target); map.Get<Target>(target.Id, "", null).ShouldBeTheSameAs(target); }
public void end_to_end_test_using_the_transform() { using (var store = TestingDocumentStore.Basic()) { var user = new User {FirstName = "Jeremy", LastName = "Miller"}; var json = new TestsSerializer().ToCleanJson(user); var func = TransformFunction.ForFile(new StoreOptions(), _getFullnameJs); using (var conn = store.Advanced.OpenConnection()) { conn.Execute(cmd => cmd.Sql(func.GenerateFunction()).ExecuteNonQuery()); var actual = conn.Execute(cmd => { return cmd.Sql("select mt_transform_get_fullname(:json)") .WithJsonParameter("json", json).ExecuteScalar().As<string>(); }); actual.ShouldBe("{\"fullname\": \"Jeremy Miller\"}"); } } }
public TestService() { _testsSerializer = new TestsSerializer(); }
public void get_value_on_subsequent_requests_with_lazy_json() { var target = Target.Random(); var serializer = new TestsSerializer(); var map = new IdentityMap(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); }