public void GetMapper_MapperNotExists_ThrowsException()
        {
            // arrange
            var fakeMappers = new List <IIntegrationEventMapper>()
            {
                new FirstMapper()
            };
            IEvent fakeEvent = new SecondEvent();

            // act
            var strategy = new IntegrationEventMapperFactory(fakeMappers);

            // assert
            Assert.Throws <IntegrationEventMapperNotFoundException>(() => strategy.GetMapper <SecondIntegrationEvent>(fakeEvent));
        }
        public void GetMapper_MapperExists_ReturnsMapper()
        {
            // arrange
            var fakeMappers = new List <IIntegrationEventMapper>()
            {
                new FirstMapper(), new SecondMapper()
            };
            IEvent fakeEvent = new SecondEvent();

            // act
            var strategy = new IntegrationEventMapperFactory(fakeMappers);
            var mapper   = strategy.GetMapper <SecondIntegrationEvent>(fakeEvent);

            // assert
            Assert.That(mapper, Is.InstanceOf(typeof(SecondMapper)));
        }