public async Task Put_NonExistingId_ReturnsNotFound() { const int NonExistingId = 999999; // Arrange var client = _factory.CreateClient(); // Act var user = new DTOs.RandomUserForUpdateDto { Email = "*****@*****.**", Name = new NameDto { Title = "Mr", First = "New", Last = "User", }, DateOfBirth = new DateTime(1990, 1, 1), PhoneNumber = "(204)-997-2604", }; var jsonString = JsonSerializer.Serialize(user); var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json"); var response = await client.PutAsync($"/api/randomusers/{NonExistingId}", httpContent); // Assert Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }
public async Task Put_IllegalData_ReturnsUnprocessable() { // Arrange var client = _factory.CreateClient(); // Act var ExistingId = await FirstExistingIdAsync(); var user = new DTOs.RandomUserForUpdateDto { Name = new NameDto { Title = "Mr", First = "New", Last = "User", }, DateOfBirth = new DateTime(1990, 1, 1), PhoneNumber = "(204)-997-2604", }; var jsonString = JsonSerializer.Serialize(user); var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json"); var response = await client.PutAsync($"/api/randomusers/{ExistingId}", httpContent); // Assert Assert.Equal(HttpStatusCode.UnprocessableEntity, response.StatusCode); }
public async void Put_UnsafeButIdempotent() { // Arrange var client = _factory.CreateClient(); // Act var Existing = await FirstExistingAsync(); var oldEmail = Existing.Email; var newEmail = $"{Guid.NewGuid()}@somemail.com"; var updateValue = new DTOs.RandomUserForUpdateDto { Email = newEmail, Name = new NameDto { Title = "Mr", First = "New", Last = "User", }, DateOfBirth = new DateTime(1990, 1, 1), PhoneNumber = "(204)-997-2604", }; var jsonString = JsonSerializer.Serialize(updateValue); var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json"); var response = await client.PutAsync($"/api/randomusers/{Existing.Id}", httpContent); var responseAgain = await client.PutAsync($"/api/randomusers/{Existing.Id}", httpContent); // Assert Assert.Equal(HttpStatusCode.NoContent, response.StatusCode); Assert.Equal(HttpStatusCode.NoContent, responseAgain.StatusCode); var newValue = await GetExistingAsync(Existing.Id); Assert.NotEqual(newValue.Email, oldEmail); Assert.Equal(newValue.Email, newEmail); }