コード例 #1
0
 private Ingridient UpdateModelToDomainModel(IngridientUpdateModel updateModel)
 {
     return(new Ingridient()
     {
         Name = updateModel.Name, Kcal = updateModel.Kcal.Value
     });
 }
コード例 #2
0
        public void UpdateIngridient_ShouldThrow_EntityException(IngridientUpdateModel ingridient, string expectedMessage)
        {
            //Arrange
            var(ingridientRepository, dataBase) = GetMocks();
            var ingridientService = new IngridientService(ingridientRepository.Object);

            //Act
            var exception = Assert.ThrowsAsync <EntityException>(() => ingridientService.UpdateIngridient(1, ingridient));

            //Assert
            Assert.AreEqual(expectedMessage, exception.Message);
        }
コード例 #3
0
        public async Task <Ingridient> UpdateIngridient(int id, IngridientUpdateModel ingridientUpdateModel)
        {
            await CheckExisting(id);

            if (ingridientUpdateModel.Kcal.HasValue && ingridientUpdateModel.Kcal < 0)
            {
                throw new EntityException("Field 'kcal' of ingridient can't be less than 0");
            }
            if ("".Equals(ingridientUpdateModel.Name))
            {
                throw new EntityException("Field 'name' of ingridient can't be empty");
            }

            return(await _ingridientRepository.UpdateIngridient(id, ingridientUpdateModel));
        }
コード例 #4
0
        public void UpdateIngridient_ShouldThrow_EntityDoesntExistException()
        {
            //Arrange
            var(ingridientRepository, dataBase) = GetMocks();
            var ingridientService     = new IngridientService(ingridientRepository.Object);
            var ingridientUpdateModel = new IngridientUpdateModel()
            {
                Name = "Ingridient1", Kcal = 200
            };
            var idOfIngridientToBeUpdated = 100;

            //Act
            var exception = Assert.ThrowsAsync <EntityDoesNotExistException>(() => ingridientService.UpdateIngridient(idOfIngridientToBeUpdated, ingridientUpdateModel));

            //Assert
            Assert.AreEqual("Ingridient with id = 100 doesn't exist", exception.Message);
        }
コード例 #5
0
        public async Task UpdateIngridient_ShouldUpdateModel()
        {
            //Arrange
            var(ingridientRepository, dataBase) = GetMocks();
            var ingridientService         = new IngridientService(ingridientRepository.Object);
            var idOfIngridientToBeUpdated = 1;
            var ingridientUpdateModel     = new IngridientUpdateModel()
            {
                Name = "UpdatedIngridient1", Kcal = 300
            };

            //Act
            var updatedIngridientModel = await ingridientService.UpdateIngridient(idOfIngridientToBeUpdated, ingridientUpdateModel);

            //Assert
            Assert.AreEqual(updatedIngridientModel.Name, dataBase[idOfIngridientToBeUpdated].Name);
            Assert.AreEqual(updatedIngridientModel.Kcal, dataBase[idOfIngridientToBeUpdated].Kcal);
        }
コード例 #6
0
        public async Task <Ingridient> UpdateIngridient(int id, IngridientUpdateModel ingridientUpdateModel)
        {
            var ingridient = await GetIngridient(id);

            if (ingridientUpdateModel.Name is {})