From b78dc3519b70aa59b53c7b086cdfc1ead60fefd2 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Fri, 4 Apr 2025 16:13:07 +0200 Subject: [PATCH] refactor: replace deprecated MockBean annotations (#95) --- .../processor/EtlProcessorApplicationTests.kt | 6 +-- .../processor/config/AppConfigurationTest.kt | 51 ++++++++++--------- .../input/MtbFileRestControllerTest.kt | 6 +-- .../monitoring/RequestRepositoryTest.kt | 4 +- .../services/RequestServiceIntegrationTest.kt | 4 +- .../etl/processor/web/ConfigControllerTest.kt | 36 +++++++------ .../etl/processor/web/HomeControllerTest.kt | 6 +-- .../etl/processor/web/LoginControllerTest.kt | 6 +-- .../web/StatisticsRestControllerTest.kt | 6 +-- 9 files changed, 68 insertions(+), 57 deletions(-) diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt index 67d2d05..736bdf8 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/EtlProcessorApplicationTests.kt @@ -33,10 +33,10 @@ import org.mockito.kotlin.* import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc import org.springframework.boot.test.context.SpringBootTest -import org.springframework.boot.test.mock.mockito.MockBean import org.springframework.context.ApplicationContext import org.springframework.http.MediaType import org.springframework.test.context.TestPropertySource +import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.post @@ -45,7 +45,7 @@ import org.testcontainers.junit.jupiter.Testcontainers @Testcontainers @ExtendWith(SpringExtension::class) @SpringBootTest -@MockBean(MtbFileSender::class) +@MockitoBean(types = [MtbFileSender::class]) @TestPropertySource( properties = [ "app.rest.uri=http://example.com", @@ -73,7 +73,7 @@ class EtlProcessorApplicationTests : AbstractTestcontainerTest() { ) inner class TransformationTest { - @MockBean + @MockitoBean private lateinit var mtbFileSender: MtbFileSender @Autowired diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt index c7454ed..af62bf3 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/config/AppConfigurationTest.kt @@ -26,9 +26,9 @@ import dev.dnpm.etl.processor.output.KafkaMtbFileSender import dev.dnpm.etl.processor.output.RestMtbFileSender import dev.dnpm.etl.processor.pseudonym.AnonymizingGenerator import dev.dnpm.etl.processor.pseudonym.GpasPseudonymGenerator -import dev.dnpm.etl.processor.services.RequestProcessor import dev.dnpm.etl.processor.security.TokenRepository import dev.dnpm.etl.processor.security.TokenService +import dev.dnpm.etl.processor.services.RequestProcessor import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test @@ -36,24 +36,25 @@ import org.junit.jupiter.api.assertThrows import org.springframework.beans.factory.NoSuchBeanDefinitionException import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration import org.springframework.boot.test.context.SpringBootTest -import org.springframework.boot.test.mock.mockito.MockBean -import org.springframework.boot.test.mock.mockito.MockBeans import org.springframework.context.ApplicationContext import org.springframework.retry.support.RetryTemplate import org.springframework.security.crypto.password.PasswordEncoder import org.springframework.security.provisioning.InMemoryUserDetailsManager import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.TestPropertySource +import org.springframework.test.context.bean.override.mockito.MockitoBean @SpringBootTest -@ContextConfiguration(classes = [ - AppConfiguration::class, - AppSecurityConfiguration::class, - KafkaAutoConfiguration::class, - AppKafkaConfiguration::class, - AppRestConfiguration::class -]) -@MockBean(ObjectMapper::class) +@ContextConfiguration( + classes = [ + AppConfiguration::class, + AppSecurityConfiguration::class, + KafkaAutoConfiguration::class, + AppKafkaConfiguration::class, + AppRestConfiguration::class + ] +) +@MockitoBean(types = [ObjectMapper::class]) @TestPropertySource( properties = [ "app.pseudonymize.generator=BUILDIN", @@ -86,7 +87,7 @@ class AppConfigurationTest { "app.kafka.group-id=test" ] ) - @MockBean(RequestRepository::class) + @MockitoBean(types = [RequestRepository::class]) inner class AppConfigurationKafkaTest(private val context: ApplicationContext) { @Test @@ -145,7 +146,7 @@ class AppConfigurationTest { "app.kafka.group-id=test" ] ) - @MockBean(RequestProcessor::class) + @MockitoBean(types = [RequestProcessor::class]) inner class AppConfigurationUsingKafkaInputTest(private val context: ApplicationContext) { @Test @@ -248,11 +249,13 @@ class AppConfigurationTest { "app.security.enable-tokens=true" ] ) - @MockBeans(value = [ - MockBean(InMemoryUserDetailsManager::class), - MockBean(PasswordEncoder::class), - MockBean(TokenRepository::class) - ]) + @MockitoBean( + types = [ + InMemoryUserDetailsManager::class, + PasswordEncoder::class, + TokenRepository::class + ] + ) inner class AppConfigurationTokenEnabledTest(private val context: ApplicationContext) { @Test @@ -263,11 +266,13 @@ class AppConfigurationTest { } @Nested - @MockBeans(value = [ - MockBean(InMemoryUserDetailsManager::class), - MockBean(PasswordEncoder::class), - MockBean(TokenRepository::class) - ]) + @MockitoBean( + types = [ + InMemoryUserDetailsManager::class, + PasswordEncoder::class, + TokenRepository::class + ] + ) inner class AppConfigurationTokenDisabledTest(private val context: ApplicationContext) { @Test diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt index 670020f..85b1f1f 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/input/MtbFileRestControllerTest.kt @@ -37,13 +37,13 @@ import org.mockito.kotlin.times import org.mockito.kotlin.verify import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest -import org.springframework.boot.test.mock.mockito.MockBean import org.springframework.http.MediaType import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.anonymous import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.TestPropertySource +import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.delete @@ -57,7 +57,7 @@ import org.springframework.test.web.servlet.post AppSecurityConfiguration::class ] ) -@MockBean(TokenRepository::class, RequestProcessor::class) +@MockitoBean(types = [TokenRepository::class, RequestProcessor::class]) @TestPropertySource( properties = [ "app.pseudonymize.generator=BUILDIN", @@ -156,7 +156,7 @@ class MtbFileRestControllerTest { } @Nested - @MockBean(UserRoleRepository::class, ClientRegistrationRepository::class) + @MockitoBean(types = [UserRoleRepository::class, ClientRegistrationRepository::class]) @TestPropertySource( properties = [ "app.pseudonymize.generator=BUILDIN", diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/monitoring/RequestRepositoryTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/monitoring/RequestRepositoryTest.kt index bef124c..428bca9 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/monitoring/RequestRepositoryTest.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/monitoring/RequestRepositoryTest.kt @@ -27,8 +27,8 @@ import org.junit.jupiter.api.extension.ExtendWith import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.data.jdbc.DataJdbcTest import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase -import org.springframework.boot.test.mock.mockito.MockBean import org.springframework.test.context.TestPropertySource +import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.transaction.annotation.Transactional import org.testcontainers.junit.jupiter.Testcontainers @@ -39,7 +39,7 @@ import java.time.Instant @DataJdbcTest @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) @Transactional -@MockBean(MtbFileSender::class) +@MockitoBean(types = [MtbFileSender::class]) @TestPropertySource( properties = [ "app.pseudonymize.generator=buildin", diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt index 47ac301..9fcdc16 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt @@ -31,8 +31,8 @@ import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest -import org.springframework.boot.test.mock.mockito.MockBean import org.springframework.test.context.TestPropertySource +import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.transaction.annotation.Transactional import org.testcontainers.junit.jupiter.Testcontainers @@ -42,7 +42,7 @@ import java.time.Instant @ExtendWith(SpringExtension::class) @SpringBootTest @Transactional -@MockBean(MtbFileSender::class) +@MockitoBean(types = [MtbFileSender::class]) @TestPropertySource( properties = [ "app.pseudonymize.generator=buildin", diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/ConfigControllerTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/ConfigControllerTest.kt index 8fbcd95..9f3ae62 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/ConfigControllerTest.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/ConfigControllerTest.kt @@ -27,10 +27,10 @@ import dev.dnpm.etl.processor.monitoring.RestConnectionCheckService import dev.dnpm.etl.processor.output.MtbFileSender import dev.dnpm.etl.processor.pseudonym.Generator import dev.dnpm.etl.processor.security.Role -import dev.dnpm.etl.processor.services.RequestProcessor import dev.dnpm.etl.processor.security.TokenService -import dev.dnpm.etl.processor.services.TransformationService import dev.dnpm.etl.processor.security.UserRoleService +import dev.dnpm.etl.processor.services.RequestProcessor +import dev.dnpm.etl.processor.services.TransformationService import org.assertj.core.api.Assertions.assertThat import org.htmlunit.WebClient import org.htmlunit.html.HtmlPage @@ -46,7 +46,6 @@ import org.mockito.kotlin.verify import org.mockito.kotlin.whenever import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest -import org.springframework.boot.test.mock.mockito.MockBean import org.springframework.http.HttpHeaders import org.springframework.http.MediaType import org.springframework.http.MediaType.TEXT_EVENT_STREAM @@ -55,6 +54,7 @@ import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequ import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.TestPropertySource +import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.test.web.reactive.server.WebTestClient import org.springframework.test.web.servlet.* @@ -81,14 +81,16 @@ abstract class MockSink : Sinks.Many "app.pseudonymize.generator=BUILDIN" ] ) -@MockBean(name = "configsUpdateProducer", classes = [MockSink::class]) -@MockBean( - Generator::class, - MtbFileSender::class, - RequestProcessor::class, - TransformationService::class, - GPasConnectionCheckService::class, - RestConnectionCheckService::class, +@MockitoBean(name = "configsUpdateProducer", types = [MockSink::class]) +@MockitoBean( + types = [ + Generator::class, + MtbFileSender::class, + RequestProcessor::class, + TransformationService::class, + GPasConnectionCheckService::class, + RestConnectionCheckService::class + ] ) class ConfigControllerTest { @@ -143,8 +145,10 @@ class ConfigControllerTest { "app.security.admin-user=admin" ] ) - @MockBean( - TokenService::class + @MockitoBean( + types = [ + TokenService::class + ] ) inner class WithTokensEnabled { private lateinit var tokenService: TokenService @@ -252,8 +256,10 @@ class ConfigControllerTest { "app.security.admin-password={noop}very-secret" ] ) - @MockBean( - UserRoleService::class + @MockitoBean( + types = [ + UserRoleService::class + ] ) inner class WithUserRolesEnabled { private lateinit var userRoleService: UserRoleService diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/HomeControllerTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/HomeControllerTest.kt index 5d20f30..829f9a1 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/HomeControllerTest.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/HomeControllerTest.kt @@ -40,13 +40,13 @@ import org.mockito.kotlin.any import org.mockito.kotlin.whenever import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest -import org.springframework.boot.test.mock.mockito.MockBean import org.springframework.data.domain.Page import org.springframework.data.domain.PageImpl import org.springframework.data.domain.Pageable import org.springframework.security.test.context.support.WithMockUser import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.TestPropertySource +import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.get @@ -71,8 +71,8 @@ import java.util.* "app.security.admin-password={noop}very-secret" ] ) -@MockBean( - RequestService::class +@MockitoBean( + types = [RequestService::class] ) class HomeControllerTest { diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/LoginControllerTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/LoginControllerTest.kt index f494e72..54ad6e8 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/LoginControllerTest.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/LoginControllerTest.kt @@ -31,9 +31,9 @@ import org.junit.jupiter.api.extension.ExtendWith import org.mockito.junit.jupiter.MockitoExtension import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest -import org.springframework.boot.test.mock.mockito.MockBean import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.TestPropertySource +import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.get @@ -56,8 +56,8 @@ import org.springframework.test.web.servlet.htmlunit.MockMvcWebClientBuilder "app.security.enable-tokens=true" ] ) -@MockBean( - TokenService::class, +@MockitoBean( + types = [TokenService::class] ) class LoginControllerTest { diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/StatisticsRestControllerTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/StatisticsRestControllerTest.kt index 8164f15..f0c3b63 100644 --- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/StatisticsRestControllerTest.kt +++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/StatisticsRestControllerTest.kt @@ -41,10 +41,10 @@ import org.mockito.kotlin.doAnswer import org.mockito.kotlin.whenever import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest -import org.springframework.boot.test.mock.mockito.MockBean import org.springframework.http.MediaType.TEXT_EVENT_STREAM import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.TestPropertySource +import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.test.web.reactive.server.WebTestClient import org.springframework.test.web.servlet.MockMvc @@ -74,8 +74,8 @@ import java.time.temporal.ChronoUnit "app.security.admin-password={noop}very-secret" ] ) -@MockBean( - RequestService::class +@MockitoBean( + types = [RequestService::class] ) class StatisticsRestControllerTest {