diff --git a/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanAndAopProxyTests.java b/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanAndAopProxyTests.java deleted file mode 100644 index 73822cbc1ab..00000000000 --- a/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanAndAopProxyTests.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.test.context.bean.override.mockito; - -import org.junit.jupiter.api.RepeatedTest; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.Mockito; - -import org.springframework.aop.support.AopUtils; -import org.springframework.cache.CacheManager; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.cache.concurrent.ConcurrentMapCacheManager; -import org.springframework.cache.interceptor.CacheResolver; -import org.springframework.cache.interceptor.SimpleCacheResolver; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.stereotype.Service; -import org.springframework.test.context.junit.jupiter.SpringExtension; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; - -/** - * Tests for {@link MockitoBean @MockitoBean} used in combination with Spring AOP. - * - * @author Phillip Webb - * @author Sam Brannen - * @since 6.2 - * @see 5837 - * @see MockitoSpyBeanAndAopProxyTests - */ -@ExtendWith(SpringExtension.class) -class MockitoBeanAndAopProxyTests { - - @MockitoBean - DateService dateService; - - - /** - * Since we always register a manual singleton for {@code @MockitoBean} mocks, - * Spring AOP should never be applied to the mock. - * - *
For this concrete use case, the mocked {@link DateService} will not - * have {@link Cacheable @Cacheable} applied to it. - */ - @RepeatedTest(2) - void mockShouldNotBeAnAopProxy() { - assertThat(AopUtils.isAopProxy(dateService)).as("is Spring AOP proxy").isFalse(); - assertThat(Mockito.mockingDetails(dateService).isMock()).as("is Mockito mock").isTrue(); - - given(dateService.getDate(false)).willReturn(1L); - Long date = dateService.getDate(false); - assertThat(date).isOne(); - - given(dateService.getDate(false)).willReturn(2L); - date = dateService.getDate(false); - assertThat(date).isEqualTo(2L); - - verify(dateService, times(2)).getDate(false); - verify(dateService, times(2)).getDate(eq(false)); - verify(dateService, times(2)).getDate(anyBoolean()); - } - - - @Configuration(proxyBeanMethods = false) - @EnableCaching(proxyTargetClass = true) - @Import(DateService.class) - static class Config { - - @Bean - CacheResolver cacheResolver(CacheManager cacheManager) { - return new SimpleCacheResolver(cacheManager); - } - - @Bean - ConcurrentMapCacheManager cacheManager() { - return new ConcurrentMapCacheManager("test"); - } - } - - @Service - static class DateService { - - @Cacheable("test") - Long getDate(boolean argument) { - return System.nanoTime(); - } - } - -} diff --git a/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanAndSpringAopProxyTests.java b/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanAndSpringAopProxyTests.java index bd2d62fe74d..a8fd6338b24 100644 --- a/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanAndSpringAopProxyTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoBeanAndSpringAopProxyTests.java @@ -40,15 +40,16 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; /** - * Tests for {@link MockitoBean @MockitoBean} used in combination Spring AOP. + * Tests for {@link MockitoBean @MockitoBean} used in combination with Spring AOP. * * @author Sam Brannen * @author Phillip Webb * @since 6.2 * @see 5837 + * @see MockitoSpyBeanAndSpringAopProxyTests */ @ExtendWith(SpringExtension.class) -public class MockitoBeanAndSpringAopProxyTests { +class MockitoBeanAndSpringAopProxyTests { @MockitoBean DateService dateService; @@ -70,12 +71,12 @@ public class MockitoBeanAndSpringAopProxyTests { assertThat(Mockito.mockingDetails(dateService).isMock()).as("is Mockito mock").isTrue(); given(dateService.getDate(false)).willReturn(1L); - Long date1 = dateService.getDate(false); - assertThat(date1).isOne(); + Long date = dateService.getDate(false); + assertThat(date).isOne(); given(dateService.getDate(false)).willReturn(2L); - Long date2 = dateService.getDate(false); - assertThat(date2).isEqualTo(2L); + date = dateService.getDate(false); + assertThat(date).isEqualTo(2L); verify(dateService, times(2)).getDate(false); verify(dateService, times(2)).getDate(eq(false)); diff --git a/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoSpyBeanAndAopProxyTests.java b/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoSpyBeanAndSpringAopProxyTests.java similarity index 98% rename from spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoSpyBeanAndAopProxyTests.java rename to spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoSpyBeanAndSpringAopProxyTests.java index e8fd30798ee..02ecdb541c6 100644 --- a/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoSpyBeanAndAopProxyTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/bean/override/mockito/MockitoSpyBeanAndSpringAopProxyTests.java @@ -31,7 +31,6 @@ import org.springframework.cache.interceptor.SimpleCacheResolver; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.stereotype.Service; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.util.AopTestUtils; @@ -50,10 +49,10 @@ import static org.mockito.Mockito.verify; * @author Phillip Webb * @since 6.2 * @see 5837 - * @see MockitoBeanAndAopProxyTests + * @see MockitoBeanAndSpringAopProxyTests */ @ExtendWith(SpringExtension.class) -class MockitoSpyBeanAndAopProxyTests { +class MockitoSpyBeanAndSpringAopProxyTests { @MockitoSpyBean DateService dateService; @@ -161,7 +160,6 @@ class MockitoSpyBeanAndAopProxyTests { } } - @Service static class DateService { @Cacheable("test")