public GetPaymentHandlerTests()
 {
     _mockEvents            = new List <IEvent <Payment> >();
     _mockEventStore        = new Mock <IEventStore <Payment> >();
     _sut                   = new GetPaymentHandler(_mockEventStore.Object);
     _mockQuery             = new GetPaymentQuery(Guid.Empty);
     _mockCancellationToken = new CancellationToken();
 }
Beispiel #2
0
        public void GivenAPaymentId_IfItDoesNotExistWithTheBank_ShouldReturnNotFoundException()
        {
            // arrange
            _bankApi.FetchPaymentDetails(Arg.Any <string>()).ReturnsNull();

            var handler = new GetPaymentHandler(_bankApi);

            // act
            var ex = Assert.Throws <NotFoundException>(() => handler.Handle("id"));

            // assert
            Assert.NotNull(ex);
        }
Beispiel #3
0
        public void GivenPaymentRequestToRetrieve_IfItExistsWithBank_ShouldReturnHashedCardNumber()
        {
            // arrange
            var expectedPaymentRequestId = Guid.NewGuid().ToString();
            var paymentRequest           = BuildTestPaymentRequestResponse(expectedPaymentRequestId, true, "hashTest");
            var expectedHashedCardNumber = Utils.HashCardNumber(paymentRequest.CardNumber);

            _bankApi.FetchPaymentDetails(expectedPaymentRequestId).Returns(paymentRequest);

            var handler = new GetPaymentHandler(_bankApi);
            // act
            var result = handler.Handle(expectedPaymentRequestId);

            // assert
            Assert.Equal(expectedHashedCardNumber, result.HashedCardNumber);
        }
Beispiel #4
0
        public void GivenASuccessfulPaymentRequestToRetrieve_IfItExistsWithBank_ShouldReturnPayment()
        {
            // arrange
            var expectedPaymentRequestId = Guid.NewGuid().ToString();
            var paymentRequest           = BuildTestPaymentRequestResponse(expectedPaymentRequestId, true);

            _bankApi.FetchPaymentDetails(expectedPaymentRequestId).Returns(paymentRequest);

            var handler = new GetPaymentHandler(_bankApi);

            // act
            var result = handler.Handle(expectedPaymentRequestId);

            // assert
            Assert.Equal(expectedPaymentRequestId, result.RequestId);
            Assert.True(result.Success);
        }
Beispiel #5
0
        public static IActionResult Status([HttpTrigger(
                                                AuthorizationLevel.Function,
                                                "GET",
                                                Route = "fakeBank/payment/{paymentRequestId}")]
                                           HttpRequestMessage request, string paymentRequestId)
        {
            var bankApi = new FakeBankApi();
            var handler = new GetPaymentHandler(bankApi);

            try
            {
                var paymentRequest = handler.Handle(paymentRequestId);
                return(new OkObjectResult(paymentRequest));
            }
            catch (NotFoundException)
            {
                return(new NotFoundResult());
            }
        }