Exemplo n.º 1
0
        public async Task AssignImgAndPrice_ShouldReturnModelWithPriceAndJmg()
        {
            //Arrange
            var db = this.SetDb();

            await this.SeedCustomCakeImg(db);

            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            CustomCakeOrderViewModel model = new CustomCakeOrderViewModel
            {
                Sponge           = "Vanilla",
                FirstLayerCream  = "Whipped",
                SecondLayerCream = "Whipped",
                Filling          = "NoFilling",
                SideDecoration   = "White Cigarettes",
                TopDecoration    = "Habana",
                NumberOfSlices   = 6,
                Img = null,
            };

            //Act
            var result = service.AssignImgAndPrice(model);

            var expectedPrice = 6 * 2.75m;
            var actualPrice   = result.Price;

            //Assert
            Assert.Equal(expectedPrice, actualPrice);
            Assert.NotNull(result.Img);
        }
Exemplo n.º 2
0
        public async Task AssignImgAndPrice_WithInvalidSide_ShouldThrow()
        {
            //Arrange
            var db = this.SetDb();

            await this.SeedCustomCakeImg(db);

            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            CustomCakeOrderViewModel model = new CustomCakeOrderViewModel
            {
                Sponge           = "Vanilla",
                FirstLayerCream  = "Whipped",
                SecondLayerCream = "Whipped",
                Filling          = "NoFilling",
                SideDecoration   = "White Dots",
                TopDecoration    = "Habana",
                NumberOfSlices   = 6,
                Img = null,
            };

            //Act

            //Assert
            Assert.Throws <NullReferenceException>(() => service.AssignImgAndPrice(model));
        }
Exemplo n.º 3
0
        public async Task SoftDelete_WithInValidCustomCakeId_ShouldMarkCakeAsDeleted()
        {
            //Assert
            var db   = this.SetDb();
            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var productRepo = new Repository <Product>(db);

            var productService = new CakeService(null, productRepo, this.Mapper);

            var service = new CustomCakeService(productRepo, repo, this.Mapper, logger);

            CustomCakeOrderViewModel model = new CustomCakeOrderViewModel
            {
                Sponge           = "Vanilla",
                FirstLayerCream  = "Whipped",
                SecondLayerCream = "Whipped",
                Filling          = "No_Filling",
                SideDecoration   = "White_Chocolate_Cigarettes",
                TopDecoration    = "Habana",
                NumberOfSlices   = 6,
                Img = null,
            };

            var product = service.CreateCustomProduct(model);

            await productService.AddCakeToDb(product);

            //Act


            //Assert
            await Assert.ThrowsAsync <InvalidOperationException>(async() => await productService.SoftDelete(2));
        }
Exemplo n.º 4
0
        public async Task UpdateCustomCakeImg_WithValidData_ShouldSaveUpdatedEntry()
        {
            //Arrange
            var db = this.SetDb();

            await this.SeedCustomCakeImg(db);

            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            var customCakeImg = await repo.GetByIdAsync(2);

            db.Entry(customCakeImg).State = EntityState.Detached;
            var model = this.Mapper.Map <CustomCakeImg, CustomCakeImgViewModel>(customCakeImg);

            model.Name = "Golden leaf";

            //Act
            await service.UpdateCustomCakeImg(model);

            var expectedTitle = "Golden leaf";
            var actualTitle   = repo.All().SingleOrDefault(t => t.Id == 2).Name;

            //Assert
            Assert.Equal(expectedTitle, actualTitle);
        }
Exemplo n.º 5
0
        public async Task AddCustomCakeImg_WithDuplicateCakeName_ShouldThrow()
        {
            //Arrange
            var db = this.SetDb();

            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            CustomCakeImgViewModel model1 = new CustomCakeImgViewModel
            {
                Side = "White Cigarettes",
                Top  = "Habana",
                Name = "Habana" + " " + "White Cigarettes",
                Img  = "https://res.cloudinary.com/cakeit/image/upload/v1545083551/Top_Habana_WhiteCigarettes.png"
            };

            CustomCakeImgViewModel model2 = new CustomCakeImgViewModel
            {
                Side = "White Cigarettes",
                Top  = "Habana",
                Name = "Habana" + " " + "White Cigarettes",
                Img  = "https://res.cloudinary.com/cakeit/image/upload/v1545083551/Top_Habana_WhiteCigarettes.png"
            };
            await service.AddCustomCakeImg(model1);

            //Act

            //Assert
            await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.AddCustomCakeImg(model2));
        }
Exemplo n.º 6
0
        public async Task AddCustomCakeImg_ShouldAddDataToCustomCakeImgTable()
        {
            //Arrange
            var db = this.SetDb();

            var repo = new Repository <CustomCakeImg>(db);

            var mock = new Mock <ILogger <CustomCakeService> >();

            ILogger <CustomCakeService> logger = mock.Object;

            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            CustomCakeImgViewModel model = new CustomCakeImgViewModel
            {
                Side = "White Cigarettes",
                Top  = "Habana",
                Name = "Habana" + " " + "White Cigarettes",
                Img  = "https://res.cloudinary.com/cakeit/image/upload/v1545083551/Top_Habana_WhiteCigarettes.png"
            };

            //Act
            await service.AddCustomCakeImg(model);

            var expected = "Habana White Cigarettes";
            var actual   = repo.All().First().Name;

            //Assert
            Assert.Equal(expected, actual);
        }
Exemplo n.º 7
0
        public async Task DeleteCustomCakeImg_WithValidiD_ShouldDelete()
        {
            //Arrange
            var db = this.SetDb();

            await this.SeedCustomCakeImg(db);

            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);
            var cake    = await service.GetCustomCakeImgById(1);

            //Act
            await service.DeleteCustomCakeImg(cake);

            var expectedRepoCount = 1;
            var actualRepoCount   = repo.All().Count();

            var expectedTutorialId = 2;
            var actualTutorialId   = repo.All().First().Id;

            //Asser
            Assert.Equal(expectedRepoCount, actualRepoCount);
            Assert.Equal(expectedTutorialId, actualTutorialId);
        }
Exemplo n.º 8
0
        private async Task SeedCustomCakeImg(CakeItDbContext db)
        {
            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            CustomCakeImgViewModel model1 = new CustomCakeImgViewModel
            {
                Side = "White Cigarettes",
                Top  = "Habana",
                Name = "Habana" + " " + "White Cigarettes",
                Img  = "https://someurl.bg"
            };

            await service.AddCustomCakeImg(model1);

            CustomCakeImgViewModel model2 = new CustomCakeImgViewModel
            {
                Side = "Dark Cigarettes",
                Top  = "Meksiko",
                Name = "Meksiko" + " " + "Dark Cigarettes",
                Img  = "https://otherurl.bg"
            };

            await service.AddCustomCakeImg(model2);

            await repo.SaveChangesAsync();
        }
Exemplo n.º 9
0
        public void CreateCustomProduct_WithInValidIngredients_ShouldThrow()
        {
            //Arrange
            var db   = this.SetDb();
            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            CustomCakeOrderViewModel model = new CustomCakeOrderViewModel
            {
                Sponge           = "Vanilla",
                FirstLayerCream  = "Whipped",
                SecondLayerCream = "Whipped",
                Filling          = "NoFilling",
                SideDecoration   = "White_Chocolate_Cigarettes",
                TopDecoration    = "Habana",
                NumberOfSlices   = 6,
                Img = null,
            };

            //Act

            //Assert
            Assert.Throws <AutoMapperMappingException
                           >(() => service.CreateCustomProduct(model));
        }
Exemplo n.º 10
0
        public void CreateCustomProduct_ShouldReturnProduct()
        {
            //Arrange
            var db   = this.SetDb();
            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            CustomCakeOrderViewModel model = new CustomCakeOrderViewModel
            {
                Sponge           = "Vanilla",
                FirstLayerCream  = "Whipped",
                SecondLayerCream = "Whipped",
                Filling          = "No_Filling",
                SideDecoration   = "White_Chocolate_Cigarettes",
                TopDecoration    = "Habana",
                NumberOfSlices   = 6,
                Img = null,
            };

            //Act
            var product = service.CreateCustomProduct(model);

            //Assert
            Assert.NotNull(product);
            Assert.IsType <Product>(product);
        }
Exemplo n.º 11
0
        public async Task GetCustomCakeImglById_WithInValidId_ShouldThrow()
        {
            //Arrange
            var db = this.SetDb();

            await this.SeedCustomCakeImg(db);

            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            //Act

            //Assert
            await Assert.ThrowsAsync <NullReferenceException>(async() => await service.GetCustomCakeImgById(3));
        }
Exemplo n.º 12
0
        public void CreateCustomProduct_WithNullIngredients_ShouldThrow()
        {
            //Arrange
            var db   = this.SetDb();
            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            CustomCakeOrderViewModel model = null;

            //Act

            //Assert
            Assert.Throws <AutoMapperMappingException
                           >(() => service.CreateCustomProduct(model));
        }
Exemplo n.º 13
0
        public async Task GetAllCustomCakesImg_ShouldReturnCollection()
        {
            //Arrange
            var db = this.SetDb();

            await this.SeedCustomCakeImg(db);

            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            //Act
            var result = service.GetAllCustomCakesImg();

            var expectedCount = 2;
            var actualCount   = result.Count();

            //Assert
            Assert.Equal(expectedCount, actualCount);
        }
Exemplo n.º 14
0
        public async Task RemoveFromCart_WithItemCategoryTwo_ShouldReturnEmptyCart()
        {
            //Arrange
            var db = this.SetDb();

            var repo              = new Repository <CustomCakeImg>(db);
            var productRepo       = new Repository <Product>(db);
            var productService    = new CakeService(null, productRepo, this.Mapper);
            var customCakeService = new CustomCakeService(productRepo, repo, this.Mapper, null);

            var wrapper     = new TestCartSessionWrapper();
            var cartManager = new CartManager(wrapper);

            var cartService = new CartService(productRepo, cartManager);

            CustomCakeOrderViewModel model = new CustomCakeOrderViewModel
            {
                Sponge           = "Vanilla",
                FirstLayerCream  = "Whipped",
                SecondLayerCream = "Whipped",
                Filling          = "No_Filling",
                SideDecoration   = "White_Chocolate_Cigarettes",
                TopDecoration    = "Habana",
                NumberOfSlices   = 6,
                Img = null,
            };

            var product = customCakeService.CreateCustomProduct(model);

            await productService.AddCakeToDb(product);

            await cartService.AddToCart(1);

            //Act
            await cartService.RemoveFromCart(1);

            //Assert
            Assert.Empty(cartManager.GetCartItem());
        }
Exemplo n.º 15
0
        public async Task GetCustomCakeImglById_WithValidId_ShouldReturnModel()
        {
            //Arrange
            var db = this.SetDb();

            await this.SeedCustomCakeImg(db);

            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            //Act
            var model = await service.GetCustomCakeImgById(2);

            var expectedId = 2;
            var actualId   = model.Id;

            //Assert
            Assert.NotNull(model);
            Assert.Equal(expectedId, actualId);
        }
Exemplo n.º 16
0
        public async Task SoftDelete_WithValidCustomCakeId_ShouldMarkCakeAsDeleted()
        {
            //Assert
            var db   = this.SetDb();
            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var productRepo = new Repository <Product>(db);

            var productService = new CakeService(null, productRepo, this.Mapper);

            var service = new CustomCakeService(productRepo, repo, this.Mapper, logger);

            CustomCakeOrderViewModel model = new CustomCakeOrderViewModel
            {
                Sponge           = "Vanilla",
                FirstLayerCream  = "Whipped",
                SecondLayerCream = "Whipped",
                Filling          = "No_Filling",
                SideDecoration   = "White_Chocolate_Cigarettes",
                TopDecoration    = "Habana",
                NumberOfSlices   = 6,
                Img = null,
            };

            var product = service.CreateCustomProduct(model);

            await productService.AddCakeToDb(product);

            //Act
            await productService.SoftDelete(1);

            var expectedIsDeleted = true;
            var actualIsDeleted   = (await productRepo.GetByIdAsync(1)).IsDeleted;

            //Assert
            Assert.Equal(expectedIsDeleted, actualIsDeleted);
        }
Exemplo n.º 17
0
        public async Task AssignImgAndPrice_WhithInvalidImgUrn_ShouldThrow()
        {
            //Arrange
            var db = this.SetDb();

            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            CustomCakeImgViewModel imgModel = new CustomCakeImgViewModel
            {
                Side = "White Cigarettes",
                Top  = "Habana",
                Name = "Habana" + " " + "White Cigarettes",
                Img  = "null"
            };

            await service.AddCustomCakeImg(imgModel);

            CustomCakeOrderViewModel model = new CustomCakeOrderViewModel
            {
                Sponge           = "Vanilla",
                FirstLayerCream  = "Whipped",
                SecondLayerCream = "Whipped",
                Filling          = "NoFilling",
                SideDecoration   = "White Cigarettes",
                TopDecoration    = "Habana",
                NumberOfSlices   = 6,
                Img = null,
            };

            //Act

            //Assert
            Assert.Throws <InvalidOperationException>(() => service.AssignImgAndPrice(model));
        }
Exemplo n.º 18
0
        public async Task UpdateCustomCakeImg_WithDuplicateImgUrl_ShouldSaveUpdatedTurorialThrow()
        {
            //Arrange
            var db = this.SetDb();

            await this.SeedCustomCakeImg(db);

            var repo = new Repository <CustomCakeImg>(db);
            var mock = new Mock <ILogger <CustomCakeService> >();
            ILogger <CustomCakeService> logger = mock.Object;
            var service = new CustomCakeService(null, repo, this.Mapper, logger);

            var customCakeImg = await repo.GetByIdAsync(2);

            db.Entry(customCakeImg).State = Microsoft.EntityFrameworkCore.EntityState.Detached;
            var model = this.Mapper.Map <CustomCakeImg, CustomCakeImgViewModel>(customCakeImg);

            model.Img = "https://someurl.bg";

            //Act

            //Assert
            await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.UpdateCustomCakeImg(model));
        }