Example #1
0
        public void build_a_storage_solution()
        {
            var graph = new PersistenceGraph(new StoreOptions());

            graph.StorageFor <User>()
            .ShouldBeSameAs(graph.StorageFor <User>());
        }
Example #2
0
        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);
        }
Example #4
0
        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> >();
        }
Example #5
0
        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();
        }