public async Task When_Value_Type_Is_Protobuf_Should_Create_Protobuf_Listener(string functionName, Type expectedKeyType) { var attribute = new KafkaTriggerAttribute("brokers:9092", "myTopic") { }; var executor = new Mock <ITriggeredFunctionExecutor>(); var listenerConfig = new KafkaListenerConfiguration() { BrokerList = attribute.BrokerList, Topic = attribute.Topic, ConsumerGroup = "group1", }; var config = this.emptyConfiguration; var bindingProvider = new KafkaTriggerAttributeBindingProvider( config, Options.Create(new KafkaOptions()), new KafkaEventDataConvertManager(NullLogger.Instance), new DefaultNameResolver(config), NullLoggerFactory.Instance); var parameterInfo = new TriggerBindingProviderContext(this.GetParameterInfo(functionName), default); var triggerBinding = await bindingProvider.TryCreateAsync(parameterInfo); var listener = await triggerBinding.CreateListenerAsync(new ListenerFactoryContext(new FunctionDescriptor(), new Mock <ITriggeredFunctionExecutor>().Object, default)); Assert.NotNull(listener); AssertIsCorrectKafkaListener(listener, expectedKeyType, typeof(ProtoUser), typeof(ProtobufDeserializer <ProtoUser>)); }
public async Task When_Value_Is_KafkaEventData_With_Key_Should_Create_Listener_With_Key(string functionName, Type keyType, Type valueType) { var attribute = new KafkaTriggerAttribute("brokers:9092", "myTopic") { }; var executor = new Mock <ITriggeredFunctionExecutor>(); var listenerConfig = new KafkaListenerConfiguration() { BrokerList = attribute.BrokerList, Topic = attribute.Topic, ConsumerGroup = "group1", }; var config = this.emptyConfiguration; var bindingProvider = new KafkaTriggerAttributeBindingProvider( config, Options.Create(new KafkaOptions()), new KafkaEventDataConvertManager(NullLogger.Instance), new DefaultNameResolver(config), NullLoggerFactory.Instance); var parameterInfo = new TriggerBindingProviderContext(this.GetParameterInfo(functionName), default); var triggerBinding = await bindingProvider.TryCreateAsync(parameterInfo); var listener = await triggerBinding.CreateListenerAsync(new ListenerFactoryContext(new FunctionDescriptor(), new Mock <ITriggeredFunctionExecutor>().Object, default)); Assert.NotNull(listener); Assert.True(listener.GetType().IsGenericType); var genericTypes = listener.GetType().GetGenericArguments(); Assert.Equal(keyType, genericTypes[0]); Assert.Equal(valueType, genericTypes[1]); }