Esempio n. 1
0
        public async Task CreateCoffeeIntegrationTests_Post_Coffee_Returns_Expected_All_Validation_Errors()
        {
            // Arrange
            var client = this.fixture.factory.CreateClient();

            // Act
            var coffeeItem = new CoffeeItemCreate()
            {
                Name            = "",
                Description     = "",
                CaffeineContent = 9999
            };

            var payload     = JsonConvert.SerializeObject(coffeeItem);
            var postContent = new StringContent(payload, Encoding.UTF8, "application/json");

            var response = await client.PostAsync("/api/coffee", 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(5, content.ValidationErrors.Count());
        }
Esempio n. 2
0
        public async Task CreateCoffeeIntegrationTests_Post_Coffee_Returns_Correct_Data()
        {
            // Arrange
            var client = this.fixture.factory.CreateClient();

            // Act
            var coffeeItem = new CoffeeItemCreate()
            {
                Name            = "New Coffee",
                Description     = "New coffee made by me",
                CaffeineContent = 150
            };

            var payload     = JsonConvert.SerializeObject(coffeeItem);
            var postContent = new StringContent(payload, Encoding.UTF8, "application/json");

            var response = await client.PostAsync("/api/coffee", postContent);

            var json = await response.Content.ReadAsStringAsync();

            var content = JsonConvert.DeserializeObject <CreatedRead>(json);

            // Assert
            response.EnsureSuccessStatusCode();

            var nextAvailableIdInDatabase = 4;

            Assert.Equal(HttpStatusCode.Created, response.StatusCode);
            Assert.Equal(nextAvailableIdInDatabase, content.Id);
        }
Esempio n. 3
0
        public async Task CreateCoffeeIntegrationTests_Post_Coffee_Returns_Expected_Name_Validation_Errors()
        {
            // Arrange
            var client = this.fixture.factory.CreateClient();

            // Act
            var coffeeItem = new CoffeeItemCreate()
            {
                Name            = "",
                Description     = "Valid description",
                CaffeineContent = 50
            };

            var payload     = JsonConvert.SerializeObject(coffeeItem);
            var postContent = new StringContent(payload, Encoding.UTF8, "application/json");

            var response = await client.PostAsync("/api/coffee", 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(2, content.ValidationErrors.Count());

            var firstValidationError  = content.ValidationErrors.ElementAt(0);
            var secondValidationError = content.ValidationErrors.ElementAt(1);

            Assert.Equal("Name", firstValidationError.Field);
            Assert.Equal("Name is required.", firstValidationError.Message);
            Assert.Equal("Name", secondValidationError.Field);
            Assert.Equal("Name should be between 3 and 50 characters.", secondValidationError.Message);
        }