public void WhenResolvingUnknownMessageTypes_ShouldReturnDefaultHandler()
        {
            var dependencies = MockDependencyResolver
                .Create()
                .Register<IPoisonMessageHandler>(null);

            var resolver = new MessageHandlerResolver(new[] { typeof(TestMessageHandler) }, dependencies);
            var headers = new Dictionary<string, string> { { EventDataPropertyKeys.MessageType, UnknownMessageType } };
            var handler = resolver.GetHandler(headers, "test-message-0");

            Assert.IsType<UnknownTypeMessageHandler>(handler);
        }
        public void WhenResolving_ShouldUseTypeFromMessageHeaders()
        {
            var dependencies = MockDependencyResolver
                .Create()
                .Register<IPoisonMessageHandler>(null);

            var resolver = new MessageHandlerResolver(new[] { typeof(TestMessageHandler) }, dependencies);
            var headers = new Dictionary<string, string>
                              {
                                  { EventDataPropertyKeys.MessageType, RegisteredMessageType },
                                  { EventDataPropertyKeys.MessageTypeVersion, "1" }
                              };
            var handler = resolver.GetHandler(headers, "test-message-0");

            Assert.NotNull(handler);
            Assert.IsType<TestMessageHandler>(handler);
            Assert.Equal("TestMessageHandler", handler.Name);
        }