public void BaseEventHandler_AlsoHandlesDerivedMessage() { var handlerMappings = new[] { new MessageTypeMapping(typeof(Eventv1), typeof(BaseEventHandler)) }; var allTypes = Assembly.GetExecutingAssembly().GetTypes(); var messageTypes = AssemblyScanner.AddDerivedTypeMappings(handlerMappings, allTypes).Select(m => m.MessageType).ToArray(); Assert.Equal(2, messageTypes.Length); Assert.Contains(typeof(Eventv1), messageTypes); Assert.Contains(typeof(Eventv2), messageTypes); }
public void When_SeparateHandlerForDerivedAndBaseMessage_NoNewMappingsAdded() { var handlerMappings = new[] { new MessageTypeMapping(typeof(Eventv1), typeof(BaseEventHandler)), new MessageTypeMapping(typeof(Eventv2), typeof(DerivedEventHandler)), }; var allTypes = Assembly.GetExecutingAssembly().GetTypes(); var combinedHandlerMappings = AssemblyScanner.AddDerivedTypeMappings(handlerMappings, allTypes).ToArray(); Assert.Equal(handlerMappings.Length, combinedHandlerMappings.Length); Assert.Contains(combinedHandlerMappings, mapping => handlerMappings[0].MessageType == mapping.MessageType && handlerMappings[0].HandlerType == mapping.HandlerType); Assert.Contains(combinedHandlerMappings, mapping => handlerMappings[1].MessageType == mapping.MessageType && handlerMappings[1].HandlerType == mapping.HandlerType); }