public CommerceMembersServiceImplUnitTests() { _repositoryMock = new Mock <ICustomerRepository>(); _mockUnitOfWork = new Mock <IUnitOfWork>(); _eventPublisherMock = new Mock <IEventPublisher>(); _dynamicPropertyServiceMock = new Mock <IDynamicPropertyService>(); _repositoryMock.Setup(ss => ss.UnitOfWork).Returns(_mockUnitOfWork.Object); _repositoryFactory = () => _repositoryMock.Object; _platformMemoryCacheMock = new Mock <IPlatformMemoryCache>(); _сacheEntryMock = new Mock <ICacheEntry>(); _userSearchMock = new Mock <IUserSearchService>(); _сacheEntryMock.SetupGet(c => c.ExpirationTokens).Returns(new List <IChangeToken>()); _commerceMembersServiceImpl = new CommerceMembersServiceImpl(_repositoryFactory, _eventPublisherMock.Object, _dynamicPropertyServiceMock.Object, _platformMemoryCacheMock.Object, _userSearchMock.Object); AbstractTypeFactory <Member> .RegisterType <Organization>().MapToType <OrganizationEntity>(); AbstractTypeFactory <Member> .RegisterType <Contact>().MapToType <ContactEntity>(); AbstractTypeFactory <Member> .RegisterType <Vendor>().MapToType <VendorEntity>(); AbstractTypeFactory <Member> .RegisterType <Employee>().MapToType <EmployeeEntity>(); AbstractTypeFactory <MemberEntity> .RegisterType <ContactEntity>(); AbstractTypeFactory <MemberEntity> .RegisterType <OrganizationEntity>(); AbstractTypeFactory <MemberEntity> .RegisterType <VendorEntity>(); AbstractTypeFactory <MemberEntity> .RegisterType <EmployeeEntity>(); }
public override void PostInitialize() { var memberServiceDecorator = _container.Resolve <MemberServiceDecorator>(); Func <CustomerRepositoryImpl> customerRepositoryFactory = () => new CustomerRepositoryImpl(_connectionStringName, new EntityPrimaryKeyGeneratorInterceptor(), _container.Resolve <AuditableInterceptor>()); var commerceMembersService = new CommerceMembersServiceImpl(customerRepositoryFactory, _container.Resolve <IDynamicPropertyService>(), _container.Resolve <ISecurityService>(), memberServiceDecorator, _container.Resolve <IEventPublisher <MemberChangingEvent> >()); memberServiceDecorator.RegisterMemberTypes(typeof(Organization), typeof(Contact), typeof(Vendor), typeof(Employee)) .WithService(commerceMembersService) .WithSearchService(commerceMembersService); //Next lines allow to use polymorph types in API controller methods var formatters = GlobalConfiguration.Configuration.Formatters; formatters.JsonFormatter.SerializerSettings.Converters.Add(new PolymorphicMemberJsonConverter(memberServiceDecorator)); base.PostInitialize(); }