public void build_a_storage_solution() { var graph = new PersistenceGraph(new StoreOptions()); graph.StorageFor <User>() .ShouldBeSameAs(graph.StorageFor <User>()); }
private Marten.V4Internals.Sessions.QuerySession BuildQuerySession() { using var database = new ManagedConnection(new ConnectionFactory(ConnectionSource.ConnectionString), new NulloRetryPolicy()); var persistence = new PersistenceGraph(theStore.Options); var newSession = new Marten.V4Internals.Sessions.QuerySession(theStore, database, new JsonNetSerializer(), Substitute.For <ITenant>(), persistence, theStore.Options); return(newSession); }
public void only_calls_ensure_storage_exists_on_first_call() { var options = new StoreOptions(); var inner = new PersistenceGraph(options); var storage = Substitute.For <ITenantStorage>(); var graph = new StorageCheckingPersistenceGraph(storage, inner); var userPersistence = graph.StorageFor <User>(); var userPersistence2 = graph.StorageFor <User>(); var userPersistence3 = graph.StorageFor <User>(); storage.Received(1).EnsureStorageExists(typeof(User)); userPersistence.ShouldBeSameAs(userPersistence2); userPersistence.ShouldBeSameAs(userPersistence3); }
public void build_a_persistence_storage_solution_for_subclass() { var options = new StoreOptions(); options.Storage.MappingFor(typeof(User)).AddSubClass(typeof(AdminUser)); var graph = new PersistenceGraph(options); var persistence = graph.StorageFor <AdminUser>(); persistence .ShouldBeSameAs(graph.StorageFor <AdminUser>()); persistence.Lightweight.ShouldBeOfType <SubClassDocumentStorage <AdminUser, User, Guid> >(); persistence.QueryOnly.ShouldBeOfType <SubClassDocumentStorage <AdminUser, User, Guid> >(); persistence.IdentityMap.ShouldBeOfType <SubClassDocumentStorage <AdminUser, User, Guid> >(); persistence.DirtyTracking.ShouldBeOfType <SubClassDocumentStorage <AdminUser, User, Guid> >(); persistence.BulkLoader.ShouldBeOfType <SubClassBulkLoader <AdminUser, User> >(); }
public void try_to_persist_a_single_document() { var target1 = Target.Random(); var target2 = Target.Random(); var target3 = Target.Random(); theStore.Tenancy.Default.EnsureStorageExists(typeof(Target)); using var database = new ManagedConnection(new ConnectionFactory(ConnectionSource.ConnectionString), new NulloRetryPolicy()); var persistence = new PersistenceGraph(theStore.Options); using var session = new LightweightSession(theStore, database, new JsonNetSerializer(), Substitute.For <ITenant>(), persistence, theStore.Options); session.Store(target1, target2, target3); session.SaveChanges(); session.Load <Target>(target1.Id).ShouldNotBeNull(); }