示例#1
0
        public async Task UpdateAsyncShouldUpdateProduct()
        {
            var dbContext       = ApplicationDbContextInMemoryFactory.InitializeContext();
            var repository      = new EfDeletableEntityRepository <Product>(dbContext);
            var productsService = new ProductsService(repository);

            // Create
            var product = new Product()
            {
                Name        = "TestProduct",
                Description = "none",
                CategoryId  = 3,
                Category    = new Category()
                {
                    Id = 1, Name = "Test Category "
                },
                ImageUrl         = null,
                ImageStorageName = null,
                Ratings          = null,
            };
            var product2 = new Product()
            {
                Name        = "TestProduct",
                Description = "none",
                CategoryId  = 3,
                Category    = new Category()
                {
                    Id = 2, Name = "Category two"
                },
                ImageUrl         = null,
                ImageStorageName = null,
                Ratings          = null,
            };
            await productsService.CreateAsync(product);

            await productsService.CreateAsync(product2);

            // Update
            product.Name        = "NameEdited";
            product.Description = "some";
            product.CategoryId  = 2;
            product.Category    = new Category()
            {
                Id = 2, Name = "Category two"
            };
            await productsService.UpdateAsync(product);

            // Get
            var productsFromDb = dbContext.Products.ToList();
            var productFromDb  = productsFromDb.First();

            Assert.Equal(product.Id, productFromDb.Id);
            Assert.Equal("NameEdited", productFromDb.Name);
            Assert.Equal(2, productFromDb.CategoryId);
            Assert.Equal("Category two", productFromDb.Category.Name);
        }
示例#2
0
        public async Task GetBaseByIdShouldReturnProduct()
        {
            var dbContext       = ApplicationDbContextInMemoryFactory.InitializeContext();
            var repository      = new EfDeletableEntityRepository <Product>(dbContext);
            var productsService = new ProductsService(repository);

            // Create
            var product = new Product()
            {
                Name        = "TestProduct",
                Description = "none",
                CategoryId  = 3,
                Category    = new Category()
                {
                    Id = 1, Name = "Test Category "
                },
                ImageUrl         = null,
                ImageStorageName = null,
                Ratings          = null,
            };
            await productsService.CreateAsync(product);

            // Get
            var productsFromDb = await productsService.GetBaseById(product.Id);

            Assert.Equal(product.Id, productsFromDb.Id);
        }
示例#3
0
        public async Task CreateAsyncShouldCreateProduct()
        {
            var dbContext       = ApplicationDbContextInMemoryFactory.InitializeContext();
            var repository      = new EfDeletableEntityRepository <Product>(dbContext);
            var productsService = new ProductsService(repository);

            var product = new Product()
            {
                Name        = "TestProduct",
                Description = "none",
                CategoryId  = 3,
                Category    = new Category()
                {
                    Id = 3, Name = "Test Category "
                },
                ImageUrl         = null,
                ImageStorageName = null,
                Sizes            = new List <ProductSize>()
                {
                    new ProductSize()
                    {
                        Id = 1, Name = "S", Price = 5M
                    }
                },
                Ratings = null,
            };

            await productsService.CreateAsync(product);

            var products      = dbContext.Products.ToList();
            var productsCount = products.Count;

            Assert.Equal(1, productsCount);
        }
        private async Task <string> PrepareProductAsync(ProductsService service)
        {
            var picture = this.mockPicture.Object;

            var productId = await service.CreateAsync("productName", "productDescription", 12, picture, "1", "1");

            return(productId);
        }
        public async Task CreateAsyncShouldCreateProductSuccessfully()
        {
            var diablo = new ProductDto
            {
                Name        = "Diablo",
                Description = "Pizza diavola means the devils pizza and is quite a spicy little devil and one of my favourite pizzas. If you like spicy hot and chilli flavours you will enjoy this pizza.",
                Price       = 8.90m,
                Weight      = 500,
                Image       = "https://images.pizza33.ua/products/product/yQfkJqZweoLn9omo68oz5BnaGzaIE0UJ.jpg"
            };

            await _productsService.CreateAsync(diablo);

            Assert.Equal(1, _productsRepository.All().Count());

            var product = _productsRepository.All().First();

            Assert.Equal("Diablo", product.Name);
            Assert.Equal("Pizza diavola means the devils pizza and is quite a spicy little devil and one of my favourite pizzas. If you like spicy hot and chilli flavours you will enjoy this pizza.", product.Description);
            Assert.Equal(8.90m, product.Price);
            Assert.Equal(500, product.Weight);
            Assert.Equal("https://images.pizza33.ua/products/product/yQfkJqZweoLn9omo68oz5BnaGzaIE0UJ.jpg", product.Image);
        }