@@ -20,53 +20,59 @@ TEST(KafkaRecoverableProducer, SendMessages)
2020
2121    KafkaTestUtility::CreateKafkaTopic (topic, 5 , 3 );
2222
23-     //  Properties for the producer
24-     const  auto  props = KafkaTestUtility::GetKafkaClientCommonConfig ().put (kafka::clients::producer::Config::ACKS, " all" 
25- 
26-     //  Recoverable producer
27-     kafka::clients::KafkaRecoverableProducer producer (props);
28- 
29-     //  Send messages
30-     kafka::clients::producer::ProducerRecord::Id id = 0 ;
31-     for  (const  auto & msg: messages)
3223    {
33-         auto  record = kafka::clients::producer::ProducerRecord (topic, partition,
34-                                                                kafka::Key (msg.first .c_str (), msg.first .size ()),
35-                                                                kafka::Value (msg.second .c_str (), msg.second .size ()),
36-                                                                id++);
37-         std::cout << " [" kafka::utility::getCurrentTime () << " ] ProducerRecord: " toString () << std::endl;
24+         //  Properties for the producer
25+         const  auto  props = KafkaTestUtility::GetKafkaClientCommonConfig ().put (kafka::clients::producer::Config::ACKS, " all" 
3826
39-         //  sync-send
40-         {
41-             auto  metadata = producer.syncSend (record);
42-             std::cout << " [" kafka::utility::getCurrentTime () << " ] Message sync-sent. Metadata: " toString () << std::endl;
43-         }
27+         //  Recoverable producer
28+         kafka::clients::KafkaRecoverableProducer producer (props);
4429
45-         //  async-send
30+         //  Send messages
31+         kafka::clients::producer::ProducerRecord::Id id = 0 ;
32+         for  (const  auto & msg: messages)
4633        {
47-             producer.send (record,
48-                           [] (const  kafka::clients::producer::RecordMetadata& metadata, const  kafka::Error& error) {
49-                                 EXPECT_FALSE (error);
50-                                 std::cout << " [" kafka::utility::getCurrentTime () << " ] Message async-sent. Metadata: " toString () << std::endl;
51-                           });
52-         }
53-     }
34+             auto  record = kafka::clients::producer::ProducerRecord (topic, partition,
35+                                                                    kafka::Key (msg.first .c_str (), msg.first .size ()),
36+                                                                    kafka::Value (msg.second .c_str (), msg.second .size ()),
37+                                                                    id++);
38+             std::cout << " [" kafka::utility::getCurrentTime () << " ] ProducerRecord: " toString () << std::endl;
5439
55-     //  Prepare a consumer 
56-     const   auto  consumerProps =  KafkaTestUtility::GetKafkaClientCommonConfig (). put (kafka::clients::consumer::Config::AUTO_OFFSET_RESET,  " earliest " ); 
57-     kafka::clients::KafkaConsumer  consumer (consumerProps );
58-     consumer. setLogLevel (kafka::Log::Level::Crit) ;
59-     consumer. subscribe ({topic}); 
40+              //  sync-send 
41+             { 
42+                  auto  metadata = producer. syncSend (record );
43+                 std::cout <<  " [ "  << kafka::utility::getCurrentTime () <<  " ] Message sync-sent. Metadata:  "  << metadata. toString () << std::endl ;
44+             } 
6045
61-     //  Poll these messages
62-     auto  records = KafkaTestUtility::ConsumeMessagesUntilTimeout (consumer);
46+             //  async-send
47+             {
48+                 producer.send (record,
49+                               [] (const  kafka::clients::producer::RecordMetadata& metadata, const  kafka::Error& error) {
50+                                     EXPECT_FALSE (error);
51+                                     std::cout << " [" kafka::utility::getCurrentTime () << " ] Message async-sent. Metadata: " toString () << std::endl;
52+                               });
53+             }
54+         }
55+ 
56+         producer.close ();
57+     }
6358
64-     //  Check the messages
65-     EXPECT_EQ (messages.size () * 2 , records.size ());
66-     for  (std::size_t  i = 0 ; i < records.size (); ++i)
6759    {
68-         EXPECT_EQ (messages[i/2 ].first ,  std::string (static_cast <const  char *>(records[i].key ().data ()), records[i].key ().size ()));
69-         EXPECT_EQ (messages[i/2 ].second , std::string (static_cast <const  char *>(records[i].value ().data ()), records[i].value ().size ()));
60+         //  Prepare a consumer
61+         const  auto  consumerProps = KafkaTestUtility::GetKafkaClientCommonConfig ().put (kafka::clients::consumer::Config::AUTO_OFFSET_RESET, " earliest" 
62+         kafka::clients::KafkaConsumer consumer (consumerProps);
63+         consumer.setLogLevel (kafka::Log::Level::Crit);
64+         consumer.subscribe ({topic});
65+ 
66+         //  Poll these messages
67+         auto  records = KafkaTestUtility::ConsumeMessagesUntilTimeout (consumer);
68+ 
69+         //  Check the messages
70+         EXPECT_EQ (messages.size () * 2 , records.size ());
71+         for  (std::size_t  i = 0 ; i < records.size (); ++i)
72+         {
73+             EXPECT_EQ (messages[i/2 ].first ,  std::string (static_cast <const  char *>(records[i].key ().data ()), records[i].key ().size ()));
74+             EXPECT_EQ (messages[i/2 ].second , std::string (static_cast <const  char *>(records[i].value ().data ()), records[i].value ().size ()));
75+         }
7076    }
7177}
7278
0 commit comments