コード例 #1
0
        public async Task Create_With_Invalid_Name_Returns_Expected_Validation_Error(string name)
        {
            // Arrange
            var newIngredient = new IngredientNewModel
            {
                Name        = name,
                Description = "Mléko plnotučné"
            };
            var newIngredientSerialized = JsonConvert.SerializeObject(newIngredient);
            var stringContent           = new StringContent(newIngredientSerialized, Encoding.UTF8, "application/json");

            // Act
            var response = await _client.PostAsync("api/ingredient?version=3.0&culture=en", stringContent);

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);

            //var problemDetails = JsonConvert.DeserializeObject<ProblemDetails>(await response.Content.ReadAsStringAsync());
            //var serializableError = JsonConvert.DeserializeObject<SerializableError>(await response.Content.ReadAsStringAsync());
            var validationProblemDetails = JsonConvert.DeserializeObject <ValidationProblemDetails>(await response.Content.ReadAsStringAsync());

            validationProblemDetails.Errors.Should().HaveCount(1);
            validationProblemDetails.Errors["Name"][0].Should().Be("Ingredient name length must be between 3 and 100 characters");
            validationProblemDetails.Title.Should().Be("One or more validation errors occurred.");
        }
コード例 #2
0
 public IngredientEntity MapIngredientNewModelToEntity(IngredientNewModel ingredientNewModel)
 {
     return(new IngredientEntity
     {
         Id = new Guid(),
         Name = ingredientNewModel.Name,
         Description = ingredientNewModel.Description
     });
 }
コード例 #3
0
        public async Task Create_Should_Create_New_Ingredient()
        {
            // Arrange
            var newIngredient = new IngredientNewModel
            {
                Name        = "Mléko",
                Description = "Mléko polotučné"
            };
            var newIngredientSerialized = JsonConvert.SerializeObject(newIngredient);
            var stringContent           = new StringContent(newIngredientSerialized, Encoding.UTF8, "application/json");

            // Act
            var response = await _client.PostAsync("api/ingredient", stringContent);

            //var response = await _client.PostAsJsonAsync("api/ingredient", newIngredient); // Microsoft.AspNet.WebApi.Client NuGet package needs to be installed.

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var newIngredientGuid = JsonConvert.DeserializeObject <Guid>(await response.Content.ReadAsStringAsync());

            newIngredientGuid.Should().NotBeEmpty();
        }
コード例 #4
0
ファイル: IngredientFacade.cs プロジェクト: SamJ26/5
 public async Task <Guid> InsertAsync(IngredientNewModel ingredientNewModel)
 {
     return(await _ingredientClient.IngredientPostAsync("3", "cs", ingredientNewModel));
 }
コード例 #5
0
ファイル: IngredientFacade.cs プロジェクト: SuperMartas/iw5
        public Guid Create(IngredientNewModel ingredient)
        {
            var ingredientEntity = mapper.Map <IngredientEntity>(ingredient);

            return(ingredientRepository.Insert(ingredientEntity));
        }
コード例 #6
0
 public ActionResult <Guid> Create(IngredientNewModel ingredient)
 {
     return(ingredientFacade.Create(ingredient));
 }