public void build_a_storage_solution()
        {
            var graph = new ProviderGraph(new StoreOptions());

            graph.StorageFor <User>()
            .ShouldBeSameAs(graph.StorageFor <User>());
        }
示例#2
0
        public void only_calls_ensure_storage_exists_on_first_call()
        {
            var options = new StoreOptions();
            var inner   = new ProviderGraph(options);
            var storage = Substitute.For <IMartenDatabase>();

            var graph = new StorageCheckingProviderGraph(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)).SubClasses.Add(typeof(AdminUser));

            var graph = new ProviderGraph(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> >();
        }