Skip to content

Commit 557deab

Browse files
committed
MockBean -> MockitoBean
1 parent 3c5f939 commit 557deab

15 files changed

+43
-60
lines changed

.junie/guidelines.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ The main test base class for integration tests is `S3TestBase` which provides ut
117117

118118
The server module contains several types of tests:
119119

120-
1. **Controller Tests**: Use `@SpringBootTest` with `WebEnvironment.RANDOM_PORT` and `TestRestTemplate` to test HTTP endpoints. These tests mock the service layer using `@MockBean`.
120+
1. **Controller Tests**: Use `@SpringBootTest` with `WebEnvironment.RANDOM_PORT` and `TestRestTemplate` to test HTTP endpoints. These tests mock the service layer using `@MockitoBean`.
121121

122122
2. **Store Tests**: Use `@SpringBootTest` with `WebEnvironment.NONE` to test the data storage layer. These tests often use `@Autowired` to inject the component under test.
123123

@@ -235,20 +235,20 @@ The server module uses different testing approaches depending on what's being te
235235
1. **Controller Tests**:
236236
- Extend `BaseControllerTest` to inherit XML serialization setup
237237
- Use `@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)`
238-
- Use `@MockBean` to mock service dependencies
238+
- Use `@MockitoBean` to mock service dependencies
239239
- Inject `TestRestTemplate` to make HTTP requests to the controller
240240

241241
Example controller test:
242242

243243
```kotlin
244244
// BucketControllerTest.kt
245245
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
246-
@MockBean(classes = [BucketService::class, ObjectService::class, MultipartService::class])
246+
@MockitoBean(classes = [BucketService::class, ObjectService::class, MultipartService::class])
247247
internal class BucketControllerTest : BaseControllerTest() {
248248
@Autowired
249249
private lateinit var restTemplate: TestRestTemplate
250250

251-
@MockBean
251+
@MockitoBean
252252
private lateinit var bucketService: BucketService
253253

254254
@Test
@@ -276,7 +276,7 @@ Example store test:
276276
```kotlin
277277
// ObjectStoreTest.kt
278278
@SpringBootTest(classes = [StoreConfiguration::class], webEnvironment = SpringBootTest.WebEnvironment.NONE)
279-
@MockBean(classes = [KmsKeyStore::class, BucketStore::class])
279+
@MockitoBean(classes = [KmsKeyStore::class, BucketStore::class])
280280
internal class ObjectStoreTest : StoreTestBase() {
281281
@Autowired
282282
private lateinit var objectStore: ObjectStore

server/src/test/kotlin/com/adobe/testing/s3mock/BucketControllerTest.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,25 +63,23 @@ import org.mockito.kotlin.verify
6363
import org.mockito.kotlin.whenever
6464
import org.springframework.beans.factory.annotation.Autowired
6565
import org.springframework.boot.test.context.SpringBootTest
66-
import org.springframework.boot.test.mock.mockito.MockBean
6766
import org.springframework.boot.test.web.client.TestRestTemplate
6867
import org.springframework.http.HttpEntity
6968
import org.springframework.http.HttpHeaders
7069
import org.springframework.http.HttpMethod
7170
import org.springframework.http.HttpStatus
7271
import org.springframework.http.MediaType
72+
import org.springframework.test.context.bean.override.mockito.MockitoBean
7373
import org.springframework.web.util.UriComponentsBuilder
7474
import java.net.URI
7575
import java.nio.file.Paths
7676
import java.time.Instant
7777

78-
@MockBean(
79-
classes = [KmsKeyStore::class, ObjectService::class, MultipartService::class, ObjectController::class, MultipartController::class]
80-
)
78+
@MockitoBean(types = [KmsKeyStore::class, ObjectService::class, MultipartService::class, ObjectController::class, MultipartController::class])
8179
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
8280
properties = ["com.adobe.testing.s3mock.region=us-east-1"])
8381
internal class BucketControllerTest : BaseControllerTest() {
84-
@MockBean
82+
@MockitoBean
8583
private lateinit var bucketService: BucketService
8684

8785
@Autowired

server/src/test/kotlin/com/adobe/testing/s3mock/ContextPathObjectStoreControllerTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,23 @@ import org.junit.jupiter.api.Test
2929
import org.mockito.kotlin.whenever
3030
import org.springframework.beans.factory.annotation.Autowired
3131
import org.springframework.boot.test.context.SpringBootTest
32-
import org.springframework.boot.test.mock.mockito.MockBean
3332
import org.springframework.boot.test.web.client.TestRestTemplate
3433
import org.springframework.http.HttpEntity
3534
import org.springframework.http.HttpHeaders
3635
import org.springframework.http.HttpMethod
3736
import org.springframework.http.HttpStatus
3837
import org.springframework.http.MediaType
38+
import org.springframework.test.context.bean.override.mockito.MockitoBean
3939
import java.nio.file.Paths
4040
import java.time.Instant
4141

42-
@MockBean(classes = [KmsKeyStore::class, ObjectService::class, MultipartService::class, MultipartStore::class])
42+
@MockitoBean(types = [KmsKeyStore::class, ObjectService::class, MultipartService::class, MultipartStore::class])
4343
@SpringBootTest(
4444
properties = ["com.adobe.testing.s3mock.contextPath=s3-mock"],
4545
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT
4646
)
4747
internal class ContextPathObjectStoreControllerTest : BaseControllerTest() {
48-
@MockBean
48+
@MockitoBean
4949
private lateinit var bucketService: BucketService
5050

5151
@Autowired

server/src/test/kotlin/com/adobe/testing/s3mock/FaviconControllerTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2017-2024 Adobe.
2+
* Copyright 2017-2025 Adobe.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -20,15 +20,15 @@ import org.assertj.core.api.Assertions.assertThat
2020
import org.junit.jupiter.api.Test
2121
import org.springframework.beans.factory.annotation.Autowired
2222
import org.springframework.boot.test.context.SpringBootTest
23-
import org.springframework.boot.test.mock.mockito.MockBean
2423
import org.springframework.boot.test.web.client.TestRestTemplate
2524
import org.springframework.http.HttpEntity
2625
import org.springframework.http.HttpHeaders
2726
import org.springframework.http.HttpMethod
2827
import org.springframework.http.HttpStatus
2928
import org.springframework.http.MediaType
29+
import org.springframework.test.context.bean.override.mockito.MockitoBean
3030

31-
@MockBean(classes = [KmsKeyStore::class, ObjectController::class, BucketController::class, MultipartController::class])
31+
@MockitoBean(types = [KmsKeyStore::class, ObjectController::class, BucketController::class, MultipartController::class])
3232
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
3333
internal class FaviconControllerTest : BaseControllerTest() {
3434
@Autowired

server/src/test/kotlin/com/adobe/testing/s3mock/MultipartControllerTest.kt

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,31 +33,26 @@ import org.mockito.kotlin.doThrow
3333
import org.mockito.kotlin.whenever
3434
import org.springframework.beans.factory.annotation.Autowired
3535
import org.springframework.boot.test.context.SpringBootTest
36-
import org.springframework.boot.test.mock.mockito.MockBean
37-
import org.springframework.boot.test.mock.mockito.MockBeans
3836
import org.springframework.boot.test.web.client.TestRestTemplate
3937
import org.springframework.http.HttpEntity
4038
import org.springframework.http.HttpHeaders
4139
import org.springframework.http.HttpMethod
4240
import org.springframework.http.HttpStatus
4341
import org.springframework.http.MediaType
42+
import org.springframework.test.context.bean.override.mockito.MockitoBean
4443
import org.springframework.web.util.UriComponentsBuilder
4544
import java.nio.file.Paths
4645
import java.time.Instant
4746
import java.util.Date
4847
import java.util.UUID
4948

50-
@MockBeans(
51-
MockBean(
52-
classes = [KmsKeyStore::class, ObjectService::class, ObjectController::class, BucketController::class]
53-
)
54-
)
49+
@MockitoBean(types = [KmsKeyStore::class, ObjectService::class, ObjectController::class, BucketController::class])
5550
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
5651
internal class MultipartControllerTest : BaseControllerTest() {
57-
@MockBean
52+
@MockitoBean
5853
private lateinit var bucketService: BucketService
5954

60-
@MockBean
55+
@MockitoBean
6156
private lateinit var multipartService: MultipartService
6257

6358
@Autowired

server/src/test/kotlin/com/adobe/testing/s3mock/ObjectControllerTest.kt

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,13 @@ import org.mockito.kotlin.verify
5050
import org.mockito.kotlin.whenever
5151
import org.springframework.beans.factory.annotation.Autowired
5252
import org.springframework.boot.test.context.SpringBootTest
53-
import org.springframework.boot.test.mock.mockito.MockBean
54-
import org.springframework.boot.test.mock.mockito.MockBeans
5553
import org.springframework.boot.test.web.client.TestRestTemplate
5654
import org.springframework.http.HttpEntity
5755
import org.springframework.http.HttpHeaders
5856
import org.springframework.http.HttpMethod
5957
import org.springframework.http.HttpStatus
6058
import org.springframework.http.MediaType
59+
import org.springframework.test.context.bean.override.mockito.MockitoBean
6160
import org.springframework.web.util.UriComponentsBuilder
6261
import software.amazon.awssdk.checksums.DefaultChecksumAlgorithm
6362
import java.io.File
@@ -68,17 +67,13 @@ import java.nio.file.Paths
6867
import java.time.Instant
6968
import java.util.UUID
7069

71-
@MockBeans(
72-
MockBean(
73-
classes = [KmsKeyStore::class, MultipartService::class, BucketController::class, MultipartController::class]
74-
)
75-
)
70+
@MockitoBean(types = [KmsKeyStore::class, MultipartService::class, BucketController::class, MultipartController::class])
7671
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
7772
internal class ObjectControllerTest : BaseControllerTest() {
78-
@MockBean
73+
@MockitoBean
7974
private lateinit var objectService: ObjectService
8075

81-
@MockBean
76+
@MockitoBean
8277
private lateinit var bucketService: BucketService
8378

8479
@Autowired

server/src/test/kotlin/com/adobe/testing/s3mock/service/BucketServiceTest.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,24 @@ package com.adobe.testing.s3mock.service
1818

1919
import com.adobe.testing.s3mock.S3Exception
2020
import com.adobe.testing.s3mock.dto.ObjectOwnership
21-
import com.adobe.testing.s3mock.dto.S3Object
2221
import com.adobe.testing.s3mock.dto.VersioningConfiguration
2322
import com.adobe.testing.s3mock.dto.VersioningConfiguration.Status
2423
import com.adobe.testing.s3mock.store.BucketMetadata
2524
import com.adobe.testing.s3mock.store.MultipartStore
2625
import org.assertj.core.api.Assertions.assertThat
2726
import org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy
2827
import org.junit.jupiter.api.Test
29-
import org.junit.jupiter.params.ParameterizedTest
30-
import org.junit.jupiter.params.provider.MethodSource
3128
import org.mockito.Mockito.verify
3229
import org.mockito.kotlin.whenever
3330
import org.springframework.beans.factory.annotation.Autowired
3431
import org.springframework.boot.test.context.SpringBootTest
35-
import org.springframework.boot.test.mock.mockito.MockBean
32+
import org.springframework.test.context.bean.override.mockito.MockitoBean
3633
import java.nio.file.Files
3734
import java.util.Date
3835
import java.util.UUID
39-
import java.util.stream.Collectors
4036

4137
@SpringBootTest(classes = [ServiceConfiguration::class], webEnvironment = SpringBootTest.WebEnvironment.NONE)
42-
@MockBean(classes = [ObjectService::class, MultipartService::class, MultipartStore::class])
38+
@MockitoBean(types = [ObjectService::class, MultipartService::class, MultipartStore::class])
4339
internal class BucketServiceTest : ServiceTestBase() {
4440
@Autowired
4541
private lateinit var iut: BucketService

server/src/test/kotlin/com/adobe/testing/s3mock/service/MultipartServiceTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ import org.mockito.ArgumentMatchers
2828
import org.mockito.kotlin.whenever
2929
import org.springframework.beans.factory.annotation.Autowired
3030
import org.springframework.boot.test.context.SpringBootTest
31-
import org.springframework.boot.test.mock.mockito.MockBean
31+
import org.springframework.test.context.bean.override.mockito.MockitoBean
3232
import java.nio.file.Path
3333
import java.util.UUID
3434

3535
@SpringBootTest(classes = [ServiceConfiguration::class], webEnvironment = SpringBootTest.WebEnvironment.NONE)
36-
@MockBean(classes = [BucketService::class, ObjectService::class, ObjectStore::class])
36+
@MockitoBean(types = [BucketService::class, ObjectService::class, ObjectStore::class])
3737
internal class MultipartServiceTest : ServiceTestBase() {
38-
@MockBean
38+
@MockitoBean
3939
private lateinit var multipartStore: MultipartStore
4040

4141
@Autowired

server/src/test/kotlin/com/adobe/testing/s3mock/service/ObjectServiceTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ import org.mockito.ArgumentMatchers.isNull
3636
import org.mockito.kotlin.whenever
3737
import org.springframework.beans.factory.annotation.Autowired
3838
import org.springframework.boot.test.context.SpringBootTest
39-
import org.springframework.boot.test.mock.mockito.MockBean
4039
import org.springframework.http.HttpHeaders
40+
import org.springframework.test.context.bean.override.mockito.MockitoBean
4141
import org.springframework.util.MultiValueMapAdapter
4242
import software.amazon.awssdk.checksums.DefaultChecksumAlgorithm
4343
import java.io.File
@@ -49,7 +49,7 @@ import java.time.temporal.ChronoUnit
4949
import java.util.UUID
5050

5151
@SpringBootTest(classes = [ServiceConfiguration::class], webEnvironment = SpringBootTest.WebEnvironment.NONE)
52-
@MockBean(classes = [BucketService::class, MultipartService::class, MultipartStore::class])
52+
@MockitoBean(types = [BucketService::class, MultipartService::class, MultipartStore::class])
5353
internal class ObjectServiceTest : ServiceTestBase() {
5454
@Autowired
5555
private lateinit var iut: ObjectService

server/src/test/kotlin/com/adobe/testing/s3mock/service/ServiceTestBase.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import org.junit.jupiter.api.Test
3333
import org.junit.jupiter.params.ParameterizedTest
3434
import org.junit.jupiter.params.provider.MethodSource
3535
import org.mockito.kotlin.whenever
36-
import org.springframework.boot.test.mock.mockito.MockBean
36+
import org.springframework.test.context.bean.override.mockito.MockitoBean
3737
import java.nio.file.Files
3838
import java.nio.file.Path
3939
import java.time.Instant
@@ -42,10 +42,10 @@ import java.util.UUID
4242
import java.util.stream.Collectors
4343

4444
internal abstract class ServiceTestBase {
45-
@MockBean
45+
@MockitoBean
4646
protected lateinit var bucketStore: BucketStore
4747

48-
@MockBean
48+
@MockitoBean
4949
protected lateinit var objectStore: ObjectStore
5050

5151
@ParameterizedTest

0 commit comments

Comments
 (0)