Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit c7fc8fe

Browse files
authoredNov 22, 2022
Add test for admin properties (#234)
1 parent 698b256 commit c7fc8fe

File tree

1 file changed

+62
-14
lines changed

1 file changed

+62
-14
lines changed
 

‎spring-pulsar-spring-boot-autoconfigure/src/test/java/org/springframework/pulsar/autoconfigure/PulsarPropertiesTests.java

Lines changed: 62 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,11 @@
2020
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
2121
import static org.assertj.core.api.Assertions.assertThatNoException;
2222

23-
import java.util.Collection;
2423
import java.util.Collections;
2524
import java.util.HashMap;
2625
import java.util.Map;
27-
import java.util.Set;
2826

27+
import org.apache.pulsar.client.admin.PulsarAdmin;
2928
import org.apache.pulsar.client.api.CompressionType;
3029
import org.apache.pulsar.client.api.ConsumerCryptoFailureAction;
3130
import org.apache.pulsar.client.api.DeadLetterPolicy;
@@ -42,6 +41,7 @@
4241
import org.apache.pulsar.client.impl.conf.ConfigurationDataUtils;
4342
import org.apache.pulsar.client.impl.conf.ConsumerConfigurationData;
4443
import org.apache.pulsar.client.impl.conf.ProducerConfigurationData;
44+
import org.assertj.core.api.InstanceOfAssertFactories;
4545
import org.junit.jupiter.api.Nested;
4646
import org.junit.jupiter.api.Test;
4747

@@ -79,7 +79,6 @@ class ClientPropertiesTests {
7979
private final String authToken = "1234";
8080

8181
@Test
82-
@SuppressWarnings("unchecked")
8382
void clientProperties() {
8483
Map<String, String> props = new HashMap<>();
8584
props.put("spring.pulsar.client.service-url", "my-service-url");
@@ -141,9 +140,13 @@ void clientProperties() {
141140
.containsEntry("tlsTrustStorePath", "my-trust-store-path")
142141
.containsEntry("tlsTrustStorePassword", "my-trust-store-password")
143142
.hasEntrySatisfying("tlsCiphers",
144-
t -> assertThat(((Set<String>) t)).containsExactly("my-tls-cipher"))
143+
ciphers -> assertThat(ciphers)
144+
.asInstanceOf(InstanceOfAssertFactories.collection(String.class))
145+
.containsExactly("my-tls-cipher"))
145146
.hasEntrySatisfying("tlsProtocols",
146-
t -> assertThat(((Set<String>) t)).containsExactly("my-tls-protocol"))
147+
protocols -> assertThat(protocols)
148+
.asInstanceOf(InstanceOfAssertFactories.collection(String.class))
149+
.containsExactly("my-tls-protocol"))
147150
.containsEntry("statsIntervalSeconds", 6L).containsEntry("concurrentLookupRequest", 7)
148151
.containsEntry("maxLookupRequest", 8).containsEntry("maxLookupRedirects", 9)
149152
.containsEntry("maxNumberOfRejectedRequestPerConnection", 10)
@@ -210,6 +213,45 @@ class AdminPropertiesTests {
210213

211214
private final String authToken = "1234";
212215

216+
@Test
217+
void adminProperties() {
218+
Map<String, String> props = new HashMap<>();
219+
props.put("spring.pulsar.administration.service-url", "my-service-url");
220+
props.put("spring.pulsar.administration.tls-hostname-verification-enable", "true");
221+
props.put("spring.pulsar.administration.tls-trust-certs-file-path", "my-trust-certs-file-path");
222+
props.put("spring.pulsar.administration.tls-allow-insecure-connection", "true");
223+
props.put("spring.pulsar.administration.use-key-store-tls", "true");
224+
props.put("spring.pulsar.administration.ssl-provider", "my-ssl-provider");
225+
props.put("spring.pulsar.administration.tls-trust-store-type", "my-trust-store-type");
226+
props.put("spring.pulsar.administration.tls-trust-store-path", "my-trust-store-path");
227+
props.put("spring.pulsar.administration.tls-trust-store-password", "my-trust-store-password");
228+
props.put("spring.pulsar.administration.tls-ciphers[0]", "my-tls-cipher");
229+
props.put("spring.pulsar.administration.tls-protocols[0]", "my-tls-protocol");
230+
231+
bind(props);
232+
Map<String, Object> adminProps = properties.buildAdminProperties();
233+
234+
// Verify that the props can be loaded in a ClientBuilder
235+
assertThatNoException().isThrownBy(() -> PulsarAdmin.builder().loadConf(adminProps));
236+
237+
assertThat(adminProps).containsEntry("serviceUrl", "my-service-url")
238+
.containsEntry("tlsHostnameVerificationEnable", true)
239+
.containsEntry("tlsTrustCertsFilePath", "my-trust-certs-file-path")
240+
.containsEntry("tlsAllowInsecureConnection", true).containsEntry("useKeyStoreTls", true)
241+
.containsEntry("sslProvider", "my-ssl-provider")
242+
.containsEntry("tlsTrustStoreType", "my-trust-store-type")
243+
.containsEntry("tlsTrustStorePath", "my-trust-store-path")
244+
.containsEntry("tlsTrustStorePassword", "my-trust-store-password")
245+
.hasEntrySatisfying("tlsCiphers",
246+
ciphers -> assertThat(ciphers)
247+
.asInstanceOf(InstanceOfAssertFactories.collection(String.class))
248+
.containsExactly("my-tls-cipher"))
249+
.hasEntrySatisfying("tlsProtocols",
250+
protocols -> assertThat(protocols)
251+
.asInstanceOf(InstanceOfAssertFactories.collection(String.class))
252+
.containsExactly("my-tls-protocol"));
253+
}
254+
213255
@Test
214256
void authenticationUsingAuthParamsString() {
215257
Map<String, String> props = new HashMap<>();
@@ -254,7 +296,6 @@ void authenticationNotAllowedUsingBothAuthParamsStringAndAuthenticationMap() {
254296
class ProducerPropertiesTests {
255297

256298
@Test
257-
@SuppressWarnings("unchecked")
258299
void producerProperties() {
259300
Map<String, String> props = new HashMap<>();
260301
props.put("spring.pulsar.producer.topic-name", "my-topic");
@@ -298,12 +339,14 @@ void producerProperties() {
298339
.containsEntry("batchingMaxMessages", 7).containsEntry("batchingMaxBytes", 8)
299340
.containsEntry("batchingEnabled", false).containsEntry("chunkingEnabled", true)
300341
.hasEntrySatisfying("encryptionKeys",
301-
keys -> assertThat(((Set<String>) keys)).containsExactly("my-key"))
342+
keys -> assertThat(keys).asInstanceOf(InstanceOfAssertFactories.collection(String.class))
343+
.containsExactly("my-key"))
302344
.containsEntry("compressionType", CompressionType.LZ4).containsEntry("initialSequenceId", 9L)
303345
.containsEntry("accessMode", ProducerAccessMode.Exclusive)
304-
.containsEntry("lazyStartPartitionedProducers", true)
305-
.hasEntrySatisfying("properties", properties -> assertThat(((Map<String, String>) properties))
306-
.containsEntry("my-prop", "my-prop-value"));
346+
.containsEntry("lazyStartPartitionedProducers", true).hasEntrySatisfying("properties",
347+
properties -> assertThat(properties)
348+
.asInstanceOf(InstanceOfAssertFactories.map(String.class, String.class))
349+
.containsEntry("my-prop", "my-prop-value"));
307350
}
308351

309352
}
@@ -312,7 +355,6 @@ void producerProperties() {
312355
class ConsumerPropertiesTests {
313356

314357
@Test
315-
@SuppressWarnings("unchecked")
316358
void consumerProperties() {
317359
Map<String, String> props = new HashMap<>();
318360
props.put("spring.pulsar.consumer.topics[0]", "my-topic");
@@ -361,12 +403,16 @@ void consumerProperties() {
361403

362404
assertThat(consumerProps)
363405
.hasEntrySatisfying("topicNames",
364-
n -> assertThat((Collection<String>) n).containsExactly("my-topic"))
406+
topics -> assertThat(topics)
407+
.asInstanceOf(InstanceOfAssertFactories.collection(String.class))
408+
.containsExactly("my-topic"))
365409
.hasEntrySatisfying("topicsPattern", p -> assertThat(p.toString()).isEqualTo("my-pattern"))
366410
.containsEntry("subscriptionName", "my-subscription")
367411
.containsEntry("subscriptionType", SubscriptionType.Shared)
368412
.hasEntrySatisfying("subscriptionProperties",
369-
p -> assertThat((Map<String, String>) p).containsEntry("my-sub-prop", "my-sub-prop-value"))
413+
properties -> assertThat(properties)
414+
.asInstanceOf(InstanceOfAssertFactories.map(String.class, String.class))
415+
.containsEntry("my-sub-prop", "my-sub-prop-value"))
370416
.containsEntry("subscriptionMode", SubscriptionMode.NonDurable)
371417
.containsEntry("receiverQueueSize", 1).containsEntry("acknowledgementsGroupTimeMicros", 2_000_000L)
372418
.containsEntry("negativeAckRedeliveryDelayMicros", 3_000_000L)
@@ -375,7 +421,9 @@ void consumerProperties() {
375421
.containsEntry("tickDurationMillis", 7_000L).containsEntry("priorityLevel", 8)
376422
.containsEntry("cryptoFailureAction", ConsumerCryptoFailureAction.DISCARD)
377423
.hasEntrySatisfying("properties",
378-
p -> assertThat((Map<String, String>) p).containsEntry("my-prop", "my-prop-value"))
424+
properties -> assertThat(properties)
425+
.asInstanceOf(InstanceOfAssertFactories.map(String.class, String.class))
426+
.containsEntry("my-prop", "my-prop-value"))
379427
.containsEntry("readCompacted", true)
380428
.containsEntry("subscriptionInitialPosition", SubscriptionInitialPosition.Earliest)
381429
.containsEntry("patternAutoDiscoveryPeriod", 9)

0 commit comments

Comments
 (0)
Please sign in to comment.