Hi Andreas,

thank you for your effort ! But I am looking for a way to detach neo4j
completely from file system. What I understood from thread below, there is a
way to start neo4j so it works only in memory, creating no files, so there
is no need to delete db files with every test run.

Best,
Nikola


On Tue, Oct 19, 2010 at 4:25 PM, Andreas Kollegger <
andreas.kolleg...@neotechnology.com> wrote:

> Hi Nikola,
>
> Below is a baseline for unit testing neo4j. Please let me know if you have
> any ideas for helpers that would make writing tests easier. It might be
> useful to pull together a package of base classes and maybe hamcrest
> matchers that are common to all testing.
>
> Cheers,
> Andreas
>
> package org.neo4j.examples;
>
> import org.junit.*;
> import org.neo4j.graphdb.GraphDatabaseService;
> import org.neo4j.graphdb.Node;
> import org.neo4j.graphdb.Transaction;
> import org.neo4j.kernel.EmbeddedGraphDatabase;
>
> import java.io.File;
>
> import static org.hamcrest.Matchers.greaterThan;
> import static org.hamcrest.Matchers.is;
> import static org.junit.Assert.assertThat;
>
> /**
>  * An example of unit testing with Neo4j.
>  */
> public class Neo4jBaseTest
> {
>    /**
>     * Base directory for temporary database.
>     */
>    protected File testDirectory = new File( "target/var" );
>
>    /**
>     * Full path to the temporary database.
>     */
>    protected File testDatabasePath = new File( testDirectory, "testdb" );
>    protected GraphDatabaseService graphDb;
>
>
>    /**
>     * Create temporary database for each unit test.
>     * <p/>
>     * This will delete any existing database prior to creating a new one.
>     */
>    @Before
>    public void prepareTestDatabase()
>    {
>        deleteFileOrDirectory( testDatabasePath );
>        graphDb = new EmbeddedGraphDatabase(
> testDatabasePath.getAbsolutePath() );
>    }
>
>    /**
>     * Shutdown the database.
>     */
>    @After
>    public void destroyTestDatabase()
>    {
>        graphDb.shutdown();
>    }
>
>    protected void deleteFileOrDirectory( File path )
>    {
>        if ( path.exists() )
>        {
>            if ( path.isDirectory() )
>            {
>                for ( File child : path.listFiles() )
>                {
>                    deleteFileOrDirectory( child );
>                }
>            }
>            path.delete();
>        }
>    }
>
>
>    @Test
>    public void shouldCreateNode()
>    {
>        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" )
> );
>
>    }
>
> }
>
>
>
> On Oct 19, 2010, at 2:39 PM, nikola sijakinjic wrote:
>
> > Hello,
> >
> >       I am interested in neo4j unit testing. I founded this conversation
> in
> > archive, and this looks interesting, but I failed to find function
> setup()
> > to override.
> > What class should i look for ?
> >
> > best,
> > Nikola
> >
> > You can also create the graph on a temp folder and remove it
> > overriding setup() on a base class.
> > That's how we do it for our unit tests.
> >
> > 2010/2/10 Thomas Andersson <greddbul...@gmail.com>:
> >> Hi,
> >>
> >> Is it possible to run neo4j in memory only, that is, without a
> >> directory in the file system?
> >>
> > _______________________________________________
> > Neo4j mailing list
> > User@lists.neo4j.org
> > https://lists.neo4j.org/mailman/listinfo/user
>
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to