public async Task <IHttpActionResult> CreateNewProduct(ProductDto product) { Guid id = await _catalogManager.AddNewProduct(new Product( id : product.Id, productCategory : product.ProductCategory, name : product.Name, price : new Price(currency : product.Currency, amount : product.PriceAmount))); return(Created(id.ToString(), "")); }
public async Task Not_add_already_existing_product_as_new_one() { // Arrange var productsRepositoryMock = new Mock <IProductsRepository>(); var productCatalogManager = new ProductCatalogManager(productsRepositoryMock.Object); var product = new Product( id: new Guid("7d490273-ff99-474c-b86d-220de67776d3"), productCategory: "Electornics", name: "kindle", price: new Price( currency: Currency.USDollars, amount: 75) ); // Act InvalidOperationException ex = await Assert.ThrowsAsync <InvalidOperationException> (async() => await productCatalogManager.AddNewProduct(product)); // Assert Assert.Equal("Product id is specified. Cannot be added as new product.", ex.Message); }
public async Task Add_new_product_to_catalog() { // Arrange var productsRepositoryMock = new Mock <IProductsRepository>(); var productCatalogManager = new ProductCatalogManager(productsRepositoryMock.Object); var product = new Product( id: null, productCategory: "Electornics", name: "kindle", price: new Price( currency: Currency.USDollars, amount: 75) ); // Act await productCatalogManager.AddNewProduct(product); // Assert productsRepositoryMock .Verify(m => m.Save(It.IsAny <Product>()), Times.Once); }
public async Task Return_newly_created_product_id() { // Arrange var productsRepositoryMock = new Mock <IProductsRepository>(); var productCatalogManager = new ProductCatalogManager(productsRepositoryMock.Object); var product = new Product( id: null, productCategory: "Electornics", name: "kindle", price: new Price( currency: Currency.USDollars, amount: 75) ); // Act Guid id = await productCatalogManager.AddNewProduct(product); // Assert productsRepositoryMock .Verify(m => m.Save(It.IsAny <Product>()), Times.Once); Assert.NotEqual(Guid.Empty, id); }