From ed186daa29572d993b2203048935756e544505cf Mon Sep 17 00:00:00 2001 From: Johannes Link Date: Wed, 16 Mar 2016 20:17:37 +0100 Subject: [PATCH] Split responsibilities in ElementResolver --- .../DiscoverySelectorResolver.java | 5 ++--- .../junit5/discoveryNEW/ElementResolver.java | 5 +++-- .../discoveryNEW/TestContainerResolver.java | 16 +++++++------- .../discoveryNEW/TestMethodResolver.java | 21 ++++++++----------- 4 files changed, 22 insertions(+), 25 deletions(-) diff --git a/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/DiscoverySelectorResolver.java b/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/DiscoverySelectorResolver.java index 8adcffc9d29..e6a142854a1 100644 --- a/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/DiscoverySelectorResolver.java +++ b/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/DiscoverySelectorResolver.java @@ -85,11 +85,10 @@ private Set resolve(AnnotatedElement element, TestDescriptor par private Optional tryToResolveWithResolver(AnnotatedElement element, TestDescriptor parent, ElementResolver resolver) { - Optional 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 optionalMethodTestDescriptor = findTestDescriptorByUniqueId(uniqueId); if (optionalMethodTestDescriptor.isPresent()) diff --git a/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/ElementResolver.java b/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/ElementResolver.java index ebc0c4c951a..e107f5433d9 100644 --- a/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/ElementResolver.java +++ b/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/ElementResolver.java @@ -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 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); } diff --git a/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/TestContainerResolver.java b/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/TestContainerResolver.java index 4426a9a55ad..8bc85450ac8 100644 --- a/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/TestContainerResolver.java +++ b/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/TestContainerResolver.java @@ -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; @@ -21,16 +20,17 @@ public class TestContainerResolver implements ElementResolver { @Override - public Optional 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 diff --git a/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/TestMethodResolver.java b/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/TestMethodResolver.java index ed1598227dc..572fbeb451b 100644 --- a/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/TestMethodResolver.java +++ b/junit5-engine/src/main/java/org/junit/gen5/engine/junit5/discoveryNEW/TestMethodResolver.java @@ -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; @@ -24,20 +22,19 @@ public class TestMethodResolver implements ElementResolver { @Override - public Optional 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