Skip to content

Commit

Permalink
First part of kernel test migration to junit5
Browse files Browse the repository at this point in the history
Migrate part of simple unit tests.
Move kernel-it specific helper classes outside of kernel module.
Small cleanup.
  • Loading branch information
MishaDemianenko committed Aug 7, 2018
1 parent acdc047 commit 6d55b52
Show file tree
Hide file tree
Showing 45 changed files with 564 additions and 733 deletions.
Expand Up @@ -30,6 +30,7 @@
import org.neo4j.graphdb.spatial.Point; import org.neo4j.graphdb.spatial.Point;
import org.neo4j.helpers.collection.Iterators; import org.neo4j.helpers.collection.Iterators;
import org.neo4j.test.mockito.matcher.Neo4jMatchers; import org.neo4j.test.mockito.matcher.Neo4jMatchers;
import org.neo4j.test.mockito.mock.SpatialMocks;
import org.neo4j.test.rule.ImpermanentDatabaseRule; import org.neo4j.test.rule.ImpermanentDatabaseRule;
import org.neo4j.values.storable.CoordinateReferenceSystem; import org.neo4j.values.storable.CoordinateReferenceSystem;
import org.neo4j.values.storable.PointValue; import org.neo4j.values.storable.PointValue;
Expand All @@ -40,10 +41,6 @@
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import static org.neo4j.graphdb.SpatialMocks.mockCartesian;
import static org.neo4j.graphdb.SpatialMocks.mockCartesian_3D;
import static org.neo4j.graphdb.SpatialMocks.mockWGS84;
import static org.neo4j.graphdb.SpatialMocks.mockWGS84_3D;
import static org.neo4j.helpers.collection.Iterators.asSet; import static org.neo4j.helpers.collection.Iterators.asSet;
import static org.neo4j.helpers.collection.Iterators.count; import static org.neo4j.helpers.collection.Iterators.count;
import static org.neo4j.helpers.collection.MapUtil.map; import static org.neo4j.helpers.collection.MapUtil.map;
Expand All @@ -52,6 +49,10 @@
import static org.neo4j.test.mockito.matcher.Neo4jMatchers.hasProperty; import static org.neo4j.test.mockito.matcher.Neo4jMatchers.hasProperty;
import static org.neo4j.test.mockito.matcher.Neo4jMatchers.inTx; import static org.neo4j.test.mockito.matcher.Neo4jMatchers.inTx;
import static org.neo4j.test.mockito.matcher.Neo4jMatchers.isEmpty; import static org.neo4j.test.mockito.matcher.Neo4jMatchers.isEmpty;
import static org.neo4j.test.mockito.mock.SpatialMocks.mockCartesian;
import static org.neo4j.test.mockito.mock.SpatialMocks.mockCartesian_3D;
import static org.neo4j.test.mockito.mock.SpatialMocks.mockWGS84;
import static org.neo4j.test.mockito.mock.SpatialMocks.mockWGS84_3D;


public class IndexingAcceptanceTest public class IndexingAcceptanceTest
{ {
Expand Down
Expand Up @@ -19,8 +19,8 @@
*/ */
package org.neo4j.diagnostics; package org.neo4j.diagnostics;


import org.junit.Rule; import org.junit.jupiter.api.Test;
import org.junit.Test; import org.junit.jupiter.api.extension.ExtendWith;


import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
Expand All @@ -37,86 +37,30 @@
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;


import org.neo4j.io.fs.DefaultFileSystemAbstraction;
import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.io.fs.FileSystemAbstraction;
import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.configuration.Config;
import org.neo4j.test.extension.DefaultFileSystemExtension;
import org.neo4j.test.extension.Inject;
import org.neo4j.test.extension.TestDirectoryExtension;
import org.neo4j.test.rule.TestDirectory; import org.neo4j.test.rule.TestDirectory;
import org.neo4j.test.rule.fs.DefaultFileSystemRule;


import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals; import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.neo4j.diagnostics.DiagnosticsReportSources.newDiagnosticsFile; import static org.neo4j.diagnostics.DiagnosticsReportSources.newDiagnosticsFile;


public class DiagnosticsReporterTest @ExtendWith( {DefaultFileSystemExtension.class, TestDirectoryExtension.class} )
class DiagnosticsReporterTest
{ {
@Rule @Inject
public final TestDirectory testDirectory = TestDirectory.testDirectory(); private TestDirectory testDirectory;
@Rule @Inject
public final DefaultFileSystemRule fileSystemRule = new DefaultFileSystemRule(); private DefaultFileSystemAbstraction fileSystem;

static class MyProvider extends DiagnosticsOfflineReportProvider
{
private final FileSystemAbstraction fs;
private List<DiagnosticsReportSource> logFiles = new ArrayList<>();

MyProvider( FileSystemAbstraction fs )
{
super( "my-provider", "logs" );
this.fs = fs;
}

void addFile( String destination, File file )
{
logFiles.add( newDiagnosticsFile( destination, fs, file ) );
}

@Override
public void init( FileSystemAbstraction fs, Config config, File storeDirectory )
{
}

@Override
public List<DiagnosticsReportSource> provideSources( Set<String> classifiers )
{
List<DiagnosticsReportSource> sources = new ArrayList<>();
if ( classifiers.contains( "fail" ) )
{
sources.add( new FailingSource() );
}
if ( classifiers.contains( "logs" ) )
{
sources.addAll( logFiles );
}

return sources;
}
}

private static class FailingSource implements DiagnosticsReportSource
{
@Override
public String destinationPath()
{
return "fail.txt";
}

@Override
public void addToArchive( Path archiveDestination, DiagnosticsReporterProgress progress )
{
progress.percentChanged( 30 );
throw new RuntimeException( "You had it coming..." );
}

@Override
public long estimatedSize( DiagnosticsReporterProgress progress )
{
return 0;
}
}


@Test @Test
public void dumpFiles() throws Exception void dumpFiles() throws Exception
{ {
DiagnosticsReporter reporter = setupDiagnosticsReporter(); DiagnosticsReporter reporter = setupDiagnosticsReporter();


Expand All @@ -129,10 +73,10 @@ public void dumpFiles() throws Exception
} }


@Test @Test
public void shouldContinueAfterError() throws Exception void shouldContinueAfterError() throws Exception
{ {
DiagnosticsReporter reporter = new DiagnosticsReporter( ); DiagnosticsReporter reporter = new DiagnosticsReporter( );
MyProvider myProvider = new MyProvider( fileSystemRule.get() ); MyProvider myProvider = new MyProvider( fileSystem );
reporter.registerOfflineProvider( myProvider ); reporter.registerOfflineProvider( myProvider );


myProvider.addFile( "logs/a.txt", createNewFileWithContent( "a.txt", "file a") ); myProvider.addFile( "logs/a.txt", createNewFileWithContent( "a.txt", "file a") );
Expand Down Expand Up @@ -173,7 +117,7 @@ public void shouldContinueAfterError() throws Exception
} }


@Test @Test
public void supportPathsWithSpaces() throws IOException void supportPathsWithSpaces() throws IOException
{ {
DiagnosticsReporter reporter = setupDiagnosticsReporter(); DiagnosticsReporter reporter = setupDiagnosticsReporter();


Expand All @@ -194,15 +138,15 @@ private File createNewFileWithContent( String name, String content ) throws IOEx
private DiagnosticsReporter setupDiagnosticsReporter() throws IOException private DiagnosticsReporter setupDiagnosticsReporter() throws IOException
{ {
DiagnosticsReporter reporter = new DiagnosticsReporter( ); DiagnosticsReporter reporter = new DiagnosticsReporter( );
MyProvider myProvider = new MyProvider( fileSystemRule.get() ); MyProvider myProvider = new MyProvider( fileSystem );
reporter.registerOfflineProvider( myProvider ); reporter.registerOfflineProvider( myProvider );


myProvider.addFile( "logs/a.txt", createNewFileWithContent( "a.txt", "file a") ); myProvider.addFile( "logs/a.txt", createNewFileWithContent( "a.txt", "file a") );
myProvider.addFile( "logs/b.txt", createNewFileWithContent( "b.txt", "file b") ); myProvider.addFile( "logs/b.txt", createNewFileWithContent( "b.txt", "file b") );
return reporter; return reporter;
} }


private void verifyContent( Path destination ) throws IOException private static void verifyContent( Path destination ) throws IOException
{ {
URI uri = URI.create("jar:file:" + destination.toAbsolutePath().toUri().getRawPath() ); URI uri = URI.create("jar:file:" + destination.toAbsolutePath().toUri().getRawPath() );


Expand All @@ -217,4 +161,64 @@ private void verifyContent( Path destination ) throws IOException
assertEquals( "file b", fileB.get( 0 ) ); assertEquals( "file b", fileB.get( 0 ) );
} }
} }

private static class MyProvider extends DiagnosticsOfflineReportProvider
{
private final FileSystemAbstraction fs;
private final List<DiagnosticsReportSource> logFiles = new ArrayList<>();

MyProvider( FileSystemAbstraction fs )
{
super( "my-provider", "logs" );
this.fs = fs;
}

void addFile( String destination, File file )
{
logFiles.add( newDiagnosticsFile( destination, fs, file ) );
}

@Override
public void init( FileSystemAbstraction fs, Config config, File storeDirectory )
{
}

@Override
public List<DiagnosticsReportSource> provideSources( Set<String> classifiers )
{
List<DiagnosticsReportSource> sources = new ArrayList<>();
if ( classifiers.contains( "fail" ) )
{
sources.add( new FailingSource() );
}
if ( classifiers.contains( "logs" ) )
{
sources.addAll( logFiles );
}

return sources;
}
}
private static class FailingSource implements DiagnosticsReportSource
{

@Override
public String destinationPath()
{
return "fail.txt";
}

@Override
public void addToArchive( Path archiveDestination, DiagnosticsReporterProgress progress )
{
progress.percentChanged( 30 );
throw new RuntimeException( "You had it coming..." );
}

@Override
public long estimatedSize( DiagnosticsReporterProgress progress )
{
return 0;
}
}
} }
Expand Up @@ -19,23 +19,23 @@
*/ */
package org.neo4j.graphdb; package org.neo4j.graphdb;


import org.junit.Test; import org.junit.jupiter.api.Test;


import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors; import java.util.stream.Collectors;


import static java.util.Arrays.asList; import static java.util.Arrays.asList;
import static org.junit.Assert.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.neo4j.helpers.collection.Iterators.iterator; import static org.neo4j.helpers.collection.Iterators.iterator;
import static org.neo4j.helpers.collection.ResourceClosingIterator.newResourceIterator; import static org.neo4j.helpers.collection.ResourceClosingIterator.newResourceIterator;


public class ResourceIterableTest class ResourceIterableTest
{ {
@Test @Test
public void streamShouldCloseSingleOnCompleted() void streamShouldCloseSingleOnCompleted()
{ {
// Given // Given
AtomicBoolean closed = new AtomicBoolean( false ); AtomicBoolean closed = new AtomicBoolean( false );
Expand All @@ -52,7 +52,7 @@ public void streamShouldCloseSingleOnCompleted()
} }


@Test @Test
public void streamShouldCloseMultipleOnCompleted() void streamShouldCloseMultipleOnCompleted()
{ {
// Given // Given
AtomicInteger closed = new AtomicInteger(); AtomicInteger closed = new AtomicInteger();
Expand All @@ -67,6 +67,6 @@ public void streamShouldCloseMultipleOnCompleted()


// Then // Then
assertEquals( asList(1,2,3), result ); assertEquals( asList(1,2,3), result );
assertEquals( "two calls to close", 2, closed.get() ); assertEquals( 2, closed.get(), "two calls to close" );
} }
} }

0 comments on commit 6d55b52

Please sign in to comment.