##### Neo4j Embedded Examples

- Introduction
- Neo4j JavaDocs
- Wiki
- Source Repository
- Downloads

##### Examples

- Basic usage
- Basic index usage
- Integrated indexing
- Traversal
- Ordered path traversal
- Domain entities
- Social network
- Graph algorithms
- Management features

##### Test examples

- Base test

##### Examples full source code

- Example code
- Example test code

##### Project Documentation

- Project Information
- Project Reports

## Basic unit testing

## Unit testing a graph application

The basic pattern of unit testing with Neo4j is illustrated by the `Neo4jBasicTest.java` test.

Before each test, create a fresh database, deleting any pre-existing files:

            deleteFileOrDirectory( testDatabasePath );
            graphDb = new EmbeddedGraphDatabase( testDatabasePath.getAbsolutePath() );

File cleanup could happen here instead, but that would miss the opporunity to inspect the database after a test run. Instead, just shutdown the database:

            graphDb.shutdown();

During a test, create nodes and check to see that they are there, being careful to enclose write operations in a transaction.

            Transaction tx = graphDb.beginTx();

            Node n = null;
            try
            {
                n = graphDb.createNode();
                n.setProperty( "name", "Nancy" );
                tx.success();
            } catch ( Exception e )
            {
                tx.failure();
            } finally
            {
                tx.finish();
            }

            // The node should have an id greater than 0, which is the id of the reference node.
            assertThat( n.getId(), is( greaterThan( 0l ) ) );

            // Retrieve a node by using the id of the created node. The id's and property should match.
            Node foundNode = graphDb.getNodeById( n.getId() );
            assertThat( foundNode.getId(), is( n.getId() ) );
            assertThat( (String) foundNode.getProperty( "name" ), is( "Nancy" ) );

Full source code: Neo4jBasicTest