public void PaymentProcessCheapGateWay(PaymentDto paymentDto, PaymentState paymentState, PaymentStateEnum state) { //arrange _cheapPaymentGateway.Setup(x => x.PaymentProcessCheap(paymentDto)).Returns(state); //act var paymentStateResult = _paymentGateWay.PaymentProcess(paymentDto, paymentState); //assert _cheapPaymentGateway.Verify(x => x.PaymentProcessCheap(paymentDto), Times.Once()); Assert.AreEqual(paymentStateResult.State, state.ToString()); }
public async Task <Payment> AddPayment(PaymentDto payment) { try { var paymentEntity = _mapper.Map <PaymentDto, Payment>(payment); paymentEntity = _paymentRepository.AddAsync(paymentEntity).Result; PaymentState paymentStateData = new PaymentState() { Payment = paymentEntity, PaymentId = paymentEntity.PaymentId, CreatedDate = DateTime.Now, State = PaymentStateEnum.Pending.ToString() }; var paymentState = await _paymentStateRepository.AddAsync(paymentStateData); _UOW.Complete(); _paymentGateway.PaymentProcess(payment, paymentState); return(paymentEntity); } catch (Exception) { throw new Exception("This payment can not be processed"); } }