public void MessageHandlerResolverReturnsMessageHandlerInstanceForCustomSubscriptionFilterMessageProperties() { var subscriptionFilter = new SubscriptionFilter { MessageProperties = new Dictionary <string, string> { { "MessageType", "AL" } } }; subscriptionFilter.Build(new(), typeof(AircraftLanded)); var services = new ServiceCollection(); var sut = new MessageHandlerResolver(services); sut.SubcribeToMessage <AircraftLanded, AircraftLandedHandler>(subscriptionFilter); sut.Initialize(); var handler = sut.Resolve("AL"); Assert.NotNull(handler); Assert.IsType <AircraftLandedHandler>(handler); var messageContext = new MessageContext <AircraftLanded>(new BinaryData("Hello world!"), new object(), new Mock <IMessageBus>().Object); typeof(AircraftLandedHandler).GetMethod("HandleAsync").Invoke(handler, new object[] { messageContext }); }
public void MessageHandlerResolverReturnsMessageHandlerInstanceForGivenMessageType() { var services = new ServiceCollection(); var sut = new MessageHandlerResolver(services); sut.SubcribeToMessage <AircraftTakenOff, AircraftTakenOffHandler>(BuildSubscriptionFilter <AircraftTakenOff>()); sut.SubcribeToMessage <AircraftLanded, AircraftLandedHandler>(BuildSubscriptionFilter <AircraftLanded>()); sut.Initialize(); var handler = sut.Resolve(nameof(AircraftLanded)); Assert.NotNull(handler); Assert.IsType <AircraftLandedHandler>(handler); var messageContext = new MessageContext <AircraftLanded>(new BinaryData("Hello world!"), new object(), new Mock <IMessageBus>().Object); typeof(AircraftLandedHandler).GetMethod("HandleAsync").Invoke(handler, new object[] { messageContext }); }