Skip to content

Neo4j

Neo4j is a graph database designed to work with nodes and edges. It is a ACID-compliant transactional graph database engine, and developers can communicate with it using the HTTP endpoint or by using the Bolt protocol.

The following example uses the following NuGet packages:

Install the NuGet dependencies
dotnet add package Testcontainers.Neo4j
dotnet add package Neo4j.Driver
dotnet add package xunit

IDEs and editors may also require the following packages to run tests: xunit.runner.visualstudio and Microsoft.NET.Test.Sdk.

Copy and paste the following code into a new .cs test file within an existing test project.

using Neo4j.Driver;
using Testcontainers.Neo4j;
using Xunit;

namespace TestcontainersModules;

public sealed class Neo4jContainerTest : IAsyncLifetime
{
    private readonly Neo4jContainer _neo4jContainer
        = new Neo4jBuilder().Build();

    [Fact]
    public async Task CanReadNeo4jDatabase()
    {
        const string database = "neo4j";

        await using var client = GraphDatabase.Driver(_neo4jContainer.GetConnectionString());

        await using var session = client.AsyncSession(cfg => cfg.WithDatabase(database));

        Assert.Equal(database, session.SessionConfig.Database);
    }

    public Task InitializeAsync()
        => _neo4jContainer.StartAsync();

    public Task DisposeAsync()
        => _neo4jContainer.DisposeAsync().AsTask();
}

To execute the tests, use the command dotnet test from a terminal.