public void CreateProductShouldReturnTheCreatedProduct()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "CreateProduct_Product_Database")
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var imageService = new Mock <IImageService>();

            imageService.Setup(x => x.AddImageToProduct(It.IsAny <IFormFile>())).Returns(new ProductImage()
            {
                PublicId = "PublicId",
                Id       = Convert.ToString(Guid.NewGuid()),
                ImageUrl = "http://www.url.com/",
            });


            var productsService = new ProductsService(dbContext, null, imageService.Object);

            var product = productsService.CreateProduct("Topka", "Kon", 123, GenerateFile(), "Mlqko");

            Assert.IsType <Product>(product);
            Assert.Equal("Topka", product.Name);
        }
        public async Task CreateProductShouldWork()
        {
            var productRepo = new Mock <IRepository <Product> >();
            var products    = new List <Product>
            {
                new Product(),
                new Product()
            };

            productRepo.Setup(r => r.All()).Returns(products.AsQueryable());
            productRepo.Setup(r => r.AddAsync(It.IsAny <Product>())).Returns <Product>(Task.FromResult)
            .Callback <Product>(p => products.Add(p));

            var userRepo = new Mock <IRepository <User> >();

            userRepo.Setup(r => r.All()).Returns(new List <User> {
                new User {
                    UserName = "******"
                }
            }.AsQueryable());

            var service    = new ProductsService(productRepo.Object, userRepo.Object, null);
            var newProduct = new Product {
                Id = Guid.NewGuid()
            };
            await service.CreateProduct(newProduct, "stamat");

            Assert.Equal(3, products.Count);
            Assert.Contains(products, p => p.Id == newProduct.Id);
            productRepo.Verify(r => r.AddAsync(newProduct), Times.Once);
        }
示例#3
0
        public ActionResult Create(CreateProductRequest request)
        {
            if (ModelState.IsValid)
            {
                _productsService.CreateProduct(request);
                return(RedirectToAction("Index"));
            }

            return(View(request));
        }
示例#4
0
        public IActionResult CreateProduct([FromBody] ProductCreateModel productCreateModel)
        {
            try
            {
                var createdProduct = ProductsService.CreateProduct(productCreateModel);

                return(CreatedAtAction("GetProductById", new { Id = createdProduct.Id }, createdProduct));
            }
            catch (Exception e)
            {
                Logger.LogCritical(e, "Error while creating new product");
                return(StatusCode(500));
            }
        }
示例#5
0
        public async Task <ActionResult <Product> > CreateProduct([FromBody] Product newProduct)
        {
            try
            {
                Profile userInfo = await HttpContext.GetUserInfoAsync <Profile>();

                newProduct.CreatorId = userInfo.Id;
                Product created = _pts.CreateProduct(newProduct);
                return(Ok(created));
            }
            catch (System.Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
示例#6
0
        public void Stage006_CreateProductTest()
        {
            var productRepo = new ProductsService();
            var input       = new Product
            {
                Name          = "Nokia",
                Description   = "Best phone ever",
                Price         = 14576.99M,
                DeliveryPrice = 45.98M
            };

            productRepo.CreateProduct(input);

            var output = productRepo.GetAllProductsByName("Nokia");

            Assert.IsNotNull(output);
            Assert.AreEqual("Nokia", output.Items[0].Name);
        }
示例#7
0
        public ActionResult Product_Create(int categoryID, [DataSourceRequest] DataSourceRequest request, Product product)
        {
            try
            {
                if (product != null && ModelState.IsValid)
                {
                    _productService.CreateProduct(product, categoryID);
                }

                return(Json(new[] { product }.ToDataSourceResult(request, ModelState)));
            }
            catch (Exception)
            {
                return(Json(new DataSourceResult
                {
                    Errors = "A server error has occurred!"
                }));
            }
        }