Skip to content

Instantly share code, notes, and snippets.

@chrisvest
Created February 12, 2014 10:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chrisvest/8953319 to your computer and use it in GitHub Desktop.
Save chrisvest/8953319 to your computer and use it in GitHub Desktop.
import org.junit.Rule;
import org.junit.Test;
import org.neo4j.graphdb.DependencyResolver;
import org.neo4j.graphdb.RelationshipType;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.kernel.GraphDatabaseAPI;
import org.neo4j.kernel.impl.nioneo.store.NeoStore;
import org.neo4j.kernel.impl.nioneo.store.NodeRecord;
import org.neo4j.kernel.impl.nioneo.store.NodeStore;
import org.neo4j.kernel.impl.nioneo.xa.NeoStoreProvider;
import org.neo4j.test.TargetDirectory;
import static org.junit.Assert.assertTrue;
public class DenseNodeBatchInserterTest
{
public static enum MyRelTypes implements RelationshipType
{
A, B, C, D
}
@Test
public void mustSplitUpRelationshipChainsWhenCreatingDenseNodes()
{
String storeDir = testDirectory.absolutePath();
BatchInserter inserter = BatchInserters.inserter( storeDir );
inserter.createNode( 1, null );
inserter.createNode( 2, null );
for ( int i = 0; i < 1000; i++ )
{
for ( MyRelTypes relType : MyRelTypes.values() )
{
inserter.createRelationship( 1, 2, relType, null );
}
}
inserter.shutdown();
GraphDatabaseAPI db = (GraphDatabaseAPI) new GraphDatabaseFactory().newEmbeddedDatabase( storeDir );
DependencyResolver dependencyResolver = db.getDependencyResolver();
NeoStoreProvider neoStoreProvider = dependencyResolver.resolveDependency( NeoStoreProvider.class );
NeoStore neoStore = neoStoreProvider.evaluate();
NodeStore nodeStore = neoStore.getNodeStore();
NodeRecord record = nodeStore.getRecord( 1 );
assertTrue( "Node " + record + " should have been dense", record.isDense() );
}
@Rule
public TargetDirectory.TestDirectory testDirectory = TargetDirectory.cleanTestDirForTest( DenseNodeBatchInserterTest.class );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment