public PaymentBusinessTest() { _logger = Substitute.For <ILoggerManager>(); _unitOfWork = Substitute.For <IUnitOfWork>(); _mapper = Substitute.For <IMapper>(); _cheapPaymentGateway = Substitute.For <ICheapPaymentGateway>(); _expensivePaymentGateway = Substitute.For <IExpensivePaymentGateway>(); _premiumPaymentGateway = Substitute.For <IPremiumPaymentGateway>(); _serviceAccessor = Substitute.For <Register.ServiceResolver>(); _serviceAccessor.Invoke(Constants.CHEAP).Returns(_cheapPaymentGateway); _serviceAccessor.Invoke(Constants.EXPENSIVE).Returns(_expensivePaymentGateway); _serviceAccessor.Invoke(Constants.PREMIUM).Returns(_premiumPaymentGateway); _mapper.Map <PaymentEntities.Entities.Payment>(Arg.Any <PaymentRequestModel>()).Returns(GetPayment()); _paymentBusiness = new PaymentBusiness.Payment.PaymentBusiness(_logger, _unitOfWork, _mapper, _serviceAccessor); }