Skip to content

Commit

Permalink
Polishing
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrannen authored and runningcode committed Feb 15, 2023
1 parent 45f1b38 commit 8669ce4
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ public JupiterEngineExecutionContext prepare(JupiterEngineExecutionContext conte
this.beforeAllMethods.forEach(method -> registerExtensionsFromExecutableParameters(registry, method));
// Since registerBeforeEachMethodAdapters() and registerAfterEachMethodAdapters() also
// invoke registerExtensionsFromExecutableParameters(), we invoke those methods before
// invoking registerExtensionsFromExecutableParameters() for @BeforeAll methods,
// invoking registerExtensionsFromExecutableParameters() for @AfterAll methods,
// thereby ensuring proper registration order for extensions registered via @ExtendWith
// on parameters in lifecycle methods.
registerBeforeEachMethodAdapters(registry);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,8 @@ static void registerExtensionsFromConstructorParameters(ExtensionRegistrar regis
/**
* Register extensions using the supplied registrar from parameters in the
* supplied {@link Executable} (i.e., a {@link java.lang.reflect.Constructor}
* or {@link java.lang.reflect.Method}) that are annotated with{@link ExtendWith @ExtendWith}.
* or {@link java.lang.reflect.Method}) that are meta-annotated with
* {@link ExtendWith @ExtendWith}.
*
* @param registrar the registrar with which to register the extensions; never {@code null}
* @param executable the constructor or method whose parameters should be searched; never {@code null}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,10 @@ static void afterAll(String text, TestInfo testInfo) {
}

/**
* The {@link MagicParameter.Extension} is first registered for the {@code @AfterAll} method.
* The {@link MagicParameter.Extension} is first registered for the {@code @AfterAll}
* method, but that registration occurs before the test method is invoked, which
* allows the string parameters in the after-each and test methods to be resolved
* by the {@link MagicParameter.Extension} as well.
*/
@ExtendWith(LongParameterResolver.class)
static class AfterAllParameterTestCase {
Expand All @@ -365,6 +368,13 @@ void test(TestInfo testInfo, String text) {
assertThat(text).isEqualTo("test-1-enigma");
}

@AfterEach
void afterEach(Long number, TestInfo testInfo, String text) {
assertThat(number).isEqualTo(42L);
assertThat(testInfo).isNotNull();
assertThat(text).isEqualTo("afterEach-2-enigma");
}

@AfterAll
static void afterAll(Long number, TestInfo testInfo, @MagicParameter("method") String text) {
assertThat(number).isEqualTo(42L);
Expand Down Expand Up @@ -407,13 +417,18 @@ void afterEach(Long number, TestInfo testInfo, @MagicParameter("method") String
}

/**
* The {@link MagicParameter.Extension} is first registered for the {@code @AfterEach} method.
* The {@link MagicParameter.Extension} is first registered for the {@code @AfterEach}
* method, but that registration occurs before the test method is invoked, which
* allows the test method's parameter to be resolved by the {@link MagicParameter.Extension}
* as well.
*/
@ExtendWith(LongParameterResolver.class)
static class AfterEachParameterTestCase {

@Test
void test() {
void test(TestInfo testInfo, String text) {
assertThat(testInfo).isNotNull();
assertThat(text).isEqualTo("test-1-enigma");
}

@AfterEach
Expand All @@ -438,10 +453,6 @@ void test(TestInfo testInfo, @MagicParameter("method") String text) {
assertThat(text).isEqualTo("test-1-method");
}

/**
* Redeclaring {@code @MagicParameter} should not result in a
* {@link ParameterResolutionException}.
*/
@AfterEach
void afterEach(Long number, TestInfo testInfo, String text) {
assertThat(number).isEqualTo(42L);
Expand All @@ -466,10 +477,6 @@ Stream<DynamicTest> testFactory(TestInfo testInfo, @MagicParameter("method") Str
return IntStream.of(2, 4).mapToObj(num -> dynamicTest("" + num, () -> assertTrue(num % 2 == 0)));
}

/**
* Redeclaring {@code @MagicParameter} should not result in a
* {@link ParameterResolutionException}.
*/
@AfterEach
void afterEach(Long number, TestInfo testInfo, String text) {
assertThat(number).isEqualTo(42L);
Expand All @@ -493,10 +500,6 @@ void testTemplate(TestInfo testInfo, @MagicParameter("method") String text) {
assertThat(text).isEqualTo("testTemplate-1-method");
}

/**
* Redeclaring {@code @MagicParameter} should not result in a
* {@link ParameterResolutionException}.
*/
@AfterEach
void afterEach(Long number, TestInfo testInfo, String text) {
assertThat(number).isEqualTo(42L);
Expand Down

0 comments on commit 8669ce4

Please sign in to comment.