Add test for reactive reader properties (#231)

This commit is contained in:
Christophe Bornet
2022-11-22 02:57:19 +01:00
committed by GitHub
parent e97f9c6f94
commit 89e096c878
2 changed files with 34 additions and 0 deletions

View File

@@ -541,6 +541,7 @@ public class PulsarReactiveProperties {
map.from(this::getReceiverQueueSize).to(spec::setReceiverQueueSize);
map.from(this::getReadCompacted).to(spec::setReadCompacted);
map.from(this::getKeyHashRanges).as(List::of).to(spec::setKeyHashRanges);
map.from(this::getCryptoFailureAction).to(spec::setCryptoFailureAction);
return new ImmutableReactiveMessageReaderSpec(spec);
}

View File

@@ -29,11 +29,13 @@ import org.apache.pulsar.client.api.HashingScheme;
import org.apache.pulsar.client.api.MessageRoutingMode;
import org.apache.pulsar.client.api.ProducerAccessMode;
import org.apache.pulsar.client.api.ProducerCryptoFailureAction;
import org.apache.pulsar.client.api.Range;
import org.apache.pulsar.client.api.RegexSubscriptionMode;
import org.apache.pulsar.client.api.SubscriptionInitialPosition;
import org.apache.pulsar.client.api.SubscriptionMode;
import org.apache.pulsar.client.api.SubscriptionType;
import org.apache.pulsar.reactive.client.api.ReactiveMessageConsumerSpec;
import org.apache.pulsar.reactive.client.api.ReactiveMessageReaderSpec;
import org.apache.pulsar.reactive.client.api.ReactiveMessageSenderSpec;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
@@ -220,4 +222,35 @@ public class PulsarReactivePropertiesTests {
}
@Nested
class ReaderPropertiesTests {
@Test
void readerPropsToReaderSpec() {
Map<String, String> props = new HashMap<>();
props.put("spring.pulsar.reactive.reader.topic-names[0]", "my-topic");
props.put("spring.pulsar.reactive.reader.reader-name", "my-reader");
props.put("spring.pulsar.reactive.reader.subscription-name", "my-subscription");
props.put("spring.pulsar.reactive.reader.generated-subscription-name-prefix", "my-prefix");
props.put("spring.pulsar.reactive.reader.receiver-queue-size", "1");
props.put("spring.pulsar.reactive.reader.read-compacted", "true");
props.put("spring.pulsar.reactive.reader.key-hash-ranges[0].start", "2");
props.put("spring.pulsar.reactive.reader.key-hash-ranges[0].end", "3");
props.put("spring.pulsar.reactive.reader.crypto-failure-action", "DISCARD");
bind(props);
ReactiveMessageReaderSpec readerSpec = properties.buildReactiveMessageReaderSpec();
assertThat(readerSpec.getTopicNames()).containsExactly("my-topic");
assertThat(readerSpec.getReaderName()).isEqualTo("my-reader");
assertThat(readerSpec.getSubscriptionName()).isEqualTo("my-subscription");
assertThat(readerSpec.getGeneratedSubscriptionNamePrefix()).isEqualTo("my-prefix");
assertThat(readerSpec.getReceiverQueueSize()).isEqualTo(1);
assertThat(readerSpec.getReadCompacted()).isTrue();
assertThat(readerSpec.getKeyHashRanges()).containsExactly(Range.of(2, 3));
assertThat(readerSpec.getCryptoFailureAction()).isEqualTo(ConsumerCryptoFailureAction.DISCARD);
}
}
}