Beispiel #1
0
        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>));
        }
Beispiel #2
0
        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]);
        }