borlandor commented on issue #5057: Can't publish messages with schema on 
Pulsar C++ client
URL: https://github.com/apache/pulsar/issues/5057#issuecomment-525271397
 
 
   C++ Test cases have no test of "producer.send" or "consumer.receive"
   SchemaTest.cc
   --------------------------------------------------------------------
   static std::string lookupUrl = "pulsar://localhost:6650";
   static const std::string exampleSchema =
       "{\"type\":\"record\",\"name\":\"Example\",\"namespace\":\"test\","
       
"\"fields\":[{\"name\":\"a\",\"type\":\"int\"},{\"name\":\"b\",\"type\":\"int\"}]}";
   
   TEST(SchemaTest, testSchema) {
       ClientConfiguration config;
       Client client(lookupUrl);
       Result res;
   
       Producer producer;
       ProducerConfiguration producerConf;
       producerConf.setSchema(SchemaInfo(AVRO, "Avro", exampleSchema));
       res = client.createProducer("topic-avro", producerConf, producer);
       producer.close();
   
       ASSERT_EQ(ResultOk, res);
   
       // Creating producer with no schema on same topic should fail
       producerConf.setSchema(SchemaInfo(JSON, "Json", "{}"));
       res = client.createProducer("topic-avro", producerConf, producer);
       ASSERT_EQ(ResultIncompatibleSchema, res);
   
       // Creating producer with no schema on same topic should succeed
       // because standalone broker is configured by default to not
       // require the schema to be set
       res = client.createProducer("topic-avro", producer);
       ASSERT_EQ(ResultOk, res);
   
       ConsumerConfiguration consumerConf;
       Consumer consumer;
       // Subscribing with no schema will still succeed
       res = client.subscribe("topic-avro", "sub-1", consumerConf, consumer);
       ASSERT_EQ(ResultOk, res);
   
       // Subscribing with same Avro schema will succeed
       consumerConf.setSchema(SchemaInfo(AVRO, "Avro", exampleSchema));
       res = client.subscribe("topic-avro", "sub-2", consumerConf, consumer);
       ASSERT_EQ(ResultOk, res);
   
       // Subscribing with different schema type will fail
       consumerConf.setSchema(SchemaInfo(JSON, "Json", "{}"));
       res = client.subscribe("topic-avro", "sub-2", consumerConf, consumer);
       ASSERT_EQ(ResultIncompatibleSchema, res);
   }

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to