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); }
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); }
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); }
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); }
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); }