Skip to content

Commit 424fc66

Browse files
committed
add more tests
1 parent 359a5c9 commit 424fc66

File tree

5 files changed

+109
-28
lines changed

5 files changed

+109
-28
lines changed

spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/hazelcast/HazelcastDockerComposeConnectionDetailsFactoryIntegrationTests.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,10 @@
1717
package org.springframework.boot.docker.compose.service.connection.hazelcast;
1818

1919
import java.util.UUID;
20-
import java.util.function.Consumer;
2120

2221
import com.hazelcast.client.HazelcastClient;
2322
import com.hazelcast.client.config.ClientConfig;
24-
import com.hazelcast.client.impl.clientside.HazelcastClientProxy;
23+
import com.hazelcast.config.Config;
2524
import com.hazelcast.core.HazelcastInstance;
2625
import com.hazelcast.map.IMap;
2726

@@ -40,9 +39,21 @@ class HazelcastDockerComposeConnectionDetailsFactoryIntegrationTests {
4039

4140
@DockerComposeTest(composeFile = "hazelcast-compose.yaml", image = TestImage.HAZELCAST)
4241
void runCreatesConnectionDetails(HazelcastConnectionDetails connectionDetails) {
43-
HazelcastInstance hazelcastInstance = HazelcastClient.newHazelcastClient(connectionDetails.getClientConfig());
42+
ClientConfig config = connectionDetails.getClientConfig();
43+
assertThat(config.getClusterName()).isEqualTo(Config.DEFAULT_CLUSTER_NAME);
44+
verifyConnection(config);
45+
}
46+
47+
@DockerComposeTest(composeFile = "hazelcast-cluster-name-compose.yaml", image = TestImage.HAZELCAST)
48+
void runCreatesConnectionDetailsCustomClusterName(HazelcastConnectionDetails connectionDetails) {
49+
ClientConfig config = connectionDetails.getClientConfig();
50+
assertThat(config.getClusterName()).isEqualTo("spring-boot");
51+
verifyConnection(config);
52+
}
53+
54+
private static void verifyConnection(ClientConfig config) {
55+
HazelcastInstance hazelcastInstance = HazelcastClient.newHazelcastClient(config);
4456
try {
45-
assertThat(hazelcastInstance).satisfies(clusterName("spring-boot"));
4657
IMap<String, String> map = hazelcastInstance.getMap(UUID.randomUUID().toString());
4758
map.put("docker", "compose");
4859
assertThat(map.get("docker")).isEqualTo("compose");
@@ -52,12 +63,4 @@ void runCreatesConnectionDetails(HazelcastConnectionDetails connectionDetails) {
5263
}
5364
}
5465

55-
private static Consumer<HazelcastInstance> clusterName(String name) {
56-
return (hazelcastInstance) -> {
57-
assertThat(hazelcastInstance).isInstanceOf(HazelcastClientProxy.class);
58-
HazelcastClientProxy proxy = (HazelcastClientProxy) hazelcastInstance;
59-
assertThat(proxy.getClientConfig()).extracting(ClientConfig::getClusterName).isEqualTo(name);
60-
};
61-
}
62-
6366
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
services:
2+
hazelcast:
3+
image: '{imageName}'
4+
environment:
5+
HZ_CLUSTERNAME: "spring-boot"
6+
ports:
7+
- '5701'
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
services:
22
hazelcast:
33
image: '{imageName}'
4-
environment:
5-
HZ_CLUSTERNAME: "spring-boot"
64
ports:
75
- '5701'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
/*
2+
* Copyright 2012-2024 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.springframework.boot.testcontainers.service.connection.hazelcast;
18+
19+
import java.util.UUID;
20+
import java.util.function.Consumer;
21+
22+
import com.hazelcast.client.config.ClientConfig;
23+
import com.hazelcast.client.impl.clientside.HazelcastClientProxy;
24+
import com.hazelcast.core.HazelcastInstance;
25+
import com.hazelcast.map.IMap;
26+
import org.junit.jupiter.api.Test;
27+
import org.testcontainers.junit.jupiter.Container;
28+
import org.testcontainers.junit.jupiter.Testcontainers;
29+
30+
import org.springframework.beans.factory.annotation.Autowired;
31+
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
32+
import org.springframework.boot.autoconfigure.hazelcast.HazelcastAutoConfiguration;
33+
import org.springframework.boot.autoconfigure.hazelcast.HazelcastConnectionDetails;
34+
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
35+
import org.springframework.boot.testsupport.container.HazelcastContainer;
36+
import org.springframework.boot.testsupport.container.TestImage;
37+
import org.springframework.context.annotation.Configuration;
38+
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
39+
40+
import static org.assertj.core.api.Assertions.assertThat;
41+
42+
/**
43+
* Tests for {@link HazelcastContainerConnectionDetailsFactory} with a custom hazelcast
44+
* cluster name.
45+
*
46+
* @author Dmytro Nosan
47+
*/
48+
@SpringJUnitConfig
49+
@Testcontainers(disabledWithoutDocker = true)
50+
class CustomClusterHazelcastContainerConnectionDetailsFactoryIntegrationTests {
51+
52+
@Container
53+
@ServiceConnection
54+
static final HazelcastContainer hazelcast = TestImage.container(HazelcastContainer.class)
55+
.withEnv("HZ_CLUSTERNAME", "spring-boot");
56+
57+
@Autowired(required = false)
58+
private HazelcastConnectionDetails connectionDetails;
59+
60+
@Autowired
61+
private HazelcastInstance hazelcastInstance;
62+
63+
@Test
64+
void connectionCanBeMadeToHazelcastContainer() {
65+
assertThat(this.connectionDetails).isNotNull();
66+
assertThat(this.hazelcastInstance).satisfies(clusterName("spring-boot"));
67+
IMap<String, String> map = this.hazelcastInstance.getMap(UUID.randomUUID().toString());
68+
map.put("test", "containers");
69+
assertThat(map.get("test")).isEqualTo("containers");
70+
}
71+
72+
private static Consumer<HazelcastInstance> clusterName(String name) {
73+
return (hazelcastInstance) -> {
74+
assertThat(hazelcastInstance).isInstanceOf(HazelcastClientProxy.class);
75+
HazelcastClientProxy proxy = (HazelcastClientProxy) hazelcastInstance;
76+
assertThat(proxy.getClientConfig()).extracting(ClientConfig::getClusterName).isEqualTo(name);
77+
};
78+
}
79+
80+
@Configuration(proxyBeanMethods = false)
81+
@ImportAutoConfiguration(HazelcastAutoConfiguration.class)
82+
static class TestConfiguration {
83+
84+
}
85+
86+
}

spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/hazelcast/HazelcastContainerConnectionDetailsFactoryIntegrationTests.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,7 @@
1717
package org.springframework.boot.testcontainers.service.connection.hazelcast;
1818

1919
import java.util.UUID;
20-
import java.util.function.Consumer;
2120

22-
import com.hazelcast.client.config.ClientConfig;
23-
import com.hazelcast.client.impl.clientside.HazelcastClientProxy;
2421
import com.hazelcast.core.HazelcastInstance;
2522
import com.hazelcast.map.IMap;
2623
import org.junit.jupiter.api.Test;
@@ -50,8 +47,7 @@ class HazelcastContainerConnectionDetailsFactoryIntegrationTests {
5047

5148
@Container
5249
@ServiceConnection
53-
static final HazelcastContainer hazelcast = TestImage.container(HazelcastContainer.class)
54-
.withEnv("HZ_CLUSTERNAME", "spring-boot");
50+
static final HazelcastContainer hazelcast = TestImage.container(HazelcastContainer.class);
5551

5652
@Autowired(required = false)
5753
private HazelcastConnectionDetails connectionDetails;
@@ -62,20 +58,11 @@ class HazelcastContainerConnectionDetailsFactoryIntegrationTests {
6258
@Test
6359
void connectionCanBeMadeToHazelcastContainer() {
6460
assertThat(this.connectionDetails).isNotNull();
65-
assertThat(this.hazelcastInstance).satisfies(clusterName("spring-boot"));
6661
IMap<String, String> map = this.hazelcastInstance.getMap(UUID.randomUUID().toString());
6762
map.put("test", "containers");
6863
assertThat(map.get("test")).isEqualTo("containers");
6964
}
7065

71-
private static Consumer<HazelcastInstance> clusterName(String name) {
72-
return (hazelcastInstance) -> {
73-
assertThat(hazelcastInstance).isInstanceOf(HazelcastClientProxy.class);
74-
HazelcastClientProxy proxy = (HazelcastClientProxy) hazelcastInstance;
75-
assertThat(proxy.getClientConfig()).extracting(ClientConfig::getClusterName).isEqualTo(name);
76-
};
77-
}
78-
7966
@Configuration(proxyBeanMethods = false)
8067
@ImportAutoConfiguration(HazelcastAutoConfiguration.class)
8168
static class TestConfiguration {

0 commit comments

Comments
 (0)