public void Fail_No_Owner() { var request = new GetPaymentDetailsRequest(); var validator = new GetPaymentDetailsValidator(); var failures = validator.ShouldHaveValidationErrorFor(r => r.Owner, request); Assert.AreEqual(1, failures.Count()); Assert.AreEqual("Owner required", failures.First().ErrorMessage); }
public void Pass_Has_Payment_Id() { var request = new GetPaymentDetailsRequest { PaymentId = 1 }; var validator = new GetPaymentDetailsValidator(); validator.ShouldNotHaveValidationErrorFor(r => r.PaymentId, request); }
public void Pass_Has_Owner() { var request = new GetPaymentDetailsRequest { Owner = "owner" }; var validator = new GetPaymentDetailsValidator(); validator.ShouldNotHaveValidationErrorFor(r => r.Owner, request); }
public async Task <List <PaymentDetailDto> > Handle(GetPaymentDetailsRequest request, CancellationToken cancellationToken) { var person = await _splitThatBillContext.People .Include(i => i.PaymentDetails) .FirstOrDefaultAsync(p => p.Id == request.PersonId); if (null == person) { throw new NullReferenceException("The person does not exist"); } var personToReturn = _mapper.Map <PersonDto>(person); return(personToReturn.PaymentDetails); }
public async Task Returns_Error_Response_If_No_Data_Found_For_Id() { var request = new GetPaymentDetailsRequest { PaymentId = 1 }; using var context = Setup.CreateContext(); var handler = new GetPaymentDetailsHandler(_logger, context); var result = (await handler.Handle(request, CancellationToken.None)).ErrorOrDefault; Assert.AreEqual(HttpStatusCode.NotFound, result.StatusCode); }
// Mock Get Payment Details public override Task <GetPaymentDetailsReply> GetPaymentDetails(GetPaymentDetailsRequest request, ServerCallContext context) { var trackingId = Guid.NewGuid().ToString(); _logger.LogInformation("---------------------------------------"); _logger.LogInformation($"Get Payment Details {trackingId}"); _logger.LogInformation("---------------------------------------"); return(Task.FromResult(new GetPaymentDetailsReply { TrackingId = trackingId, PaymentMethod = "VISA", Reference = Guid.NewGuid().ToString(), PaymentStatus = "COMPLETED" })); }
public async Task Returns_Details_In_DTO() { const int PAYMENT_ID = 1; const string CARD_NUMBER = "1234"; const string CVV = "123"; const string CURRENCY = "GBP"; const decimal AMOUNT = .1m; const string PAYMENT_RESULT = "Success"; const string OWNER = "owner"; var EXPIRY = new DateTime(2021, 01, 01); var request = new GetPaymentDetailsRequest { PaymentId = PAYMENT_ID, Owner = OWNER }; using var context = Setup.CreateContext(); context.ProcessedPayments.Add(new ProcessedPayment { Id = PAYMENT_ID, CardNumber = CARD_NUMBER, Expiry = EXPIRY, Currency = CURRENCY, Amount = AMOUNT, CVV = CVV, PaymentResult = PAYMENT_RESULT, Owner = OWNER }); context.SaveChanges(); var handler = new GetPaymentDetailsHandler(_logger, context); var result = (await handler.Handle(request, CancellationToken.None)).SuccessOrDefault; Assert.AreEqual(PAYMENT_RESULT, result.PaymentResult); Assert.AreEqual(CARD_NUMBER, result.CardNumber); Assert.AreEqual(CVV, result.CVV); Assert.AreEqual(CURRENCY, result.Currency); Assert.AreEqual(AMOUNT, result.Amount); Assert.AreEqual(EXPIRY.Year, result.Expiry.Year); Assert.AreEqual(EXPIRY.Month, result.Expiry.Month); }
public async Task <IActionResult> GetPaymentDetails([FromBody] GetPaymentDetailsRequest paymentDetailsRequest) { _logger.LogInformation($"GetPaymentDetails requested"); var res = await _paymentRepo.GetPaymentEntry(paymentDetailsRequest.PaymentIdentifier); if (res.Success) { if (res.PaymentEntry == null) { return(NotFound()); } else { return(Ok(res.PaymentEntry.ConvertToPaymentDetails())); } } else { throw new Exception("Unable to fetch data."); } }
public async Task Returns_Error_Response_If_No_Data_Found_For_Owner() { const int PAYMENT_ID = 1; const string CARD_NUMBER = "1234"; const string CVV = "123"; const string CURRENCY = "GBP"; const decimal AMOUNT = .1m; const string PAYMENT_RESULT = "Success"; const string OWNER = "owner"; var EXPIRY = new DateTime(2021, 01, 01); var request = new GetPaymentDetailsRequest { PaymentId = PAYMENT_ID, Owner = OWNER }; using var context = Setup.CreateContext(); context.ProcessedPayments.Add(new ProcessedPayment { Id = PAYMENT_ID, CardNumber = CARD_NUMBER, Expiry = EXPIRY, Currency = CURRENCY, Amount = AMOUNT, CVV = CVV, PaymentResult = PAYMENT_RESULT, Owner = "Different Owner" }); context.SaveChanges(); var handler = new GetPaymentDetailsHandler(_logger, context); var result = (await handler.Handle(request, CancellationToken.None)).ErrorOrDefault; Assert.AreEqual(HttpStatusCode.NotFound, result.StatusCode); }