public async Task Update_WhenDataValid_ShouldReturnSuccessCode() { // Arrange var productsDbOld = await Helper.GetAllProductsFromDatabase(); if (productsDbOld.Length == 0) { throw new Exception("Don't have data to do this test"); } var random = new Random(); var productDaoToUpdate = productsDbOld[0]; var updateProductData = new UpdateProductCommand { Id = productDaoToUpdate.Id, Name = random.Next(1, 1000000).ToString(), Price = random.Next(1, 1000000), }; var client = _factory.CreateClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(TestConstants.TestToken); // Act var response = await client.PutAsync($"{TestConstants.ProductApiBaseUrl}/{updateProductData.Id}", updateProductData.SerializeToStringContent()); // Assert response.EnsureSuccessStatusCode(); // Status Code 200-299 var productsDbNew = await Helper.GetAllProductsFromDatabase(); Assert.Equal(productsDbNew.Length, productsDbOld.Length); var productOld = productsDbOld.First(p => p.Id == updateProductData.Id); Helper.ConfirmProductUpdated( productsDbNew: productsDbNew, id: updateProductData.Id, name: updateProductData.Name, price: updateProductData.Price, createdBy: productOld.CreatedBy, createdDate: productOld.CreatedDate, lastModifyDate: productOld.LastModifyDate); Helper.ConfirmProductsListNotChange( productsDbNew: productsDbNew, productsDbOld: productsDbOld, ignoreIds: updateProductData.Id); }
public async Task Update_WhenDataInValid_ShouldReturnBadRequestStatusCodeAndErrorObject() { // Arrange var updateProductData = new UpdateProductCommand { Id = Guid.NewGuid(), Name = "", Price = 0 }; var client = _factory.CreateClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(TestConstants.TestToken); // Act var response = await client.PutAsync($"{TestConstants.ProductApiBaseUrl}/{updateProductData.Id}", updateProductData.SerializeToStringContent()); var errors = await response.DeserializeResponseContent <Dictionary <string, string[]> >(); // Assert Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); Assert.NotEmpty(errors["Name"][0]); Assert.NotEmpty(errors["Price"][0]); }
public async Task Update_WhenDoesntHaveAuthenticationToken_ShouldReturn401Code() { // Arrange var updateProductData = new UpdateProductCommand { Id = Guid.NewGuid(), Name = "", Price = 0 }; var client = _factory.CreateClient(); // Act var response = await client.PutAsync($"{TestConstants.ProductApiBaseUrl}/{updateProductData.Id}", updateProductData.SerializeToStringContent()); // Assert Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode); }