Skip to content

Commit

Permalink
Merge pull request #9630 from MishaDemianenko/3.3-cleanup-test-store-…
Browse files Browse the repository at this point in the history
…path-usage

Use test directory rule instead of AbstractNeo4jTestCase.getStorePath
  • Loading branch information
MishaDemianenko committed Jul 11, 2017
2 parents 08b8e03 + d431c57 commit 4f873f5
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 50 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import org.junit.Rule;
import org.junit.Test;

import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
Expand Down Expand Up @@ -355,8 +354,6 @@ public void testLowGrabSize()
{
Map<String,String> config = new HashMap<>();
config.put( "relationship_grab_size", "1" );
File storeDir = getStorePath( "neo2" );
deleteFileOrDirectory( storeDir );
GraphDatabaseService graphDb = getImpermanentDatabase( config );

Node node1;
Expand Down Expand Up @@ -413,8 +410,6 @@ private void testLowGrabSize( boolean includeLoops )
{
Map<String, String> config = new HashMap<>();
config.put( "relationship_grab_size", "2" );
File storeDir = getStorePath( "neo2" );
deleteFileOrDirectory( storeDir );
GraphDatabaseService graphDb = getImpermanentDatabase( config );
Transaction tx = graphDb.beginTx();
Node node1 = graphDb.createNode();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,18 @@
import org.junit.Before;
import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicInteger;

import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.event.ErrorState;
import org.neo4j.graphdb.event.KernelEventHandler;
import org.neo4j.kernel.impl.AbstractNeo4jTestCase;
import org.neo4j.io.fs.FileSystemAbstraction;
import org.neo4j.kernel.internal.GraphDatabaseAPI;
import org.neo4j.test.TestGraphDatabaseFactory;

import static org.junit.Assert.assertEquals;
import static org.neo4j.kernel.impl.AbstractNeo4jTestCase.getStorePath;

public class TestShutdownSequence
{
Expand All @@ -51,8 +53,7 @@ public void canInvokeShutdownMultipleTimes()
}

@Test
public
void eventHandlersAreOnlyInvokedOnceDuringShutdown()
public void eventHandlersAreOnlyInvokedOnceDuringShutdown()
{
final AtomicInteger counter = new AtomicInteger();
graphDb.registerKernelEventHandler( new KernelEventHandler()
Expand Down Expand Up @@ -87,17 +88,17 @@ public ExecutionOrder orderComparedTo( KernelEventHandler other )
}

@Test
public
void canRemoveFilesAndReinvokeShutdown()
public void canRemoveFilesAndReinvokeShutdown() throws IOException
{
GraphDatabaseAPI databaseAPI = (GraphDatabaseAPI) this.graphDb;
FileSystemAbstraction fileSystemAbstraction = getDatabaseFileSystem( databaseAPI );
graphDb.shutdown();
AbstractNeo4jTestCase.deleteFileOrDirectory( getStorePath( "shutdown" ) );
fileSystemAbstraction.deleteRecursively( new File( databaseAPI.getStoreDir() ) );
graphDb.shutdown();
}

@Test
public
void canInvokeShutdownFromShutdownHandler()
public void canInvokeShutdownFromShutdownHandler()
{
graphDb.registerKernelEventHandler( new KernelEventHandler()
{
Expand Down Expand Up @@ -127,4 +128,9 @@ public ExecutionOrder orderComparedTo( KernelEventHandler other )
} );
graphDb.shutdown();
}

private FileSystemAbstraction getDatabaseFileSystem( GraphDatabaseAPI databaseAPI )
{
return databaseAPI.getDependencyResolver().resolveDependency( FileSystemAbstraction.class );
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,30 +22,32 @@
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.RuleChain;

import java.io.File;

import org.neo4j.graphdb.mockfs.EphemeralFileSystemAbstraction;
import org.neo4j.kernel.impl.AbstractNeo4jTestCase;
import org.neo4j.kernel.impl.store.id.IdGenerator;
import org.neo4j.kernel.impl.store.id.IdGeneratorImpl;
import org.neo4j.test.rule.TestDirectory;
import org.neo4j.test.rule.fs.EphemeralFileSystemRule;

import static org.junit.Assert.assertTrue;

public class IdGeneratorImplContractTest extends IdGeneratorContractTest
{
private EphemeralFileSystemRule fsRule = new EphemeralFileSystemRule();
private TestDirectory testDirectory = TestDirectory.testDirectory(fsRule.get());

@Rule
public EphemeralFileSystemRule fsRule = new EphemeralFileSystemRule();
public RuleChain ruleChain = RuleChain.outerRule( fsRule ).around( testDirectory );

private EphemeralFileSystemAbstraction fs;
private File storeDir;

@Before
public void doBefore()
{
fs = fsRule.get();
storeDir = AbstractNeo4jTestCase.getStorePath( "xatest" );
fs.mkdirs( storeDir );
}

@Override
Expand All @@ -71,13 +73,8 @@ public void verifyFileCleanup() throws Exception
}
}

private File file( String name )
{
return new File( storeDir, name );
}

private File idGeneratorFile()
{
return file( "testIdGenerator.id" );
return testDirectory.file( "testIdGenerator.id" );
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.RuleChain;

import java.io.File;
import java.io.IOException;
Expand All @@ -44,7 +45,6 @@
import org.neo4j.graphdb.mockfs.UncloseableDelegatingFileSystemAbstraction;
import org.neo4j.helpers.collection.Iterables;
import org.neo4j.io.fs.StoreChannel;
import org.neo4j.kernel.impl.AbstractNeo4jTestCase;
import org.neo4j.kernel.impl.store.format.RecordFormat;
import org.neo4j.kernel.impl.store.format.RecordFormats;
import org.neo4j.kernel.impl.store.format.standard.NodeRecordFormat;
Expand All @@ -57,6 +57,7 @@
import org.neo4j.kernel.impl.store.record.AbstractBaseRecord;
import org.neo4j.test.TestGraphDatabaseFactory;
import org.neo4j.test.rule.PageCacheRule;
import org.neo4j.test.rule.TestDirectory;
import org.neo4j.test.rule.fs.EphemeralFileSystemRule;

import static org.hamcrest.Matchers.is;
Expand All @@ -72,32 +73,28 @@ public class IdGeneratorTest
{
@ClassRule
public static final PageCacheRule pageCacheRule = new PageCacheRule();
private EphemeralFileSystemRule fsRule = new EphemeralFileSystemRule();
private TestDirectory testDirectory = TestDirectory.testDirectory(fsRule.get());

@Rule
public EphemeralFileSystemRule fsRule = new EphemeralFileSystemRule();
public RuleChain ruleChain = RuleChain.outerRule( fsRule ).around( testDirectory );

private EphemeralFileSystemAbstraction fs;
private File storeDir;

@Before
public void doBefore()
{
fs = fsRule.get();
storeDir = AbstractNeo4jTestCase.getStorePath( "xatest" );
fs.mkdirs( storeDir );
}

private void deleteIdGeneratorFile()
{
fs.deleteFile( idGeneratorFile() );
}

private File file( String name )
{
return new File( storeDir, name );
}

private File idGeneratorFile()
{
return file( "testIdGenerator.id" );
return testDirectory.file( "testIdGenerator.id" );
}

@Test( expected = IllegalArgumentException.class )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.RuleChain;

import java.io.File;
import java.io.IOException;
Expand All @@ -33,13 +34,13 @@
import org.neo4j.graphdb.mockfs.EphemeralFileSystemAbstraction;
import org.neo4j.helpers.collection.MapUtil;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.AbstractNeo4jTestCase;
import org.neo4j.kernel.impl.store.format.RecordFormatSelector;
import org.neo4j.kernel.impl.store.id.DefaultIdGeneratorFactory;
import org.neo4j.kernel.impl.store.record.DynamicRecord;
import org.neo4j.kernel.impl.store.record.NodeRecord;
import org.neo4j.logging.NullLogProvider;
import org.neo4j.test.rule.PageCacheRule;
import org.neo4j.test.rule.TestDirectory;
import org.neo4j.test.rule.fs.EphemeralFileSystemRule;

import static org.hamcrest.Matchers.contains;
Expand All @@ -51,22 +52,18 @@ public class TestIdGeneratorRebuilding
{
@ClassRule
public static final PageCacheRule pageCacheRule = new PageCacheRule();
private EphemeralFileSystemRule fsRule = new EphemeralFileSystemRule();
private TestDirectory testDirectory = TestDirectory.testDirectory(fsRule.get());

@Rule
public EphemeralFileSystemRule fsRule = new EphemeralFileSystemRule();
public RuleChain ruleChain = RuleChain.outerRule( fsRule ).around( testDirectory );

private EphemeralFileSystemAbstraction fs;
private File storeDir;

@Before
public void doBefore()
{
fs = fsRule.get();
storeDir = AbstractNeo4jTestCase.getStorePath( "xatest" );
fs.mkdirs( storeDir );
}

private File file( String name )
{
return new File( storeDir, name );
}

@Test
Expand All @@ -75,7 +72,7 @@ public void verifyFixedSizeStoresCanRebuildIdGeneratorSlowly() throws IOExceptio
// Given we have a store ...
Config config = Config.embeddedDefaults( MapUtil.stringMap(
GraphDatabaseSettings.rebuild_idgenerators_fast.name(), "false" ) );
File storeFile = file( "nodes" );
File storeFile = testDirectory.file( "nodes" );

DynamicArrayStore labelStore = mock( DynamicArrayStore.class );
NodeStore store = new NodeStore( storeFile, config, new DefaultIdGeneratorFactory( fs ),
Expand Down Expand Up @@ -128,8 +125,8 @@ public void verifyDynamicSizedStoresCanRebuildIdGeneratorSlowly() throws Excepti
Config config = Config.embeddedDefaults( MapUtil.stringMap(
GraphDatabaseSettings.rebuild_idgenerators_fast.name(), "false" ) );

StoreFactory storeFactory = new StoreFactory( storeDir, config, new DefaultIdGeneratorFactory( fs ),
pageCacheRule.getPageCache( fs ), fs, NullLogProvider.getInstance() );
StoreFactory storeFactory = new StoreFactory( testDirectory.graphDbDir(), config,
new DefaultIdGeneratorFactory( fs ), pageCacheRule.getPageCache( fs ), fs, NullLogProvider.getInstance() );
NeoStores neoStores = storeFactory.openAllNeoStores( true );
DynamicStringStore store = neoStores.getPropertyStore().getStringStore();

Expand Down Expand Up @@ -180,7 +177,7 @@ public void rebuildingIdGeneratorMustNotMissOutOnFreeRecordsAtEndOfFilePage() th
// Given we have a store ...
Config config = Config.embeddedDefaults( MapUtil.stringMap(
GraphDatabaseSettings.rebuild_idgenerators_fast.name(), "false" ) );
File storeFile = file( "nodes" );
File storeFile = testDirectory.file( "nodes" );

DynamicArrayStore labelStore = mock( DynamicArrayStore.class );
NodeStore store = new NodeStore( storeFile, config, new DefaultIdGeneratorFactory( fs ),
Expand Down

0 comments on commit 4f873f5

Please sign in to comment.