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); }
public ProductsController(ProductCatalogManager catalogManager) { _catalogManager = catalogManager; }