Skip to content

Commit 3c6674a

Browse files
committed
mongodb: use ServiceConnection
1 parent 962dba1 commit 3c6674a

File tree

10 files changed

+56
-41
lines changed

10 files changed

+56
-41
lines changed

generators/spring-boot/generators/cucumber/templates/src/test/java/_package_/cucumber/CucumberTestContextConfiguration.java.ejs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@
1919
package <%= packageName %>.cucumber;
2020

2121
import <%= packageName %>.IntegrationTest;
22+
import <%= packageName %>.config.DatabaseTestcontainer;
2223
import <%= packageName %>.security.AuthoritiesConstants;
2324

2425
import io.cucumber.spring.CucumberContextConfiguration;
2526

27+
import org.springframework.boot.testcontainers.context.ImportTestcontainers;
2628
<%_ if (reactive) { _%>
2729
import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient;
2830
<%_ } else { _%>
@@ -36,6 +38,9 @@ import org.springframework.test.context.ActiveProfiles;
3638
@ActiveProfiles({ "test", "test<%- locals.defaultEnvironment %>" })
3739
<%_ } _%>
3840
@CucumberContextConfiguration
41+
<%_ if (databaseTypeMongodb) { _%>
42+
@ImportTestcontainers(DatabaseTestcontainer.class)
43+
<%_ } _%>
3944
@IntegrationTest
4045
<%_ if (reactive) { _%>
4146
@AutoConfigureWebTestClient(timeout = IntegrationTest.DEFAULT_TIMEOUT)

generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package <%= packageName %>.service;
2020

2121
import <%= packageName %>.IntegrationTest;
2222
import <%= packageName %>.config.Constants;
23+
import <%= packageName %>.config.DatabaseTestcontainer;
2324
<%_ if ((databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) && authenticationTypeSession && !reactive) { _%>
2425
import <%= packageName %>.domain.PersistentToken;
2526
<%_ } _%>
@@ -51,6 +52,7 @@ import org.junit.jupiter.api.AfterEach;
5152
import org.junit.jupiter.api.BeforeEach;
5253
import org.junit.jupiter.api.Test;
5354
import org.springframework.beans.factory.annotation.Autowired;
55+
import org.springframework.boot.testcontainers.context.ImportTestcontainers;
5456
<%_ if (searchEngineElasticsearch) { _%>
5557
import org.springframework.test.context.bean.override.mockito.MockitoSpyBean;
5658
<%_ } _%>
@@ -137,6 +139,9 @@ import java.util.Objects;
137139
/**
138140
* Integration tests for {@link UserService}.
139141
*/
142+
<%_ if (databaseTypeMongodb) { _%>
143+
@ImportTestcontainers(DatabaseTestcontainer.class)
144+
<%_ } _%>
140145
@IntegrationTest
141146
<%_ if (databaseTypeSql && !reactive) { _%>
142147
@Transactional

generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ package <%= packageName %>.web.rest;
2121
import static org.assertj.core.api.Assertions.assertThat;
2222

2323
import <%= packageName %>.IntegrationTest;
24+
import <%= packageName %>.config.DatabaseTestcontainer;
2425
<%_ if (databaseTypeSql && reactive) { _%>
2526
import <%= packageName %>.config.Constants;
2627
<%_ } _%>
@@ -42,6 +43,7 @@ import <%= packageName %>.repository.EntityManager;
4243
import org.junit.jupiter.api.AfterEach;
4344
import org.junit.jupiter.api.BeforeEach;
4445
import org.junit.jupiter.api.Test;
46+
import org.springframework.boot.testcontainers.context.ImportTestcontainers;
4547
import org.springframework.beans.factory.annotation.Autowired;
4648
<%_ if (reactive) { _%>
4749
import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient;
@@ -102,6 +104,9 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
102104
@AutoConfigureMockMvc
103105
<%_ } _%>
104106
@WithMockUser(authorities = AuthoritiesConstants.ADMIN)
107+
<%_ if (databaseTypeMongodb) { _%>
108+
@ImportTestcontainers(DatabaseTestcontainer.class)
109+
<%_ } _%>
105110
@IntegrationTest
106111
class PublicUserResourceIT {
107112

generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ if (!reactive && databaseTypeSql) {
2323
saveMethod = 'saveAndFlush';
2424
}
2525
_%>
26+
import <%= packageName %>.config.DatabaseTestcontainer;
2627
import <%= packageName %>.IntegrationTest;
2728

2829
<%_ if (databaseTypeSql && reactive) { _%>
@@ -55,6 +56,7 @@ import org.junit.jupiter.api.AfterEach;
5556
import org.junit.jupiter.api.BeforeEach;
5657
import org.junit.jupiter.api.Test;
5758
import org.springframework.beans.factory.annotation.Autowired;
59+
import org.springframework.boot.testcontainers.context.ImportTestcontainers;
5860
<%_ if (reactive) { _%>
5961
import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient;
6062
<%_ } else { _%>
@@ -119,6 +121,9 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
119121
@AutoConfigureMockMvc
120122
<%_ } _%>
121123
@WithMockUser(authorities = AuthoritiesConstants.ADMIN)
124+
<%_ if (databaseTypeMongodb) { _%>
125+
@ImportTestcontainers(DatabaseTestcontainer.class)
126+
<%_ } _%>
122127
@IntegrationTest
123128
class UserResourceIT {
124129

generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ _%>
6060
import <%= packageName %>.web.rest.TestUtil;
6161
<% } %>
6262
import <%= packageName %>.IntegrationTest;
63+
import <%= packageName %>.config.DatabaseTestcontainer;
6364
import <%= entityAbsolutePackage %>.domain.<%= persistClass %>;
6465
<%_
6566
var imported = [];
@@ -121,6 +122,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
121122
import org.mockito.junit.jupiter.MockitoExtension;
122123
<%_ } _%>
123124
import org.springframework.beans.factory.annotation.Autowired;
125+
import org.springframework.boot.testcontainers.context.ImportTestcontainers;
124126
<%_ if (reactive) { _%>
125127
import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient;
126128
<%_ } else { _%>
@@ -250,6 +252,9 @@ import <%= entityAbsolutePackage %>.domain.enumeration.<%= field.fieldType %>;
250252
/**
251253
* Integration tests for the {@link <%= entityClass %>Resource} REST controller.
252254
*/
255+
<%_ if (databaseTypeMongodb) { _%>
256+
@ImportTestcontainers(DatabaseTestcontainer.class)
257+
<%_ } _%>
253258
@IntegrationTest
254259
<%_ if (skipJunitTests) { _%>
255260
@Disabled("<%- skipJunitTests %>")

generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package <%= packageName %>.web.rest;
2020

2121
import <%= packageName %>.IntegrationTest;
2222
import <%= packageName %>.config.Constants;
23+
import <%= packageName %>.config.DatabaseTestcontainer;
2324
<%_ if (authenticationTypeSession && !reactive) { _%>
2425
import <%= packageName %>.domain.PersistentToken;
2526
<%_ } _%>
@@ -50,6 +51,7 @@ import org.junit.jupiter.api.Test;
5051
import org.junit.jupiter.params.ParameterizedTest;
5152
import org.junit.jupiter.params.provider.MethodSource;
5253
import org.springframework.beans.factory.annotation.Autowired;
54+
import org.springframework.boot.testcontainers.context.ImportTestcontainers;
5355
<%_ if (reactive) { _%>
5456
import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient;
5557
<%_ } else { _%>
@@ -110,6 +112,9 @@ import static org.springframework.security.test.web.servlet.response.SecurityMoc
110112
<%_ } else { _%>
111113
@AutoConfigureMockMvc
112114
<%_ } _%>
115+
<%_ if (databaseTypeMongodb) { _%>
116+
@ImportTestcontainers(DatabaseTestcontainer.class)
117+
<%_ } _%>
113118
@IntegrationTest
114119
class AccountResourceIT {
115120
static final String TEST_USER_LOGIN = "test";

generators/spring-data/generators/mongodb/__snapshots__/generator.spec.ts.snap

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ exports[`generator - mongodb gateway-jwt-reactive(false)-maven-enableTranslation
254254
"src/test/java/tech/jhipster/config/CRLFLogConverterTest.java": {
255255
"stateCleared": "modified",
256256
},
257-
"src/test/java/tech/jhipster/config/MongoDbTestContainer.java": {
257+
"src/test/java/tech/jhipster/config/DatabaseTestcontainer.java": {
258258
"stateCleared": "modified",
259259
},
260260
"src/test/java/tech/jhipster/config/SpringBootTestClassOrderer.java": {
@@ -586,10 +586,10 @@ exports[`generator - mongodb gateway-jwt-reactive(true)-gradle-enableTranslation
586586
"src/test/java/com/mycompany/config/AsyncSyncConfiguration.java": {
587587
"stateCleared": "modified",
588588
},
589-
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
589+
"src/test/java/com/mycompany/config/DatabaseTestcontainer.java": {
590590
"stateCleared": "modified",
591591
},
592-
"src/test/java/com/mycompany/config/MongoDbTestContainer.java": {
592+
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
593593
"stateCleared": "modified",
594594
},
595595
"src/test/java/com/mycompany/config/SpringBootTestClassOrderer.java": {
@@ -900,10 +900,10 @@ exports[`generator - mongodb gateway-oauth2-reactive(true)-gradle-enableTranslat
900900
"src/test/java/com/mycompany/config/AsyncSyncConfiguration.java": {
901901
"stateCleared": "modified",
902902
},
903-
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
903+
"src/test/java/com/mycompany/config/DatabaseTestcontainer.java": {
904904
"stateCleared": "modified",
905905
},
906-
"src/test/java/com/mycompany/config/MongoDbTestContainer.java": {
906+
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
907907
"stateCleared": "modified",
908908
},
909909
"src/test/java/com/mycompany/config/SpringBootTestClassOrderer.java": {
@@ -1169,7 +1169,7 @@ exports[`generator - mongodb microservice-jwt-reactive(false)-maven-enableTransl
11691169
"src/test/java/tech/jhipster/config/CRLFLogConverterTest.java": {
11701170
"stateCleared": "modified",
11711171
},
1172-
"src/test/java/tech/jhipster/config/MongoDbTestContainer.java": {
1172+
"src/test/java/tech/jhipster/config/DatabaseTestcontainer.java": {
11731173
"stateCleared": "modified",
11741174
},
11751175
"src/test/java/tech/jhipster/config/SpringBootTestClassOrderer.java": {
@@ -1453,10 +1453,10 @@ exports[`generator - mongodb microservice-jwt-reactive(true)-gradle-enableTransl
14531453
"src/test/java/com/mycompany/config/AsyncSyncConfiguration.java": {
14541454
"stateCleared": "modified",
14551455
},
1456-
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
1456+
"src/test/java/com/mycompany/config/DatabaseTestcontainer.java": {
14571457
"stateCleared": "modified",
14581458
},
1459-
"src/test/java/com/mycompany/config/MongoDbTestContainer.java": {
1459+
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
14601460
"stateCleared": "modified",
14611461
},
14621462
"src/test/java/com/mycompany/config/SpringBootTestClassOrderer.java": {
@@ -1734,10 +1734,10 @@ exports[`generator - mongodb microservice-oauth2-reactive(true)-gradle-enableTra
17341734
"src/test/java/com/mycompany/config/AsyncSyncConfiguration.java": {
17351735
"stateCleared": "modified",
17361736
},
1737-
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
1737+
"src/test/java/com/mycompany/config/DatabaseTestcontainer.java": {
17381738
"stateCleared": "modified",
17391739
},
1740-
"src/test/java/com/mycompany/config/MongoDbTestContainer.java": {
1740+
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
17411741
"stateCleared": "modified",
17421742
},
17431743
"src/test/java/com/mycompany/config/SpringBootTestClassOrderer.java": {
@@ -2063,7 +2063,7 @@ exports[`generator - mongodb monolith-jwt-reactive(false)-maven-enableTranslatio
20632063
"src/test/java/tech/jhipster/config/CRLFLogConverterTest.java": {
20642064
"stateCleared": "modified",
20652065
},
2066-
"src/test/java/tech/jhipster/config/MongoDbTestContainer.java": {
2066+
"src/test/java/tech/jhipster/config/DatabaseTestcontainer.java": {
20672067
"stateCleared": "modified",
20682068
},
20692069
"src/test/java/tech/jhipster/config/SpringBootTestClassOrderer.java": {
@@ -2386,10 +2386,10 @@ exports[`generator - mongodb monolith-jwt-reactive(true)-gradle-enableTranslatio
23862386
"src/test/java/com/mycompany/config/AsyncSyncConfiguration.java": {
23872387
"stateCleared": "modified",
23882388
},
2389-
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
2389+
"src/test/java/com/mycompany/config/DatabaseTestcontainer.java": {
23902390
"stateCleared": "modified",
23912391
},
2392-
"src/test/java/com/mycompany/config/MongoDbTestContainer.java": {
2392+
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
23932393
"stateCleared": "modified",
23942394
},
23952395
"src/test/java/com/mycompany/config/SpringBootTestClassOrderer.java": {
@@ -2631,7 +2631,7 @@ exports[`generator - mongodb monolith-oauth2-reactive(false)-maven-enableTransla
26312631
"src/test/java/tech/jhipster/config/CRLFLogConverterTest.java": {
26322632
"stateCleared": "modified",
26332633
},
2634-
"src/test/java/tech/jhipster/config/MongoDbTestContainer.java": {
2634+
"src/test/java/tech/jhipster/config/DatabaseTestcontainer.java": {
26352635
"stateCleared": "modified",
26362636
},
26372637
"src/test/java/tech/jhipster/config/SpringBootTestClassOrderer.java": {
@@ -2921,10 +2921,10 @@ exports[`generator - mongodb monolith-oauth2-reactive(true)-gradle-enableTransla
29212921
"src/test/java/com/mycompany/config/AsyncSyncConfiguration.java": {
29222922
"stateCleared": "modified",
29232923
},
2924-
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
2924+
"src/test/java/com/mycompany/config/DatabaseTestcontainer.java": {
29252925
"stateCleared": "modified",
29262926
},
2927-
"src/test/java/com/mycompany/config/MongoDbTestContainer.java": {
2927+
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
29282928
"stateCleared": "modified",
29292929
},
29302930
"src/test/java/com/mycompany/config/SpringBootTestClassOrderer.java": {
@@ -3259,7 +3259,7 @@ exports[`generator - mongodb monolith-session-reactive(false)-maven-enableTransl
32593259
"src/test/java/tech/jhipster/config/CRLFLogConverterTest.java": {
32603260
"stateCleared": "modified",
32613261
},
3262-
"src/test/java/tech/jhipster/config/MongoDbTestContainer.java": {
3262+
"src/test/java/tech/jhipster/config/DatabaseTestcontainer.java": {
32633263
"stateCleared": "modified",
32643264
},
32653265
"src/test/java/tech/jhipster/config/SpringBootTestClassOrderer.java": {
@@ -3588,10 +3588,10 @@ exports[`generator - mongodb monolith-session-reactive(true)-gradle-enableTransl
35883588
"src/test/java/com/mycompany/config/AsyncSyncConfiguration.java": {
35893589
"stateCleared": "modified",
35903590
},
3591-
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
3591+
"src/test/java/com/mycompany/config/DatabaseTestcontainer.java": {
35923592
"stateCleared": "modified",
35933593
},
3594-
"src/test/java/com/mycompany/config/MongoDbTestContainer.java": {
3594+
"src/test/java/com/mycompany/config/JHipsterBlockHoundIntegration.java": {
35953595
"stateCleared": "modified",
35963596
},
35973597
"src/test/java/com/mycompany/config/SpringBootTestClassOrderer.java": {

generators/spring-data/generators/mongodb/files.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export const mongoDbFiles = asWriteFilesSection<JavaApplication>({
3737
{
3838
path: `${SERVER_TEST_SRC_DIR}_package_/`,
3939
renameTo: moveToJavaPackageTestDir,
40-
templates: ['config/MongoDbTestContainer.java'],
40+
templates: ['config/DatabaseTestcontainer.java'],
4141
},
4242
],
4343
});

generators/spring-data/generators/mongodb/generator.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export default class MongoDBGenerator extends SpringBootApplicationGenerator {
4141
'9.0.0-beta.1': [
4242
`${application.javaPackageSrcDir}TestContainersSpringContextCustomizerFactory.java`,
4343
`${application.javaPackageSrcDir}config/EmbeddedMongo.java`,
44+
`${application.javaPackageSrcDir}config/MongoDbTestContainer.java`,
4445
`${application.srcTestResources}META-INF/spring.factories`,
4546
],
4647
});
@@ -89,18 +90,6 @@ export default class MongoDBGenerator extends SpringBootApplicationGenerator {
8990
]);
9091
}
9192
},
92-
integrationTest({ application, source }) {
93-
source.editJavaFile!(`${application.javaPackageTestDir}IntegrationTest.java`, {
94-
imports: [`${application.packageName}.config.MongoDbTestContainer`],
95-
annotations: [
96-
{
97-
package: 'org.springframework.boot.testcontainers.context',
98-
annotation: 'ImportTestcontainers',
99-
parameters: (_, cb) => cb.addKeyValue('value', 'MongoDbTestContainer.class'),
100-
},
101-
],
102-
});
103-
},
10493
blockhound({ application, source }) {
10594
const { reactive } = application;
10695
if (reactive) {

generators/spring-data/generators/mongodb/templates/src/test/java/_package_/config/MongoDbTestContainer.java.ejs renamed to generators/spring-data/generators/mongodb/templates/src/test/java/_package_/config/DatabaseTestcontainer.java.ejs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,19 @@ package <%= packageName %>.config;
2020

2121
import java.util.Collections;
2222

23-
import org.springframework.boot.test.context.TestConfiguration;
24-
import org.springframework.test.context.DynamicPropertyRegistry;
25-
import org.springframework.test.context.DynamicPropertySource;
23+
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
2624
import org.slf4j.Logger;
2725
import org.slf4j.LoggerFactory;
2826
import org.testcontainers.containers.output.Slf4jLogConsumer;
2927
import org.testcontainers.mongodb.MongoDBContainer;
3028
import org.testcontainers.junit.jupiter.Container;
29+
import org.testcontainers.junit.jupiter.Testcontainers;
3130

32-
public interface MongoDbTestContainer {
31+
@Testcontainers
32+
public interface DatabaseTestcontainer {
3333
@Container
34+
@ServiceConnection
3435
MongoDBContainer mongoDbContainer = new MongoDBContainer("<%- dockerContainers.mongodb %>").withReuse(true).withLogConsumer(
3536
new Slf4jLogConsumer(LoggerFactory.getLogger(MongoDbTestContainer.class))
3637
);
37-
38-
@DynamicPropertySource
39-
static void registerProperties(DynamicPropertyRegistry registry) {
40-
registry.add("spring.mongodb.uri", mongoDbContainer::getReplicaSetUrl);
41-
}
4238
}

0 commit comments

Comments
 (0)