public int Create(CreateCustomPizzaModel customPizzaModel)
        {
            var pizza = this.mapper.FromCreateCustomPizzaModel(this.pizzaContext, customPizzaModel);

            this.pizzaContext.CustomPizzas.Add(pizza);

            return(this.pizzaContext.SaveChanges());
        }
        public void CallMapperFromCreateCustomPizzaModel_WhenCalled()
        {
            // Arrange
            IEnumerable <CustomPizza> pizzas   = new List <CustomPizza>();
            CustomPizza            customPizza = new CustomPizza();
            CreateCustomPizzaModel ccpm        = new CreateCustomPizzaModel();
            var contextMock   = new Mock <IPizzaFactoryDbContext>();
            var mapperMock    = new Mock <IMapper>();
            var validatorMock = new Mock <IValidator>();

            mapperMock.Setup(m => m.FromCreateCustomPizzaModel(contextMock.Object, ccpm)).Returns(customPizza);
            var pizzaDbSetMock = QueryableDbSetMock.GetQueryableMockDbSet(pizzas);

            contextMock.Setup(ctx => ctx.CustomPizzas).Returns(pizzaDbSetMock.Object);
            ICustomPizzaService customPizzaService = new CustomPizzaService(contextMock.Object, mapperMock.Object, validatorMock.Object);

            // Act
            customPizzaService.Create(ccpm);

            // Assert
            mapperMock.Verify(m => m.FromCreateCustomPizzaModel(contextMock.Object, ccpm), Times.Once);
        }
        public void ReturnZero_IfPizzaWasNotCreated_WhenCalled()
        {
            // Arrange
            ICollection <CustomPizza> pizzas   = new List <CustomPizza>();
            CustomPizza            customPizza = new CustomPizza();
            CreateCustomPizzaModel ccpm        = new CreateCustomPizzaModel();
            var contextMock   = new Mock <IPizzaFactoryDbContext>();
            var mapperMock    = new Mock <IMapper>();
            var validatorMock = new Mock <IValidator>();

            mapperMock.Setup(m => m.FromCreateCustomPizzaModel(contextMock.Object, ccpm)).Returns(customPizza);
            var pizzaDbSetMock = QueryableDbSetMock.GetQueryableMockDbSet(pizzas as IEnumerable <CustomPizza>);

            contextMock.Setup(ctx => ctx.CustomPizzas).Returns(pizzaDbSetMock.Object);
            contextMock.Setup(ctx => ctx.SaveChanges()).Returns(() => pizzas.Count > 0 ? 1 : 0);
            ICustomPizzaService customPizzaService = new CustomPizzaService(contextMock.Object, mapperMock.Object, validatorMock.Object);

            // Act
            int result = customPizzaService.Create(ccpm);

            // Assert
            Assert.AreEqual(0, result);
        }
        public void AddNewCustomPizzaToCustomPizzas_WhenCalled()
        {
            // Arrange
            ICollection <CustomPizza> pizzas   = new List <CustomPizza>();
            CustomPizza            customPizza = new CustomPizza();
            CreateCustomPizzaModel ccpm        = new CreateCustomPizzaModel();
            var contextMock   = new Mock <IPizzaFactoryDbContext>();
            var mapperMock    = new Mock <IMapper>();
            var validatorMock = new Mock <IValidator>();

            mapperMock.Setup(m => m.FromCreateCustomPizzaModel(contextMock.Object, ccpm)).Returns(customPizza);
            var pizzaDbSetMock = QueryableDbSetMock.GetQueryableMockDbSet(pizzas as IEnumerable <CustomPizza>);

            pizzaDbSetMock.Setup(p => p.Add(customPizza)).Callback(() => pizzas.Add(customPizza));
            contextMock.Setup(ctx => ctx.CustomPizzas).Returns(pizzaDbSetMock.Object);
            ICustomPizzaService customPizzaService = new CustomPizzaService(contextMock.Object, mapperMock.Object, validatorMock.Object);

            // Act
            customPizzaService.Create(ccpm);

            // Assert
            Assert.AreEqual(1, pizzas.Count());
        }
Exemple #5
0
        public CustomPizza FromCreateCustomPizzaModel(IPizzaFactoryDbContext pizzaContext, CreateCustomPizzaModel customPizzaModel)
        {
            var     ingredients = new List <Ingredient>();
            decimal price       = 2.00M;

            foreach (var item in customPizzaModel.Ingredients)
            {
                var ingredient = pizzaContext.Ingredients.Find(item);
                if (ingredient.Name != "none" && !ingredients.Contains(ingredient))
                {
                    ingredients.Add(ingredient);
                    price += ingredient.Price;
                }
            }

            CustomPizza pizza = new CustomPizza()
            {
                Name        = customPizzaModel.Name,
                Description = customPizzaModel.Description,
                Ingredients = ingredients,
                Price       = price
            };

            return(pizza);
        }