public void MapFrom_ShouldUseResolverDependencies_WhenMapIsCalled()
        {
            const int expectedID    = 2;
            string    expectedValue = "Shipping";

            var container = new WindsorIoCContainer();

            var databaseMock        = new Mock <IDatabase>();
            var databaseFactoryMock = new Mock <IDatabaseFactory>();
            var cacheMock           = new Mock <ICache>();
            var cacheFactoryMock    = new Mock <ICacheFactory>();

            databaseMock
            .Setup(mock => mock.Execute(It.IsAny <string>(), null))
            .Returns(GetMockData(expectedID, expectedValue));

            databaseFactoryMock
            .Setup(mock => mock.Create(It.IsAny <string>()))
            .Returns(databaseMock.Object);

            cacheFactoryMock
            .Setup(mock => mock.Create(null))
            .Returns(cacheMock.Object);

            var iocContainerSettings = new IoCContainerSettings
            {
                RegistrationLifetime   = RegistrationLifetime.Transient,
                RegistrationName       = nameof(LookupDataValueToKeyDatabaseResolver <int>),
                RegistrationNameFormat = "{0}"
            };

            container.Settings = iocContainerSettings;

            container.Register(new LookupDataValueToKeyDatabaseResolver <int>(databaseFactoryMock.Object, cacheFactoryMock.Object));

            Mapper.Initialize(cfg => {
                var addressToDomainMap = new AddressToDomainMap(cfg);
                addressToDomainMap.Configure();

                cfg.AddProfile(addressToDomainMap);
                cfg.ConstructServicesUsing(container.Resolve);
            });

            var input = new AddressDTO
            {
                AddressType = expectedValue
            };

            Address output = Mapper.Map <AddressDTO, Address>(input);

            Assert.NotNull(output);
            Assert.NotNull(output.AddressType);
            Assert.Equal(expectedID, output.AddressType.Id);
            Assert.Equal(expectedValue, output.AddressType.Name);

            Output(output);
        }
示例#2
0
 private static void SetupIoC()
 {
     var container = new WindsorIoCContainer(new WindsorContainer().Configure());
     var resolver = new WindsorDependencyResolver(container);
     DependencyResolver.SetResolver(resolver);
 }