public async Task Post_ReturnsCreated()
        {
            var productId = Guid.NewGuid();

            var createProductRequest = new CreateUpdateProductResource
            {
                Name        = "boom",
                Description = "shaka"
            };

            var product = new Product()
            {
                Id = productId
            };

            _productService
            .Setup(call => call.CreateProduct(It.IsAny <Product>()))
            .Returns(Task.FromResult(product))
            .Verifiable();

            var result = await _productsController.Post(createProductRequest);

            var createdResult = result.Result as CreatedAtActionResult;

            Assert.That(createdResult, Is.Not.Null);
            Assert.That(((ProductResource)createdResult.Value).Id, Is.EqualTo(productId));
            Assert.That(createdResult.ActionName, Is.EqualTo("Get"));
        }
Beispiel #2
0
        public async Task <ActionResult <ProductResource> > Post(CreateUpdateProductResource productCreateResource)
        {
            var product    = _mapper.Map <CreateUpdateProductResource, Product>(productCreateResource);
            var newProduct = await _productService.CreateProduct(product);

            var productResource = _mapper.Map <Product, ProductResource>(newProduct);

            return(CreatedAtAction(nameof(Get), new { newProduct.Id }, productResource));
        }
Beispiel #3
0
        public async Task <ActionResult> Update(Guid id, CreateUpdateProductResource productResource)
        {
            var original = await _productService.GetProductById(id);

            if (original == null)
            {
                return(NotFound());
            }

            var productToUpdate = _mapper.Map <CreateUpdateProductResource, Product>(productResource);

            await _productService.UpdateProduct(id, productToUpdate);

            return(NoContent());
        }