Skip to content

Commit

Permalink
Use condition to enable extension test execution only from custom run…
Browse files Browse the repository at this point in the history
…ner.
  • Loading branch information
MishaDemianenko committed Oct 12, 2018
1 parent 42166dc commit a4d0895
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 7 deletions.
Expand Up @@ -20,23 +20,25 @@
package org.neo4j.test.extension;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ConditionEvaluationResult;
import org.junit.jupiter.api.extension.ExecutionCondition;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.extension.ExtensionContext;

import java.io.File;
import java.util.Optional;

import org.neo4j.test.rule.TestDirectory;

import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.extension.ConditionEvaluationResult.disabled;
import static org.neo4j.test.extension.ExecutionSharedContext.CONTEXT;
import static org.neo4j.test.extension.ExecutionSharedContext.FAILED_TEST_FILE_KEY;
import static org.neo4j.test.extension.ExecutionSharedContext.SUCCESSFUL_TEST_FILE_KEY;

/**
* This test class name should not match default test name pattern since it should not be executed by default test launcher
* Its executed by custom test junit launcher to test extensions lifecycle
*/
@ExtendWith( {DefaultFileSystemExtension.class, TestDirectoryExtension.class} )
class DirectoryExtensionLifecycleVerification
@ExtendWith( DirectoryExtensionLifecycleVerificationTest.ConfigurationParameterCondition.class )
class DirectoryExtensionLifecycleVerificationTest
{
@Inject
private TestDirectory directory;
Expand All @@ -56,4 +58,15 @@ void failAndKeepDirectory()
CONTEXT.setValue( FAILED_TEST_FILE_KEY, file );
throw new RuntimeException( "simulate test failure" );
}

static class ConfigurationParameterCondition implements ExecutionCondition
{

@Override
public ConditionEvaluationResult evaluateExecutionCondition( ExtensionContext context )
{
Optional<String> option = context.getConfigurationParameter( "extensionTest" );
return option.map( ConditionEvaluationResult::enabled ).orElseGet( () -> disabled( "configuration parameter not present" ) );
}
}
}
Expand Up @@ -103,8 +103,10 @@ void successfulTestShouldCleanupDirectory()

private static void execute( String testName )
{
LauncherDiscoveryRequest discoveryRequest = LauncherDiscoveryRequestBuilder.request().selectors(
selectMethod( DirectoryExtensionLifecycleVerification.class, testName ) ).build();
LauncherDiscoveryRequest discoveryRequest = LauncherDiscoveryRequestBuilder.request()
.selectors( selectMethod( DirectoryExtensionLifecycleVerificationTest.class, testName ))
.configurationParameter( "extensionTest", "true" )
.build();
Launcher launcher = LauncherFactory.create();
launcher.execute( discoveryRequest );
}
Expand Down

0 comments on commit a4d0895

Please sign in to comment.