예제 #1
0
 public StoreControllerTests()
 {
     _storeItemRepository    = A.Fake <IStoreItemRepository>();
     _warehouseService       = A.Fake <IWarehouseService>();
     _shoppingCardRepository = A.Fake <IShoppingCardRepository>();
     _userCreditService      = A.Fake <IUserCreditService>();
     _paymentService         = A.Fake <IPaymentService>();
 }
예제 #2
0
 public UserService(
     IDateTimeProvider dateTimeProvider,
     IUserCreditService userCreditService,
     IUserRepository userRepository)
 {
     this.userRepository             = userRepository;
     this.userValidator              = new UserValidator(dateTimeProvider);
     this.creditLimitProviderFactory = new CreditLimitProviderFactory(userCreditService);
 }
예제 #3
0
 public StoreController(IStoreItemRepository storeItemRepository, IWarehouseService warehouseService,
                        IShoppingCardRepository shoppingCardRepository, IUserCreditService userCreditService, IPaymentService paymentService)
 {
     _storeItemRepository    = storeItemRepository;
     _warehouseService       = warehouseService;
     _shoppingCardRepository = shoppingCardRepository;
     _userCreditService      = userCreditService;
     _paymentService         = paymentService;
 }
예제 #4
0
 public UserService(
     IDateTimeProvider dateTimeProvider,
     IClientRepository clientRepository,
     IUserCreditService userCreditService,
     IUserDataAccess userDataAccess)
 {
     _dateTimeProvider  = dateTimeProvider;
     _clientRepository  = clientRepository;
     _userCreditService = userCreditService;
     _userDataAccess    = userDataAccess;
 }
예제 #5
0
        public CreditLimitProviderFactory(IUserCreditService userCreditService)
        {
            var creditLimitProviderType = typeof(ICreditLimitProvider);

            _creditLimitProviders = creditLimitProviderType.Assembly.ExportedTypes
                                    .Where(x => creditLimitProviderType.IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)
                                    .Select(x =>
            {
                var parameterlessCtor = x.GetConstructors().SingleOrDefault(c => c.GetParameters().Length == 0);
                return(parameterlessCtor is not null
                        ? Activator.CreateInstance(x)
                        : Activator.CreateInstance(x, userCreditService));
            })
                                    .Cast <ICreditLimitProvider>()
                                    .ToImmutableDictionary(x => x.NameRequirement, x => x);
        }
예제 #6
0
 public DefaultCreditLimitProvider(IUserCreditService userCreditService)
 {
     this.userCreditService = userCreditService;
 }
예제 #7
0
 public UserController(IUserService userManager, IUserCreditService creditManager)
 {
     _userManager   = userManager;
     _creditManager = creditManager;
 }
예제 #8
0
 public ImportantClientCreditLimitProvider(IUserCreditService userCreditService)
 {
     _userCreditService = userCreditService;
 }