@@ -37,20 +37,25 @@ using namespace pulsar;
3737static std::string serviceUrl = " pulsar://localhost:6650" ;
3838static const std::string adminUrl = " http://localhost:8080/" ;
3939
40- class ReaderTest : public ::testing::TestWithParam<bool > {
40+ class ReaderTest : public ::testing::TestWithParam<std::tuple< bool , bool > > {
4141 public:
4242 void initTopic (std::string topicName) {
4343 if (isMultiTopic_) {
4444 // call admin api to make it partitioned
45- std::string url = adminUrl + " admin/v2/persistent/public/default/" + topicName + " /partitions" ;
45+ std::string url = adminUrl + " admin/v2/" + (isNonPersistentTopic ? " non- " : " " ) + " persistent/public/default/" + topicName + " /partitions" ;
4646 int res = makePutRequest (url, " 5" );
4747 LOG_INFO (" res = " << res);
4848 ASSERT_FALSE (res != 204 && res != 409 );
4949 }
5050 }
5151
5252 protected:
53- bool isMultiTopic_ = GetParam();
53+ std::string fullTopicName (const std::string & topicName) {
54+ return (isNonPersistentTopic ? " non-" : " " ) + " persistent://public/default/" + topicName;
55+ }
56+
57+ bool isNonPersistentTopic = std::get<0 >(GetParam());
58+ bool isMultiTopic_ = std::get<1 >(GetParam());
5459};
5560
5661TEST_P (ReaderTest, testSimpleReader) {
@@ -62,10 +67,11 @@ TEST_P(ReaderTest, testSimpleReader) {
6267
6368 ReaderConfiguration readerConf;
6469 Reader reader;
65- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::earliest (), readerConf, reader));
70+
71+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName (topicName), MessageId::earliest (), readerConf, reader));
6672
6773 Producer producer;
68- ASSERT_EQ (ResultOk, client.createProducer (topicName, producer));
74+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( topicName) , producer));
6975
7076 for (int i = 0 ; i < 10 ; i++) {
7177 std::string content = " my-message-" + std::to_string (i);
@@ -95,10 +101,11 @@ TEST_P(ReaderTest, testAsyncRead) {
95101
96102 ReaderConfiguration readerConf;
97103 Reader reader;
98- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::earliest (), readerConf, reader));
104+
105+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName (topicName), MessageId::earliest (), readerConf, reader));
99106
100107 Producer producer;
101- ASSERT_EQ (ResultOk, client.createProducer (topicName, producer));
108+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( topicName) , producer));
102109
103110 for (int i = 0 ; i < 10 ; i++) {
104111 std::string content = " my-message-" + std::to_string (i);
@@ -140,7 +147,7 @@ TEST_P(ReaderTest, testReaderAfterMessagesWerePublished) {
140147 initTopic (topicName);
141148
142149 Producer producer;
143- ASSERT_EQ (ResultOk, client.createProducer (topicName, producer));
150+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( topicName) , producer));
144151
145152 for (int i = 0 ; i < 10 ; i++) {
146153 std::string content = " my-message-" + std::to_string (i);
@@ -150,7 +157,7 @@ TEST_P(ReaderTest, testReaderAfterMessagesWerePublished) {
150157
151158 ReaderConfiguration readerConf;
152159 Reader reader;
153- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::earliest (), readerConf, reader));
160+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::earliest (), readerConf, reader));
154161
155162 for (int i = 0 ; i < 10 ; i++) {
156163 Message msg;
@@ -174,7 +181,7 @@ TEST_P(ReaderTest, testMultipleReaders) {
174181 initTopic (topicName);
175182
176183 Producer producer;
177- ASSERT_EQ (ResultOk, client.createProducer (topicName, producer));
184+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( topicName) , producer));
178185
179186 for (int i = 0 ; i < 10 ; i++) {
180187 std::string content = " my-message-" + std::to_string (i);
@@ -184,10 +191,10 @@ TEST_P(ReaderTest, testMultipleReaders) {
184191
185192 ReaderConfiguration readerConf;
186193 Reader reader1;
187- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::earliest (), readerConf, reader1));
194+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::earliest (), readerConf, reader1));
188195
189196 Reader reader2;
190- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::earliest (), readerConf, reader2));
197+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::earliest (), readerConf, reader2));
191198
192199 for (int i = 0 ; i < 10 ; i++) {
193200 Message msg;
@@ -221,7 +228,7 @@ TEST_P(ReaderTest, testReaderOnLastMessage) {
221228 initTopic (topicName);
222229
223230 Producer producer;
224- ASSERT_EQ (ResultOk, client.createProducer (topicName, producer));
231+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( topicName) , producer));
225232
226233 for (int i = 0 ; i < 10 ; i++) {
227234 std::string content = " my-message-" + std::to_string (i);
@@ -231,7 +238,7 @@ TEST_P(ReaderTest, testReaderOnLastMessage) {
231238
232239 ReaderConfiguration readerConf;
233240 Reader reader;
234- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::latest (), readerConf, reader));
241+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::latest (), readerConf, reader));
235242
236243 for (int i = 10 ; i < 20 ; i++) {
237244 std::string content = " my-message-" + std::to_string (i);
@@ -261,7 +268,7 @@ TEST_P(ReaderTest, testReaderOnSpecificMessage) {
261268 initTopic (topicName);
262269
263270 Producer producer;
264- ASSERT_EQ (ResultOk, client.createProducer (topicName, producer));
271+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( topicName) , producer));
265272
266273 for (int i = 0 ; i < 10 ; i++) {
267274 std::string content = " my-message-" + std::to_string (i);
@@ -271,7 +278,7 @@ TEST_P(ReaderTest, testReaderOnSpecificMessage) {
271278
272279 ReaderConfiguration readerConf;
273280 Reader reader;
274- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::earliest (), readerConf, reader));
281+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::earliest (), readerConf, reader));
275282
276283 MessageId lastMessageId;
277284
@@ -287,7 +294,7 @@ TEST_P(ReaderTest, testReaderOnSpecificMessage) {
287294 }
288295
289296 // Create another reader starting on msgid4
290- ASSERT_EQ (ResultOk, client.createReader (topicName, lastMessageId, readerConf, reader));
297+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , lastMessageId, readerConf, reader));
291298
292299 for (int i = 5 ; i < 10 ; i++) {
293300 Message msg;
@@ -319,7 +326,7 @@ TEST_P(ReaderTest, testReaderOnSpecificMessageWithBatches) {
319326 ProducerConfiguration producerConf;
320327 producerConf.setBatchingEnabled (true );
321328 producerConf.setBatchingMaxPublishDelayMs (1000 );
322- ASSERT_EQ (ResultOk, client.createProducer (topicName, producerConf, producer));
329+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( topicName) , producerConf, producer));
323330
324331 for (int i = 0 ; i < 10 ; i++) {
325332 std::string content = " my-message-" + std::to_string (i);
@@ -334,7 +341,7 @@ TEST_P(ReaderTest, testReaderOnSpecificMessageWithBatches) {
334341
335342 ReaderConfiguration readerConf;
336343 Reader reader;
337- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::earliest (), readerConf, reader));
344+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::earliest (), readerConf, reader));
338345
339346 std::string lastMessageId;
340347
@@ -352,7 +359,7 @@ TEST_P(ReaderTest, testReaderOnSpecificMessageWithBatches) {
352359 // Create another reader starting on msgid4
353360 auto msgId4 = MessageId::deserialize (lastMessageId);
354361 Reader reader2;
355- ASSERT_EQ (ResultOk, client.createReader (topicName, msgId4, readerConf, reader2));
362+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , msgId4, readerConf, reader2));
356363
357364 for (int i = 5 ; i < 11 ; i++) {
358365 Message msg;
@@ -382,12 +389,12 @@ TEST_P(ReaderTest, testReaderReachEndOfTopic) {
382389 ProducerConfiguration producerConf;
383390 producerConf.setBatchingEnabled (true );
384391 producerConf.setBatchingMaxPublishDelayMs (1000 );
385- ASSERT_EQ (ResultOk, client.createProducer (topicName, producerConf, producer));
392+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( topicName) , producerConf, producer));
386393
387394 // 2. create reader, and expect hasMessageAvailable return false since no message produced.
388395 ReaderConfiguration readerConf;
389396 Reader reader;
390- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::latest (), readerConf, reader));
397+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::latest (), readerConf, reader));
391398
392399 bool hasMessageAvailable;
393400 ASSERT_EQ (ResultOk, reader.hasMessageAvailable (hasMessageAvailable));
@@ -457,12 +464,12 @@ TEST_P(ReaderTest, testReaderReachEndOfTopicMessageWithoutBatches) {
457464 Producer producer;
458465 ProducerConfiguration producerConf;
459466 producerConf.setBatchingEnabled (false );
460- ASSERT_EQ (ResultOk, client.createProducer (topicName, producerConf, producer));
467+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( topicName) , producerConf, producer));
461468
462469 // 2. create reader, and expect hasMessageAvailable return false since no message produced.
463470 ReaderConfiguration readerConf;
464471 Reader reader;
465- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::latest (), readerConf, reader));
472+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::latest (), readerConf, reader));
466473
467474 bool hasMessageAvailable;
468475 ASSERT_EQ (ResultOk, reader.hasMessageAvailable (hasMessageAvailable));
@@ -511,7 +518,7 @@ TEST(ReaderTest, testPartitionIndex) {
511518 " ReaderTestPartitionIndex-par-topic-" + std::to_string (time (nullptr ));
512519
513520 int res = makePutRequest (
514- adminUrl + " admin/v2/persistent/public/default/" + partitionedTopic + " /partitions" , " 2" );
521+ adminUrl + " admin/v2/" + (isNonPersistentTopic ? " non- " : " " ) + " persistent/public/default/" + partitionedTopic + " /partitions" , " 2" );
515522 ASSERT_TRUE (res == 204 || res == 409 ) << " res: " << res;
516523
517524 const std::string partition0 = partitionedTopic + " -partition-0" ;
@@ -520,14 +527,14 @@ TEST(ReaderTest, testPartitionIndex) {
520527 ReaderConfiguration readerConf;
521528 Reader readers[3 ];
522529 ASSERT_EQ (ResultOk,
523- client.createReader (nonPartitionedTopic, MessageId::earliest (), readerConf, readers[0 ]));
524- ASSERT_EQ (ResultOk, client.createReader (partition0, MessageId::earliest (), readerConf, readers[1 ]));
525- ASSERT_EQ (ResultOk, client.createReader (partition1, MessageId::earliest (), readerConf, readers[2 ]));
530+ client.createReader (fullTopicName ( nonPartitionedTopic) , MessageId::earliest (), readerConf, readers[0 ]));
531+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( partition0) , MessageId::earliest (), readerConf, readers[1 ]));
532+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( partition1) , MessageId::earliest (), readerConf, readers[2 ]));
526533
527534 Producer producers[3 ];
528- ASSERT_EQ (ResultOk, client.createProducer (nonPartitionedTopic, producers[0 ]));
529- ASSERT_EQ (ResultOk, client.createProducer (partition0, producers[1 ]));
530- ASSERT_EQ (ResultOk, client.createProducer (partition1, producers[2 ]));
535+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( nonPartitionedTopic) , producers[0 ]));
536+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( partition0) , producers[1 ]));
537+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( partition1) , producers[2 ]));
531538
532539 for (auto & producer : producers) {
533540 ASSERT_EQ (ResultOk, producer.send (MessageBuilder ().setContent (" hello" ).build ()));
@@ -555,7 +562,7 @@ TEST_P(ReaderTest, testSubscriptionNameSetting) {
555562 ReaderConfiguration readerConf;
556563 readerConf.setInternalSubscriptionName (subName);
557564 Reader reader;
558- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::earliest (), readerConf, reader));
565+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::earliest (), readerConf, reader));
559566
560567 ASSERT_EQ (subName, PulsarFriend::getConsumer (reader)->getSubscriptionName ());
561568
@@ -575,7 +582,7 @@ TEST_P(ReaderTest, testSetSubscriptionNameAndPrefix) {
575582 readerConf.setInternalSubscriptionName (subName);
576583 readerConf.setSubscriptionRolePrefix (" my-prefix" );
577584 Reader reader;
578- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::earliest (), readerConf, reader));
585+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::earliest (), readerConf, reader));
579586
580587 ASSERT_EQ (subName, PulsarFriend::getConsumer (reader)->getSubscriptionName ());
581588
@@ -594,13 +601,13 @@ TEST_P(ReaderTest, testMultiSameSubscriptionNameReaderShouldFail) {
594601 ReaderConfiguration readerConf1;
595602 readerConf1.setInternalSubscriptionName (subscriptionName);
596603 Reader reader1;
597- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::earliest (), readerConf1, reader1));
604+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::earliest (), readerConf1, reader1));
598605
599606 ReaderConfiguration readerConf2;
600607 readerConf2.setInternalSubscriptionName (subscriptionName);
601608 Reader reader2;
602609 ASSERT_EQ (ResultConsumerBusy,
603- client.createReader (topicName, MessageId::earliest (), readerConf2, reader2));
610+ client.createReader (fullTopicName ( topicName) , MessageId::earliest (), readerConf2, reader2));
604611
605612 reader1.close ();
606613 reader2.close ();
@@ -616,7 +623,7 @@ TEST_P(ReaderTest, testIsConnected) {
616623 Reader reader;
617624 ASSERT_FALSE (reader.isConnected ());
618625
619- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::earliest (), {}, reader));
626+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::earliest (), {}, reader));
620627 ASSERT_TRUE (reader.isConnected ());
621628
622629 ASSERT_EQ (ResultOk, reader.close ());
@@ -633,7 +640,7 @@ TEST_P(ReaderTest, testHasMessageAvailableWhenCreated) {
633640 ProducerConfiguration producerConf;
634641 producerConf.setBatchingMaxMessages (3 );
635642 Producer producer;
636- ASSERT_EQ (ResultOk, client.createProducer (topicName, producerConf, producer));
643+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( topicName) , producerConf, producer));
637644
638645 std::vector<MessageId> messageIds;
639646 constexpr int numMessages = 7 ;
@@ -657,14 +664,14 @@ TEST_P(ReaderTest, testHasMessageAvailableWhenCreated) {
657664 bool hasMessageAvailable;
658665
659666 for (size_t i = 0 ; i < messageIds.size () - 1 ; i++) {
660- ASSERT_EQ (ResultOk, client.createReader (topicName, messageIds[i], {}, reader));
667+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , messageIds[i], {}, reader));
661668 ASSERT_EQ (ResultOk, reader.hasMessageAvailable (hasMessageAvailable));
662669 EXPECT_TRUE (hasMessageAvailable);
663670 }
664671
665672 // The start message ID is exclusive by default, so when we start at the last message, there should be no
666673 // message available.
667- ASSERT_EQ (ResultOk, client.createReader (topicName, messageIds.back (), {}, reader));
674+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , messageIds.back (), {}, reader));
668675 ASSERT_EQ (ResultOk, reader.hasMessageAvailable (hasMessageAvailable));
669676 EXPECT_FALSE (hasMessageAvailable);
670677 client.close ();
@@ -678,7 +685,7 @@ TEST_P(ReaderTest, testReceiveAfterSeek) {
678685 initTopic (topicName);
679686
680687 Producer producer;
681- ASSERT_EQ (ResultOk, client.createProducer (topicName, producer));
688+ ASSERT_EQ (ResultOk, client.createProducer (fullTopicName ( topicName) , producer));
682689
683690 MessageId seekMessageId;
684691 for (int i = 0 ; i < 5 ; i++) {
@@ -690,7 +697,7 @@ TEST_P(ReaderTest, testReceiveAfterSeek) {
690697 }
691698
692699 Reader reader;
693- ASSERT_EQ (ResultOk, client.createReader (topicName, MessageId::latest (), {}, reader));
700+ ASSERT_EQ (ResultOk, client.createReader (fullTopicName ( topicName) , MessageId::latest (), {}, reader));
694701
695702 reader.seek (seekMessageId);
696703
@@ -888,5 +895,5 @@ TEST_P(ReaderSeekTest, testHasMessageAvailableAfterSeekTimestamp) {
888895 }
889896}
890897
891- INSTANTIATE_TEST_SUITE_P (Pulsar, ReaderTest, ::testing::Values(true , false ));
898+ INSTANTIATE_TEST_SUITE_P (Pulsar, ReaderTest, ::testing::Combine(::testing:: Values(true , false ), ::testing::Values( true , false ) ));
892899INSTANTIATE_TEST_SUITE_P (Pulsar, ReaderSeekTest, ::testing::Values(true , false ));
0 commit comments