public CustomerRegistrationTests() { var mapper = AutomapperConfiguration.Init(); _customerRepository = Substitute.For <ICustomerRepository>(); _creditCardGateway = Substitute.For <ICreditCardGateway>(); _mailConfirmer = Substitute.For <IMailConfirmer>(); // Default objects ('stubs') var customer = Mocks.GetCustomer(); _vm = Mocks.GetCreateCustomerViewModel(); _creditCardGatewayResponse = Mocks.GetCreditCardGatewayResponse(); // Default system under test ('sut') _sut = new CustomerRegistration(mapper, _customerRepository, _mailConfirmer, _creditCardGateway); // Default Behaviour _customerRepository.Create(Arg.Any <Customer>()).Returns(customer); _customerRepository.CreateRop(Arg.Any <Customer>()).Returns(Result.Ok(customer)); _customerRepository.UpgradeToPremium(Arg.Any <Customer>()).Returns(Result.Ok(customer)); _creditCardGateway.Charge(Arg.Any <string>()).Returns(_creditCardGatewayResponse); _creditCardGateway.ChargeRop(Arg.Any <string>()).Returns(Result.Ok(_creditCardGatewayResponse)); _creditCardGateway.RollBackLastTransactionRop(Arg.Any <Customer>()).Returns(Result.Ok(customer)); _mailConfirmer.SendWelcomeRop(Arg.Any <Customer>()).Returns(Result.Ok(customer)); }
public CustomerRegistration(IMapper mapper, ICustomerRepository customerRepository, IMailConfirmer mailConfirmer, ICreditCardGateway creditCardGateway) { _mapper = mapper; _customerRepository = customerRepository; _mailConfirmer = mailConfirmer; _creditCardGateway = creditCardGateway; }