Search in sources :

Example 36 with TestDatabaseManagementServiceBuilder

use of org.neo4j.test.TestDatabaseManagementServiceBuilder in project neo4j by neo4j.

the class FirstStartupIT method shouldBeEmptyWhenFirstStarted.

@Test
void shouldBeEmptyWhenFirstStarted() {
    // When
    var storeDir = testDir.absolutePath();
    DatabaseManagementService managementService = new TestDatabaseManagementServiceBuilder(storeDir).build();
    GraphDatabaseService db = managementService.database(DEFAULT_DATABASE_NAME);
    // Then
    try (Transaction transaction = db.beginTx()) {
        assertEquals(0, count(transaction.getAllNodes()));
        assertEquals(0, count(transaction.getAllRelationships()));
        assertEquals(0, count(transaction.getAllRelationshipTypes()));
        assertEquals(0, count(transaction.getAllLabels()));
        assertEquals(0, count(transaction.getAllPropertyKeys()));
    } finally {
        managementService.shutdown();
    }
}
Also used : TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) DatabaseManagementService(org.neo4j.dbms.api.DatabaseManagementService) Test(org.junit.jupiter.api.Test)

Example 37 with TestDatabaseManagementServiceBuilder

use of org.neo4j.test.TestDatabaseManagementServiceBuilder in project neo4j by neo4j.

the class LabelsAcceptanceTest method oversteppingMaxNumberOfLabelsShouldFailGracefully.

@Test
void oversteppingMaxNumberOfLabelsShouldFailGracefully() throws IOException {
    JobScheduler scheduler = JobSchedulerFactory.createScheduler();
    try (EphemeralFileSystemAbstraction fileSystem = new EphemeralFileSystemAbstraction();
        Lifespan lifespan = new Lifespan(scheduler);
        PageCache pageCache = new MuninnPageCache(swapper(fileSystem), scheduler, MuninnPageCache.config(1_000))) {
        // Given
        Dependencies dependencies = new Dependencies();
        dependencies.satisfyDependencies(createIdContextFactoryWithMaxedOutLabelTokenIds(fileSystem, scheduler));
        DatabaseManagementService managementService = new TestDatabaseManagementServiceBuilder().setFileSystem(fileSystem).noOpSystemGraphInitializer().setExternalDependencies(dependencies).impermanent().build();
        GraphDatabaseService graphDatabase = managementService.database(DEFAULT_DATABASE_NAME);
        // When
        try (Transaction tx = graphDatabase.beginTx()) {
            assertThrows(ConstraintViolationException.class, () -> tx.createNode().addLabel(Labels.MY_LABEL));
        }
        managementService.shutdown();
    }
}
Also used : JobScheduler(org.neo4j.scheduler.JobScheduler) TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) InternalTransaction(org.neo4j.kernel.impl.coreapi.InternalTransaction) KernelTransaction(org.neo4j.kernel.api.KernelTransaction) EphemeralFileSystemAbstraction(org.neo4j.io.fs.EphemeralFileSystemAbstraction) MuninnPageCache(org.neo4j.io.pagecache.impl.muninn.MuninnPageCache) Dependencies(org.neo4j.collection.Dependencies) Lifespan(org.neo4j.kernel.lifecycle.Lifespan) DatabaseManagementService(org.neo4j.dbms.api.DatabaseManagementService) PageCache(org.neo4j.io.pagecache.PageCache) MuninnPageCache(org.neo4j.io.pagecache.impl.muninn.MuninnPageCache) Test(org.junit.jupiter.api.Test)

Example 38 with TestDatabaseManagementServiceBuilder

use of org.neo4j.test.TestDatabaseManagementServiceBuilder in project neo4j by neo4j.

the class GraphDatabaseInternalLogIT method shouldWriteToInternalDiagnosticsLog.

@Test
void shouldWriteToInternalDiagnosticsLog() throws Exception {
    // Given
    DatabaseManagementService managementService = new TestDatabaseManagementServiceBuilder(testDir.homePath()).setConfig(GraphDatabaseSettings.logs_directory, testDir.directory("logs").toAbsolutePath()).build();
    var databaseId = ((GraphDatabaseAPI) managementService.database(DEFAULT_DATABASE_NAME)).databaseId();
    managementService.shutdown();
    Path internalLog = testDir.directory("logs").resolve(INTERNAL_LOG_FILE);
    // Then
    assertThat(Files.isRegularFile(internalLog)).isEqualTo(true);
    assertThat(Files.size(internalLog)).isGreaterThan(0L);
    assertEquals(1, countOccurrences(internalLog, databaseId + " is ready."));
    assertEquals(2, countOccurrences(internalLog, databaseId + " is unavailable."));
}
Also used : Path(java.nio.file.Path) TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) DatabaseManagementService(org.neo4j.dbms.api.DatabaseManagementService) Test(org.junit.jupiter.api.Test)

Example 39 with TestDatabaseManagementServiceBuilder

use of org.neo4j.test.TestDatabaseManagementServiceBuilder in project neo4j by neo4j.

the class GraphDatabaseInternalLogIT method shouldNotWriteDebugToInternalDiagnosticsLogByDefault.

@Test
void shouldNotWriteDebugToInternalDiagnosticsLogByDefault() throws Exception {
    // Given
    DatabaseManagementService managementService = new TestDatabaseManagementServiceBuilder(testDir.homePath()).setConfig(GraphDatabaseSettings.logs_directory, testDir.directory("logs").toAbsolutePath()).build();
    GraphDatabaseService db = managementService.database(DEFAULT_DATABASE_NAME);
    // When
    LogService logService = ((GraphDatabaseAPI) db).getDependencyResolver().resolveDependency(LogService.class);
    logService.getInternalLog(getClass()).debug("A debug entry");
    managementService.shutdown();
    Path internalLog = testDir.directory("logs").resolve(INTERNAL_LOG_FILE);
    // Then
    assertThat(Files.isRegularFile(internalLog)).isEqualTo(true);
    assertThat(Files.size(internalLog)).isGreaterThan(0L);
    assertEquals(0, countOccurrences(internalLog, "A debug entry"));
}
Also used : Path(java.nio.file.Path) TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) DatabaseManagementService(org.neo4j.dbms.api.DatabaseManagementService) LogService(org.neo4j.logging.internal.LogService) Test(org.junit.jupiter.api.Test)

Example 40 with TestDatabaseManagementServiceBuilder

use of org.neo4j.test.TestDatabaseManagementServiceBuilder in project neo4j by neo4j.

the class CancelIndexPopulationIT method shouldKeepIndexInPopulatingStateBetweenRestarts.

@Test
void shouldKeepIndexInPopulatingStateBetweenRestarts() throws InterruptedException {
    DatabaseManagementService dbms = new TestDatabaseManagementServiceBuilder(directory.homePath()).build();
    try {
        GraphDatabaseAPI db = (GraphDatabaseAPI) dbms.database(DEFAULT_DATABASE_NAME);
        // given
        Monitors monitors = db.getDependencyResolver().resolveDependency(Monitors.class);
        Barrier.Control barrier = new Barrier.Control();
        monitors.addMonitorListener(populationCompletionBlocker(barrier));
        // when
        createRelevantNode(db);
        createIndex(db);
        barrier.await();
    } finally {
        // This call to shutdown will eventually make a call to populationCancelled on the monitor below
        dbms.shutdown();
    }
    dbms = new TestDatabaseManagementServiceBuilder(directory.homePath()).build();
    try {
        GraphDatabaseAPI db = (GraphDatabaseAPI) dbms.database(DEFAULT_DATABASE_NAME);
        // then
        assertEquals(Schema.IndexState.ONLINE, awaitAndGetIndexState(db));
    } finally {
        dbms.shutdown();
    }
}
Also used : TestDatabaseManagementServiceBuilder(org.neo4j.test.TestDatabaseManagementServiceBuilder) GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Monitors(org.neo4j.monitoring.Monitors) Barrier(org.neo4j.test.Barrier) DatabaseManagementService(org.neo4j.dbms.api.DatabaseManagementService) Test(org.junit.jupiter.api.Test)

Aggregations

TestDatabaseManagementServiceBuilder (org.neo4j.test.TestDatabaseManagementServiceBuilder)135 DatabaseManagementService (org.neo4j.dbms.api.DatabaseManagementService)74 Test (org.junit.jupiter.api.Test)48 Transaction (org.neo4j.graphdb.Transaction)42 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)38 GraphDatabaseAPI (org.neo4j.kernel.internal.GraphDatabaseAPI)30 Path (java.nio.file.Path)23 BeforeEach (org.junit.jupiter.api.BeforeEach)18 Node (org.neo4j.graphdb.Node)18 EphemeralFileSystemAbstraction (org.neo4j.io.fs.EphemeralFileSystemAbstraction)13 AssertableLogProvider (org.neo4j.logging.AssertableLogProvider)11 PageCache (org.neo4j.io.pagecache.PageCache)10 UncloseableDelegatingFileSystemAbstraction (org.neo4j.io.fs.UncloseableDelegatingFileSystemAbstraction)9 DatabaseLayout (org.neo4j.io.layout.DatabaseLayout)8 KernelTransaction (org.neo4j.kernel.api.KernelTransaction)7 TokenIndexProviderFactory (org.neo4j.kernel.impl.index.schema.TokenIndexProviderFactory)7 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)6 Dependencies (org.neo4j.collection.Dependencies)6 Config (org.neo4j.configuration.Config)6 DatabaseManagementServiceBuilder (org.neo4j.dbms.api.DatabaseManagementServiceBuilder)6