Polish LruContextCacheTests

Use AssertJ's extracting() feature instead of ReflectionTestUtils.getField().

Closes gh-31640
This commit is contained in:
Yanming Zhou 2023-11-21 17:25:40 +08:00 committed by Sam Brannen
parent 617ba84577
commit f46902869f
1 changed files with 12 additions and 13 deletions

View File

@ -17,16 +17,16 @@
package org.springframework.test.context.cache;
import java.util.List;
import java.util.Map;
import org.assertj.core.api.InstanceOfAssertFactories;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.test.context.MergedContextConfiguration;
import org.springframework.test.util.ReflectionTestUtils;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.as;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
import static org.mockito.Mockito.mock;
@ -158,17 +158,16 @@ class LruContextCacheTests {
@SuppressWarnings("unchecked")
private static void assertCacheContents(DefaultContextCache cache, String... expectedNames) {
Map<MergedContextConfiguration, ApplicationContext> contextMap =
(Map<MergedContextConfiguration, ApplicationContext>) ReflectionTestUtils.getField(cache, "contextMap");
// @formatter:off
List<String> actualNames = contextMap.keySet().stream()
.map(cfg -> cfg.getClasses()[0])
.map(Class::getSimpleName)
.toList();
// @formatter:on
assertThat(actualNames).isEqualTo(asList(expectedNames));
assertThat(cache).extracting("contextMap", as(InstanceOfAssertFactories.map(MergedContextConfiguration.class, ApplicationContext.class)))
.satisfies((contextMap) -> {
// @formatter:off
List<String> actualNames = contextMap.keySet().stream()
.map(cfg -> cfg.getClasses()[0])
.map(Class::getSimpleName)
.toList();
// @formatter:on
assertThat(actualNames).isEqualTo(asList(expectedNames));
});
}