@@ -50,21 +50,33 @@ public void SimpleProduceConsume(string bootstrapServers)
5050
5151 string testString1 = "hello world" ;
5252 string testString2 = null ;
53+ string testString3 = "dlrow olleh" ;
54+ string testString4 = null ;
5355
5456 DeliveryResult < Null , string > produceResult1 ;
5557 DeliveryResult < Null , string > produceResult2 ;
58+ DeliveryResult < Null , Memory < byte > ? > produceResult3 ;
59+ DeliveryResult < Null , Memory < byte > ? > produceResult4 ;
5660 using ( var producer = new TestProducerBuilder < Null , string > ( producerConfig ) . Build ( ) )
5761 {
5862 produceResult1 = ProduceMessage ( singlePartitionTopic , producer , testString1 ) ;
5963 produceResult2 = ProduceMessage ( singlePartitionTopic , producer , testString2 ) ;
6064 }
6165
66+ using ( var producer = new TestProducerBuilder < Null , Memory < byte > ? > ( producerConfig ) . Build ( ) )
67+ {
68+ produceResult3 = ProduceMessage ( singlePartitionTopic , producer , testString3 ) ;
69+ produceResult4 = ProduceMessage ( singlePartitionTopic , producer , testString4 ) ;
70+ }
71+
6272 using ( var consumer = new TestConsumerBuilder < byte [ ] , byte [ ] > ( consumerConfig ) . Build ( ) )
6373 {
6474 ConsumeMessage ( consumer , produceResult1 , testString1 ) ;
6575 ConsumeMessage ( consumer , produceResult2 , testString2 ) ;
76+ ConsumeMessage ( consumer , produceResult3 , testString3 ) ;
77+ ConsumeMessage ( consumer , produceResult4 , testString4 ) ;
6678 }
67-
79+
6880 Assert . Equal ( 0 , Library . HandleCount ) ;
6981 LogToFile ( "end SimpleProduceConsume" ) ;
7082 }
@@ -80,6 +92,17 @@ private static void ConsumeMessage(IConsumer<byte[], byte[]> consumer, DeliveryR
8092 Assert . Equal ( r . Message . Timestamp . UnixTimestampMs , dr . Message . Timestamp . UnixTimestampMs ) ;
8193 }
8294
95+ private static void ConsumeMessage ( IConsumer < byte [ ] , byte [ ] > consumer , DeliveryResult < Null , Memory < byte > ? > dr , string testString )
96+ {
97+ consumer . Assign ( new List < TopicPartitionOffset > { dr . TopicPartitionOffset } ) ;
98+ var r = consumer . Consume ( TimeSpan . FromSeconds ( 10 ) ) ;
99+ Assert . NotNull ( r ? . Message ) ;
100+ Assert . Equal ( testString , r . Message . Value == null ? null : Encoding . UTF8 . GetString ( r . Message . Value ) ) ;
101+ Assert . Null ( r . Message . Key ) ;
102+ Assert . Equal ( r . Message . Timestamp . Type , dr . Message . Timestamp . Type ) ;
103+ Assert . Equal ( r . Message . Timestamp . UnixTimestampMs , dr . Message . Timestamp . UnixTimestampMs ) ;
104+ }
105+
83106 private static DeliveryResult < Null , string > ProduceMessage ( string topic , IProducer < Null , string > producer , string testString )
84107 {
85108 var result = producer . ProduceAsync ( topic , new Message < Null , string > { Value = testString } ) . Result ;
@@ -91,5 +114,20 @@ private static DeliveryResult<Null, string> ProduceMessage(string topic, IProduc
91114 Assert . Equal ( 0 , producer . Flush ( TimeSpan . FromSeconds ( 10 ) ) ) ;
92115 return result ;
93116 }
117+
118+ private static DeliveryResult < Null , Memory < byte > ? > ProduceMessage ( string topic , IProducer < Null , Memory < byte > ? > producer , string testString )
119+ {
120+ var result = producer . ProduceAsync ( topic , new Message < Null , Memory < byte > ? >
121+ {
122+ Value = testString == null ? null : Encoding . UTF8 . GetBytes ( testString ) ,
123+ } ) . Result ;
124+ Assert . NotNull ( result ? . Message ) ;
125+ Assert . Equal ( topic , result . Topic ) ;
126+ Assert . NotEqual < long > ( result . Offset , Offset . Unset ) ;
127+ Assert . Equal ( TimestampType . CreateTime , result . Message . Timestamp . Type ) ;
128+ Assert . True ( Math . Abs ( ( DateTime . UtcNow - result . Message . Timestamp . UtcDateTime ) . TotalMinutes ) < 1.0 ) ;
129+ Assert . Equal ( 0 , producer . Flush ( TimeSpan . FromSeconds ( 10 ) ) ) ;
130+ return result ;
131+ }
94132 }
95133}
0 commit comments