Skip to content

Commit b9813b7

Browse files
committed
Verify status quo for selecting @test[Template|Factory] invocations by Unique ID
Although DiscoverySelectorResolverTests already contained tests to verify the expected behavior for the selection of @testtemplate and @testfactory invocations by Unique ID, there was a minor bug in one of the tests. This commit fixes that bug and polishes the existing tests for greater clarity of purpose. Issue: #1031
1 parent 7088b82 commit b9813b7

File tree

1 file changed

+35
-39
lines changed

1 file changed

+35
-39
lines changed

junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/discovery/DiscoverySelectorResolverTests.java

Lines changed: 35 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
package org.junit.jupiter.engine.discovery;
1212

1313
import static java.util.Collections.singleton;
14+
import static java.util.stream.Collectors.toList;
1415
import static org.assertj.core.api.Assertions.assertThat;
1516
import static org.junit.jupiter.api.Assertions.assertEquals;
1617
import static org.junit.jupiter.api.Assertions.assertSame;
@@ -36,7 +37,6 @@
3637
import java.nio.file.Paths;
3738
import java.util.ArrayList;
3839
import java.util.List;
39-
import java.util.stream.Collectors;
4040
import java.util.stream.Stream;
4141

4242
import org.junit.jupiter.api.DynamicTest;
@@ -322,32 +322,6 @@ void twoMethodResolutionsByUniqueId() {
322322
assertSame(classFromMethod1, classFromMethod2);
323323
}
324324

325-
@Test
326-
void resolvingDynamicTestByUniqueIdResolvesOnlyUpToParentTestFactory() {
327-
UniqueIdSelector selector = selectUniqueId(
328-
uniqueIdForTestFactoryMethod(MyTestClass.class, "dynamicTest()").append(
329-
TestFactoryTestDescriptor.DYNAMIC_TEST_SEGMENT_TYPE, "#1"));
330-
331-
resolver.resolveSelectors(request().selectors(selector).build(), engineDescriptor);
332-
333-
assertThat(engineDescriptor.getDescendants()).hasSize(2);
334-
335-
assertThat(uniqueIds()).containsSequence(uniqueIdForClass(MyTestClass.class),
336-
uniqueIdForTestFactoryMethod(MyTestClass.class, "dynamicTest()"));
337-
}
338-
339-
@Test
340-
void resolvingTestFactoryMethodByUniqueId() {
341-
UniqueIdSelector selector = selectUniqueId(uniqueIdForTestFactoryMethod(MyTestClass.class, "dynamicTest()"));
342-
343-
resolver.resolveSelectors(request().selectors(selector).build(), engineDescriptor);
344-
345-
assertThat(engineDescriptor.getDescendants()).hasSize(2);
346-
347-
assertThat(uniqueIds()).containsSequence(uniqueIdForClass(MyTestClass.class),
348-
uniqueIdForTestFactoryMethod(MyTestClass.class, "dynamicTest()"));
349-
}
350-
351325
@Test
352326
void packageResolutionUsingExplicitBasePackage() {
353327
PackageSelector selector = selectPackage("org.junit.jupiter.engine.descriptor.subpackage");
@@ -529,27 +503,49 @@ void nestedTestResolutionFromUniqueIdToMethod() {
529503
}
530504

531505
@Test
532-
void testTemplateMethodResolution() {
533-
ClassSelector selector = selectClass(TestClassWithTemplate.class);
506+
void testFactoryMethodResolutionByUniqueId() {
507+
Class<?> clazz = MyTestClass.class;
508+
UniqueId factoryUid = uniqueIdForTestFactoryMethod(clazz, "dynamicTest()");
534509

535-
resolver.resolveSelectors(request().selectors(selector).build(), engineDescriptor);
510+
resolver.resolveSelectors(request().selectors(selectUniqueId(factoryUid)).build(), engineDescriptor);
536511

537512
assertThat(engineDescriptor.getDescendants()).hasSize(2);
538-
assertThat(uniqueIds()).contains(uniqueIdForTestTemplateMethod(TestClassWithTemplate.class, "testTemplate()"));
513+
assertThat(uniqueIds()).containsSequence(uniqueIdForClass(clazz), factoryUid);
539514
}
540515

541516
@Test
542-
void resolvingTestTemplateInvocationByUniqueIdResolvesOnlyUpToParentTestTemplat() {
543-
UniqueIdSelector selector = selectUniqueId(
544-
uniqueIdForTestTemplateMethod(TestClassWithTemplate.class, "testTemplate()").append(
545-
TestTemplateInvocationTestDescriptor.SEGMENT_TYPE, "#1"));
517+
void testTemplateMethodResolutionByUniqueId() {
518+
Class<?> clazz = TestClassWithTemplate.class;
519+
UniqueId templateUid = uniqueIdForTestTemplateMethod(clazz, "testTemplate()");
546520

547-
resolver.resolveSelectors(request().selectors(selector).build(), engineDescriptor);
521+
resolver.resolveSelectors(request().selectors(selectUniqueId(templateUid)).build(), engineDescriptor);
522+
523+
assertThat(engineDescriptor.getDescendants()).hasSize(2);
524+
assertThat(uniqueIds()).containsSequence(uniqueIdForClass(clazz), templateUid);
525+
}
526+
527+
@Test
528+
void resolvingDynamicTestByUniqueIdResolvesOnlyUpToParentTestFactory() {
529+
Class<?> clazz = MyTestClass.class;
530+
UniqueId factoryUid = uniqueIdForTestFactoryMethod(clazz, "dynamicTest()");
531+
UniqueId dynamicTestUid = factoryUid.append(TestFactoryTestDescriptor.DYNAMIC_TEST_SEGMENT_TYPE, "#1");
532+
533+
resolver.resolveSelectors(request().selectors(selectUniqueId(dynamicTestUid)).build(), engineDescriptor);
548534

549535
assertThat(engineDescriptor.getDescendants()).hasSize(2);
536+
assertThat(uniqueIds()).containsSequence(uniqueIdForClass(clazz), factoryUid);
537+
}
550538

551-
assertThat(uniqueIds()).containsSequence(uniqueIdForClass(TestClassWithTemplate.class),
552-
uniqueIdForTestTemplateMethod(TestClassWithTemplate.class, "testTemplate()"));
539+
@Test
540+
void resolvingTestTemplateInvocationByUniqueIdResolvesOnlyUpToParentTestTemplate() {
541+
Class<?> clazz = TestClassWithTemplate.class;
542+
UniqueId templateUid = uniqueIdForTestTemplateMethod(clazz, "testTemplate()");
543+
UniqueId invocationUid = templateUid.append(TestTemplateInvocationTestDescriptor.SEGMENT_TYPE, "#1");
544+
545+
resolver.resolveSelectors(request().selectors(selectUniqueId(invocationUid)).build(), engineDescriptor);
546+
547+
assertThat(engineDescriptor.getDescendants()).hasSize(2);
548+
assertThat(uniqueIds()).containsSequence(uniqueIdForClass(clazz), templateUid);
553549
}
554550

555551
private TestDescriptor descriptorByUniqueId(UniqueId uniqueId) {
@@ -558,7 +554,7 @@ private TestDescriptor descriptorByUniqueId(UniqueId uniqueId) {
558554
}
559555

560556
private List<UniqueId> uniqueIds() {
561-
return engineDescriptor.getDescendants().stream().map(TestDescriptor::getUniqueId).collect(Collectors.toList());
557+
return engineDescriptor.getDescendants().stream().map(TestDescriptor::getUniqueId).collect(toList());
562558
}
563559

564560
}

0 commit comments

Comments
 (0)