public async Task CreateCoffeeRatingIntegrationTests_Post_Coffee_Rating_Returns_Expected_All_Validation_Errors() { // Arrange var client = this.fixture.factory.CreateClient(); // Act var coffeeItem = new CoffeeRatingCreate() { CoffeeId = 0, Comment = "", Rating = 10 }; var payload = JsonConvert.SerializeObject(coffeeItem); var postContent = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync("/api/rating", postContent); var json = await response.Content.ReadAsStringAsync(); var content = JsonConvert.DeserializeObject <ValidationErrorsDto>(json); // Assert Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); Assert.NotNull(content); Assert.Equal(4, content.ValidationErrors.Count()); }
public async Task CreateCoffeeRatingIntegrationTests_Post_Coffee_Rating_Returns_Correct_Data() { // Arrange var client = this.fixture.factory.CreateClient(); // Act var coffeeItem = new CoffeeRatingCreate() { CoffeeId = 2, Comment = "Amazing coffee, 5 stars.", Rating = 5 }; var payload = JsonConvert.SerializeObject(coffeeItem); var postContent = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync("/api/rating", postContent); var json = await response.Content.ReadAsStringAsync(); var content = JsonConvert.DeserializeObject <CreatedRead>(json); // Assert response.EnsureSuccessStatusCode(); var nextAvailableIdInDatabase = 3; Assert.Equal(HttpStatusCode.Created, response.StatusCode); Assert.Equal(nextAvailableIdInDatabase, content.Id); }
public async Task CreateCoffeeRatingIntegrationTests_Post_Coffee_Rating_Returns_Correct_If_Coffee_Entity_Not_Found() { // Arrange var client = this.fixture.factory.CreateClient(); // Act var coffeeItem = new CoffeeRatingCreate() { CoffeeId = 99, Comment = "Amazing coffee, 5 stars.", Rating = 5 }; var payload = JsonConvert.SerializeObject(coffeeItem); var postContent = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync("/api/rating", postContent); var json = await response.Content.ReadAsStringAsync(); var content = JsonConvert.DeserializeObject <CreatedRead>(json); // Assert Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }
public async Task CreateCoffeeRatingIntegrationTests_Post_Coffee_Rating_Returns_Expected_Rating_Validation_Errors() { // Arrange var client = this.fixture.factory.CreateClient(); // Act var coffeeItem = new CoffeeRatingCreate() { CoffeeId = 2, Comment = "Valid comment", Rating = 999 }; var payload = JsonConvert.SerializeObject(coffeeItem); var postContent = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync("/api/rating", postContent); var json = await response.Content.ReadAsStringAsync(); var content = JsonConvert.DeserializeObject <ValidationErrorsDto>(json); // Assert Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); Assert.NotNull(content); Assert.Equal(1, content.ValidationErrors.Count()); var firstValidationError = content.ValidationErrors.ElementAt(0); Assert.Equal("Rating", firstValidationError.Field); Assert.Equal("Rating must be between 1 and 5.", firstValidationError.Message); }