Example #1
0
        public async Task GivenPaymentCreation_WhenSendingARequestWithTheSameIdTwice_ThenTheSecondResponseHasA400BadRequestStatusCode()
        {
            var paymentId = Guid.NewGuid();
            var request   = new PaymentPostModelBuilder().Build();

            var response1 = await _apiClient.PostAsJsonAsync($"/v1/payment/{paymentId}", request);

            response1?.StatusCode.Should().Be(StatusCodes.Status201Created);

            var response2 = await _apiClient.PostAsJsonAsync($"/v1/payment/{paymentId}", request);

            response2?.StatusCode.Should().Be(StatusCodes.Status400BadRequest);
        }
Example #2
0
        public async Task GivenPaymentCreation_WhenSendingARequestWithTheSameIdTwiceWithDifferentUsers_ThenBothResponsesHave201CreatedStatusCodes()
        {
            var paymentId = Guid.NewGuid();
            var request   = new PaymentPostModelBuilder().Build();

            var response1 = await _apiClient.PostAsJsonAsync($"/v1/payment/{paymentId}", request);

            response1?.StatusCode.Should().Be(StatusCodes.Status201Created);

            _apiClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("IntegrationTestUser2");

            var response2 = await _apiClient.PostAsJsonAsync($"/v1/payment/{paymentId}", request);

            response2?.StatusCode.Should().Be(StatusCodes.Status201Created);
        }
Example #3
0
        public async Task GivenPaymentCreation_WhenRetrievingThePaymentAsADifferentUser_ThenTheResponseHas404NotFoundStatusCode()
        {
            var paymentId = Guid.NewGuid();
            var model     = new PaymentPostModelBuilder().Build();

            var response1 = await _apiClient.PostAsJsonAsync($"/v1/payment/{paymentId}", model);

            response1?.StatusCode.Should().Be(StatusCodes.Status201Created);

            _apiClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("IntegrationTestUser2");

            var response2 = await _apiClient.GetAsync($"/v1/payment/{paymentId}");

            response2?.StatusCode.Should().Be(StatusCodes.Status404NotFound);
        }
Example #4
0
        public async Task GivenPaymentCreation_WhenSendingAValidRequest_ThenTheResponseHasA201CreatedStatusCode()
        {
            var paymentId = Guid.NewGuid();
            var model     = new PaymentPostModelBuilder().Build();

            var postResponse = await _apiClient.PostAsJsonAsync($"/v1/payment/{paymentId}", model);

            postResponse?.StatusCode.Should().Be(StatusCodes.Status201Created);

            var getResponse = await _apiClient.GetAsync($"/v1/payment/{paymentId}");

            getResponse?.StatusCode.Should().Be(StatusCodes.Status200OK);

            var payment = await getResponse.Content.ReadAsAsync <PaymentGetModel>();

            payment.Id.Should().Be(paymentId);
            payment.Status.Should().Be(PaymentStatus.Success);
        }
Example #5
0
        public async Task GivenPaymentCreation_WhenSendingAnInvalidRequest_ThenTheResponseHasA400BadRequestErrorStatusCodeAndTheRetrievedPaymentIsNotSuccessful()
        {
            var paymentId = Guid.NewGuid();
            var model     = new PaymentPostModelBuilder()
                            .WithFailingCardNumber()
                            .Build();

            var postResponse = await _apiClient.PostAsJsonAsync($"/v1/payment/{paymentId}", model);

            postResponse?.StatusCode.Should().Be(StatusCodes.Status400BadRequest);

            var getResponse = await _apiClient.GetAsync($"/v1/payment/{paymentId}");

            getResponse?.StatusCode.Should().Be(StatusCodes.Status200OK);

            var payment = await getResponse.Content.ReadAsAsync <PaymentGetModel>();

            payment.Id.Should().Be(paymentId);
            payment.Status.Should().Be(PaymentStatus.Failure);
        }