public void SingleDispatch_GetBindingData_Should_Create_Data_From_Kafka_Event() { var kafkaEventData = new KafkaEventData <string, string>() { Key = "1", Offset = 100, Partition = 2, Timestamp = new DateTime(2019, 1, 10, 9, 21, 0, DateTimeKind.Utc), Topic = "myTopic", Value = "Nothing", }; var strategy = new KafkaTriggerBindingStrategy <string, string>(); var binding = strategy.GetBindingData(KafkaTriggerInput.New(kafkaEventData)); Assert.Equal("1", binding["Key"]); Assert.Equal(100L, binding["Offset"]); Assert.Equal(2, binding["Partition"]); Assert.Equal(new DateTime(2019, 1, 10, 9, 21, 0, DateTimeKind.Utc), binding["Timestamp"]); Assert.Equal("myTopic", binding["Topic"]); // lower case too Assert.Equal("1", binding["key"]); Assert.Equal(100L, binding["offset"]); Assert.Equal(2, binding["partition"]); Assert.Equal(new DateTime(2019, 1, 10, 9, 21, 0, DateTimeKind.Utc), binding["timestamp"]); Assert.Equal("myTopic", binding["topic"]); }
public void GetBindingContract_SingleDispatch_ReturnsExpectedValue() { var strategy = new KafkaTriggerBindingStrategy <string, string>(); var contract = strategy.GetBindingContract(true); Assert.Equal(5, contract.Count); Assert.Equal(typeof(object), contract["Key"]); Assert.Equal(typeof(int), contract["Partition"]); Assert.Equal(typeof(string), contract["Topic"]); Assert.Equal(typeof(DateTime), contract["Timestamp"]); Assert.Equal(typeof(long), contract["Offset"]); }
public void MultiDispatch_GetBindingData_Should_Create_Data_From_Kafka_Event() { var triggerInput = KafkaTriggerInput.New(new[] { new KafkaEventData <string, string>() { Key = "1", Offset = 100, Partition = 2, Timestamp = new DateTime(2019, 1, 10, 9, 21, 0, DateTimeKind.Utc), Topic = "myTopic", Value = "Nothing1", }, new KafkaEventData <string, string>() { Key = "2", Offset = 101, Partition = 2, Timestamp = new DateTime(2019, 1, 10, 9, 21, 1, DateTimeKind.Utc), Topic = "myTopic", Value = "Nothing2", }, }); var strategy = new KafkaTriggerBindingStrategy <string, string>(); var binding = strategy.GetBindingData(triggerInput); Assert.Equal(new[] { "1", "2" }, binding["KeyArray"]); Assert.Equal(new[] { 100L, 101L }, binding["OffsetArray"]); Assert.Equal(new[] { 2, 2 }, binding["PartitionArray"]); Assert.Equal(new[] { new DateTime(2019, 1, 10, 9, 21, 0, DateTimeKind.Utc), new DateTime(2019, 1, 10, 9, 21, 1, DateTimeKind.Utc) }, binding["TimestampArray"]); Assert.Equal(new[] { "myTopic", "myTopic" }, binding["TopicArray"]); // lower case too Assert.Equal(new[] { "1", "2" }, binding["keyArray"]); Assert.Equal(new[] { 100L, 101L }, binding["offsetArray"]); Assert.Equal(new[] { 2, 2 }, binding["partitionArray"]); Assert.Equal(new[] { new DateTime(2019, 1, 10, 9, 21, 0, DateTimeKind.Utc), new DateTime(2019, 1, 10, 9, 21, 1, DateTimeKind.Utc) }, binding["timestampArray"]); Assert.Equal(new[] { "myTopic", "myTopic" }, binding["topicArray"]); }