Skip to content

Commit

Permalink
Parametrize AbstractExtensionContext
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrannen committed Jun 12, 2016
1 parent 657df85 commit 6c418d2
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 20 deletions.
Expand Up @@ -28,15 +28,15 @@
/** /**
* @since 5.0 * @since 5.0
*/ */
abstract class AbstractExtensionContext implements ExtensionContext { abstract class AbstractExtensionContext<T extends TestDescriptor> implements ExtensionContext {


private final ExtensionContext parent; private final ExtensionContext parent;
private final EngineExecutionListener engineExecutionListener; private final EngineExecutionListener engineExecutionListener;
private final TestDescriptor testDescriptor; private final T testDescriptor;
private final ExtensionValuesStore valuesStore; private final ExtensionValuesStore valuesStore;


AbstractExtensionContext(ExtensionContext parent, EngineExecutionListener engineExecutionListener, AbstractExtensionContext(ExtensionContext parent, EngineExecutionListener engineExecutionListener,
TestDescriptor testDescriptor) { T testDescriptor) {
this.parent = parent; this.parent = parent;
this.engineExecutionListener = engineExecutionListener; this.engineExecutionListener = engineExecutionListener;
this.testDescriptor = testDescriptor; this.testDescriptor = testDescriptor;
Expand All @@ -46,7 +46,7 @@ abstract class AbstractExtensionContext implements ExtensionContext {
private ExtensionValuesStore createStore(ExtensionContext parent) { private ExtensionValuesStore createStore(ExtensionContext parent) {
ExtensionValuesStore parentStore = null; ExtensionValuesStore parentStore = null;
if (parent != null) { if (parent != null) {
parentStore = ((AbstractExtensionContext) parent).valuesStore; parentStore = ((AbstractExtensionContext<?>) parent).valuesStore;
} }
return new ExtensionValuesStore(parentStore); return new ExtensionValuesStore(parentStore);
} }
Expand All @@ -61,7 +61,7 @@ public Optional<ExtensionContext> getParent() {
return Optional.ofNullable(parent); return Optional.ofNullable(parent);
} }


protected TestDescriptor getTestDescriptor() { protected T getTestDescriptor() {
return testDescriptor; return testDescriptor;
} }


Expand Down
Expand Up @@ -25,7 +25,7 @@
* @since 5.0 * @since 5.0
*/ */
@API(Internal) @API(Internal)
public final class ClassBasedContainerExtensionContext extends AbstractExtensionContext public final class ClassBasedContainerExtensionContext extends AbstractExtensionContext<ClassTestDescriptor>
implements ContainerExtensionContext { implements ContainerExtensionContext {


public ClassBasedContainerExtensionContext(ExtensionContext parent, EngineExecutionListener engineExecutionListener, public ClassBasedContainerExtensionContext(ExtensionContext parent, EngineExecutionListener engineExecutionListener,
Expand All @@ -50,7 +50,7 @@ public AnnotatedElement getElement() {


@Override @Override
public Optional<Class<?>> getTestClass() { public Optional<Class<?>> getTestClass() {
return Optional.of(((ClassTestDescriptor) getTestDescriptor()).getTestClass()); return Optional.of(getTestDescriptor().getTestClass());
} }


@Override @Override
Expand Down
Expand Up @@ -25,7 +25,8 @@
* @since 5.0 * @since 5.0
*/ */
@API(Internal) @API(Internal)
public final class MethodBasedTestExtensionContext extends AbstractExtensionContext implements TestExtensionContext { public final class MethodBasedTestExtensionContext extends AbstractExtensionContext<MethodTestDescriptor>
implements TestExtensionContext {


private final Object testInstance; private final Object testInstance;


Expand All @@ -36,33 +37,33 @@ public MethodBasedTestExtensionContext(ExtensionContext parent, EngineExecutionL
} }


@Override @Override
public Optional<Method> getTestMethod() { public String getUniqueId() {
return Optional.of(((MethodTestDescriptor) getTestDescriptor()).getTestMethod()); return getTestDescriptor().getUniqueId().toString();
} }


@Override @Override
public Object getTestInstance() { public String getDisplayName() {
return this.testInstance; return getTestDescriptor().getDisplayName();
} }


@Override @Override
public Optional<Class<?>> getTestClass() { public AnnotatedElement getElement() {
return Optional.of(((MethodTestDescriptor) getTestDescriptor()).getTestClass()); return getTestMethod().get();
} }


@Override @Override
public String getUniqueId() { public Optional<Class<?>> getTestClass() {
return getTestDescriptor().getUniqueId().toString(); return Optional.of(getTestDescriptor().getTestClass());
} }


@Override @Override
public String getDisplayName() { public Optional<Method> getTestMethod() {
return getTestDescriptor().getDisplayName(); return Optional.of(getTestDescriptor().getTestMethod());
} }


@Override @Override
public AnnotatedElement getElement() { public Object getTestInstance() {
return getTestMethod().get(); return this.testInstance;
} }


} }

0 comments on commit 6c418d2

Please sign in to comment.