Skip to content

Commit

Permalink
Split responsibilities in ElementResolver
Browse files Browse the repository at this point in the history
  • Loading branch information
jlink authored and bechte committed Apr 29, 2016
1 parent b0e019a commit ed186da
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 25 deletions.
Expand Up @@ -85,11 +85,10 @@ private Set<TestDescriptor> resolve(AnnotatedElement element, TestDescriptor par

private Optional<TestDescriptor> tryToResolveWithResolver(AnnotatedElement element, TestDescriptor parent,
ElementResolver resolver) {
Optional<UniqueId> optionalUniqueId = resolver.willResolve(element, parent);
if (!optionalUniqueId.isPresent())
if (!resolver.willResolve(element, parent))
return Optional.empty();

UniqueId uniqueId = optionalUniqueId.get();
UniqueId uniqueId = resolver.createUniqueId(element, parent);

Optional<TestDescriptor> optionalMethodTestDescriptor = findTestDescriptorByUniqueId(uniqueId);
if (optionalMethodTestDescriptor.isPresent())
Expand Down
Expand Up @@ -11,14 +11,15 @@
package org.junit.gen5.engine.junit5.discoveryNEW;

import java.lang.reflect.AnnotatedElement;
import java.util.Optional;

import org.junit.gen5.engine.TestDescriptor;
import org.junit.gen5.engine.UniqueId;

public interface ElementResolver {

Optional<UniqueId> willResolve(AnnotatedElement element, TestDescriptor parent);
boolean willResolve(AnnotatedElement element, TestDescriptor parent);

UniqueId createUniqueId(AnnotatedElement element, TestDescriptor parent);

TestDescriptor resolve(AnnotatedElement element, TestDescriptor parent, UniqueId parentId);
}
Expand Up @@ -11,7 +11,6 @@
package org.junit.gen5.engine.junit5.discoveryNEW;

import java.lang.reflect.AnnotatedElement;
import java.util.Optional;

import org.junit.gen5.engine.TestDescriptor;
import org.junit.gen5.engine.UniqueId;
Expand All @@ -21,16 +20,17 @@
public class TestContainerResolver implements ElementResolver {

@Override
public Optional<UniqueId> willResolve(AnnotatedElement element, TestDescriptor parent) {
public boolean willResolve(AnnotatedElement element, TestDescriptor parent) {
//Do not collapse
if (!(element instanceof Class))
return Optional.empty();
return false;
return new IsPotentialTestContainer().test((Class<?>) element);
}

@Override
public UniqueId createUniqueId(AnnotatedElement element, TestDescriptor parent) {
Class<?> testClass = (Class<?>) element;
if (!new IsPotentialTestContainer().test(testClass)) {
return Optional.empty();
}

return Optional.of(parent.getUniqueId().append("class", testClass.getName()));
return parent.getUniqueId().append("class", testClass.getName());
}

@Override
Expand Down
Expand Up @@ -12,9 +12,7 @@

import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Method;
import java.util.Optional;

import org.junit.gen5.commons.JUnitException;
import org.junit.gen5.engine.TestDescriptor;
import org.junit.gen5.engine.UniqueId;
import org.junit.gen5.engine.junit5.descriptor.ClassTestDescriptor;
Expand All @@ -24,20 +22,19 @@
public class TestMethodResolver implements ElementResolver {

@Override
public Optional<UniqueId> willResolve(AnnotatedElement element, TestDescriptor parent) {
public boolean willResolve(AnnotatedElement element, TestDescriptor parent) {
//Do not collapse
if (!(element instanceof Method))
return Optional.empty();

return false;
if (!(parent instanceof ClassTestDescriptor))
return Optional.empty();
return false;
return new IsTestMethod().test((Method) element);
}

@Override
public UniqueId createUniqueId(AnnotatedElement element, TestDescriptor parent) {
Method testMethod = (Method) element;

if (!new IsTestMethod().test(testMethod)) {
return Optional.empty();
}

return Optional.of(parent.getUniqueId().append("method", testMethod.getName() + "()"));
return parent.getUniqueId().append("method", testMethod.getName() + "()");
}

@Override
Expand Down

0 comments on commit ed186da

Please sign in to comment.