|
18 | 18 | */
|
19 | 19 | package org.apache.pulsar.client.impl;
|
20 | 20 |
|
| 21 | +import static org.assertj.core.api.Assertions.assertThat; |
21 | 22 | import static org.mockito.Mockito.any;
|
22 | 23 | import static org.mockito.Mockito.doNothing;
|
23 | 24 | import static org.mockito.Mockito.doReturn;
|
|
26 | 27 | import static org.mockito.Mockito.times;
|
27 | 28 | import static org.mockito.Mockito.verify;
|
28 | 29 |
|
| 30 | +import java.util.Collections; |
| 31 | +import java.util.List; |
29 | 32 | import java.util.concurrent.CompletableFuture;
|
30 | 33 | import java.util.concurrent.CompletionException;
|
31 | 34 | import java.util.concurrent.ExecutorService;
|
|
39 | 42 | import org.apache.pulsar.client.api.PulsarClientException;
|
40 | 43 | import org.apache.pulsar.client.impl.conf.ClientConfigurationData;
|
41 | 44 | import org.apache.pulsar.client.impl.conf.ConsumerConfigurationData;
|
| 45 | +import org.apache.pulsar.client.impl.conf.TopicConsumerConfigurationData; |
42 | 46 | import org.apache.pulsar.client.util.ExecutorProvider;
|
43 | 47 | import org.awaitility.Awaitility;
|
44 | 48 | import org.testng.Assert;
|
|
47 | 51 | import org.testng.annotations.Test;
|
48 | 52 |
|
49 | 53 | public class ConsumerImplTest {
|
| 54 | + private final String topic = "non-persistent://tenant/ns1/my-topic"; |
50 | 55 |
|
51 | 56 | private ExecutorProvider executorProvider;
|
52 | 57 | private ExecutorService internalExecutor;
|
53 | 58 | private ConsumerImpl<byte[]> consumer;
|
54 |
| - private ConsumerConfigurationData consumerConf; |
| 59 | + private ConsumerConfigurationData<byte[]> consumerConf; |
55 | 60 |
|
56 | 61 | @BeforeMethod(alwaysRun = true)
|
57 | 62 | public void setUp() {
|
| 63 | + consumerConf = new ConsumerConfigurationData<>(); |
| 64 | + createConsumer(consumerConf); |
| 65 | + } |
| 66 | + |
| 67 | + private void createConsumer(ConsumerConfigurationData consumerConf) { |
58 | 68 | executorProvider = new ExecutorProvider(1, "ConsumerImplTest");
|
59 | 69 | internalExecutor = Executors.newSingleThreadScheduledExecutor();
|
60 |
| - consumerConf = new ConsumerConfigurationData<>(); |
| 70 | + |
61 | 71 | PulsarClientImpl client = ClientTestFixtures.createPulsarClientMock(executorProvider, internalExecutor);
|
62 | 72 | ClientConfigurationData clientConf = client.getConfiguration();
|
63 | 73 | clientConf.setOperationTimeoutMs(100);
|
64 | 74 | clientConf.setStatsIntervalSeconds(0);
|
65 |
| - CompletableFuture<Consumer<ConsumerImpl>> subscribeFuture = new CompletableFuture<>(); |
66 |
| - String topic = "non-persistent://tenant/ns1/my-topic"; |
| 75 | + CompletableFuture<Consumer<byte[]>> subscribeFuture = new CompletableFuture<>(); |
67 | 76 |
|
68 | 77 | consumerConf.setSubscriptionName("test-sub");
|
69 | 78 | consumer = ConsumerImpl.newConsumerImpl(client, topic, consumerConf,
|
@@ -239,4 +248,15 @@ public void testMaxReceiverQueueSize() {
|
239 | 248 | Assert.assertEquals(consumer.getCurrentReceiverQueueSize(), size + 100);
|
240 | 249 | Assert.assertEquals(consumer.getAvailablePermits(), permits + 100);
|
241 | 250 | }
|
| 251 | + |
| 252 | + @Test |
| 253 | + public void testTopicPriorityLevel() { |
| 254 | + ConsumerConfigurationData<Object> consumerConf = new ConsumerConfigurationData<>(); |
| 255 | + consumerConf.getTopicConfigurations().add( |
| 256 | + TopicConsumerConfigurationData.of(topic, 1)); |
| 257 | + |
| 258 | + createConsumer(consumerConf); |
| 259 | + |
| 260 | + assertThat(consumer.getPriorityLevel()).isEqualTo(1); |
| 261 | + } |
242 | 262 | }
|
0 commit comments