Exemplo n.º 1
0
        public async Task When_Insert_Product()
        {
            //Arrange
            var loggerMock = new Mock <ILogger <ProductService> >();
            Mock <IGenericRepository <Product> > repositoryMock = new MockProductRepository().InsertProductAsync();
            var mockUnitOfWork = new MockUnitOfWork().ProductRepository(repositoryMock).SaveChangesAsync();
            var productService = new ProductService(mockUnitOfWork.Object, loggerMock.Object);

            var entity = new CreateProduct
            {
                Name         = "Pepino",
                Description  = "Pepino",
                Sku          = "1234567890",
                Price        = 320.1M,
                MinimunStock = 1,
                MaximumStock = 210,
                Stock        = 0
            };

            //Act
            var result = await productService.InsertProductAsync(entity);

            //Assert
            Assert.NotNull(result);
            Assert.True(result.Id != Guid.Parse("00000000-0000-0000-0000-000000000000"));
        }
Exemplo n.º 2
0
        public async Task When_Remove_Products_Of_Warehouse_Is_Correct_Remove_Product_Warehouse()
        {
            //Arrange
            var loggerMock = new Mock <ILogger <MovementService> >();
            Mock <IGenericRepository <Movement> > repositoryMovementMock = new MockMovementRepository().Queryable();
            Mock <IGenericRepository <Product> >  repositoryProductMock  = new MockProductRepository()
                                                                           .GetProductByIdAsync()
                                                                           .UpdateProductAsync()
                                                                           .Queryable();
            var mockUnitOfWork = new MockUnitOfWork().MovementRepository(repositoryMovementMock)
                                 .ProductRepository(repositoryProductMock)
                                 .SaveChangesAsync();
            var movementService = new MovementService(mockUnitOfWork.Object, loggerMock.Object);

            RemoveProductWarehouse movement = new RemoveProductWarehouse
            {
                Quantity    = 2,
                ProductId   = Guid.Parse("B99BC862-C515-4D61-97D8-4D2B188A19F3"),
                WarehouseId = Guid.Parse("351BA5AA-C78D-4491-931A-76603D729392")
            };

            //Act
            var result = await movementService.RemoveProductsOfWarehouse(movement);

            //Assert
            Assert.True(result.Equals(true));
        }
Exemplo n.º 3
0
        public async Task When_No_Insert_Product_Is_Realy_Exist()
        {
            //Arrange
            var loggerMock = new Mock <ILogger <ProductService> >();
            Mock <IGenericRepository <Product> > repositoryMock = new MockProductRepository()
                                                                  .InsertProductAsync()
                                                                  .Queryable();

            var mockUnitOfWork = new MockUnitOfWork().ProductRepository(repositoryMock).SaveChangesAsync();
            var productService = new ProductService(mockUnitOfWork.Object, loggerMock.Object);
            var entity         = new CreateProduct
            {
                Name         = "Cebolla",
                Description  = "Cebolla",
                Sku          = "1234567890",
                Price        = 320.1M,
                MinimunStock = 1,
                MaximumStock = 210,
                Stock        = 0
            };
            Exception exception = null;

            //Act
            try
            {
                await productService.InsertProductAsync(entity);
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            //Assert
            Assert.True("There is already a product with this name." == exception.Message);
        }
Exemplo n.º 4
0
        public async Task When_Error_Update_Product()
        {
            //Arrange
            var loggerMock = new Mock <ILogger <ProductService> >();
            Mock <IGenericRepository <Product> > repositoryMock = new MockProductRepository().UpdateProductAsync().ExistProductAsync();
            var       mockUnitOfWork = new MockUnitOfWork().ProductRepository(repositoryMock).SaveChangesAsync();
            var       productService = new ProductService(mockUnitOfWork.Object, loggerMock.Object);
            Exception exception      = null;

            var entity = new Product
            {
                Id           = Guid.Parse("862F07EE-F92F-4EFB-9308-0F4C8B03A976"),
                Name         = "Pepino",
                Description  = "Pepino",
                Sku          = "1234567890",
                Price        = 320.1M,
                MinimunStock = 1,
                MaximumStock = 210,
                Stock        = 0
            };

            //Act
            try
            {
                await productService.UpdateProductAsync(entity);
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            //Assert
            Assert.True("Product doesn't exist" == exception.Message);
            Assert.True(typeof(BusinessException) == exception.GetType());
        }
Exemplo n.º 5
0
        public async Task When_Update_Product()
        {
            //Arrange
            var loggerMock = new Mock <ILogger <ProductService> >();
            Mock <IGenericRepository <Product> > repositoryMock = new MockProductRepository().UpdateProductAsync().ExistProductAsync();

            var mockUnitOfWork = new MockUnitOfWork().ProductRepository(repositoryMock).SaveChangesAsync();
            var productService = new ProductService(mockUnitOfWork.Object, loggerMock.Object);
            var entity         = new Product
            {
                Id           = Guid.Parse("4d8830e2-465c-4a54-ad02-f875073c85dc"),
                Name         = "Pepino",
                Description  = "Pepino",
                Sku          = "1234567890",
                Price        = 320.1M,
                MinimunStock = 1,
                MaximumStock = 210,
                Stock        = 0
            };

            //Act
            var result = await productService.UpdateProductAsync(entity);

            //Assert
            Assert.True(result);
        }
Exemplo n.º 6
0
        public async Task When_Error_Update_Stock_Product(string id)
        {
            //Arrange

            var stockValue = 23;
            var loggerMock = new Mock <ILogger <ProductService> >();
            Mock <IGenericRepository <Product> > repositoryMock = new MockProductRepository()
                                                                  .GetProductByIdAsync()
                                                                  .UpdateProductAsync()
                                                                  .ExistProductAsync();
            var       mockUnitOfWork = new MockUnitOfWork().ProductRepository(repositoryMock).SaveChangesAsync();
            var       productService = new ProductService(mockUnitOfWork.Object, loggerMock.Object);
            Exception exception      = null;

            //Act
            try
            {
                await productService.UpdateStockProduct(Guid.Parse(id), stockValue);
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            //Assert
            Assert.True("Product doesn't exist" == exception.Message);
            Assert.True(typeof(BusinessException) == exception.GetType());
        }
Exemplo n.º 7
0
        public async Task When_Move_Product_Other_Warehouse()
        {
            //Arrange
            var loggerMock = new Mock <ILogger <MovementService> >();
            Mock <IGenericRepository <Movement> > repositoryMovementMock = new MockMovementRepository().Queryable();
            Mock <IGenericRepository <Product> >  repositoryProductMock  = new MockProductRepository()
                                                                           .GetProductByIdAsync()
                                                                           .UpdateProductAsync()
                                                                           .Queryable();
            var mockUnitOfWork = new MockUnitOfWork().MovementRepository(repositoryMovementMock)
                                 .ProductRepository(repositoryProductMock)
                                 .SaveChangesAsync();

            var movementService = new MovementService(mockUnitOfWork.Object, loggerMock.Object);

            MoveProducts moveProducts = new MoveProducts
            {
                Quantity           = 3,
                ProductId          = Guid.Parse("B99BC862-C515-4D61-97D8-4D2B188A19F3"),
                CurrentWarehouseId = Guid.Parse("351BA5AA-C78D-4491-931A-76603D729392"),
                NewWarehouseId     = Guid.Parse("C347ED5D-1F33-49EE-A58D-B7F2310192A6")
            };

            //Act
            var result = await movementService.MoveProductOtherWarehouse(moveProducts);

            //Assert
            Assert.NotNull(result);
            Assert.True(result.ToList().Count > 0);
        }
Exemplo n.º 8
0
        public async Task When_Error_Get_Total_Shopping_Of_Product(string id)
        {
            //Arrange
            var loggerMock = new Mock <ILogger <MovementService> >();
            Mock <IGenericRepository <Movement> > repositoryMovementMock = new MockMovementRepository().Queryable();
            Mock <IGenericRepository <Product> >  repositoryProductMock  = new MockProductRepository()
                                                                           .GetProductByIdAsync()
                                                                           .UpdateProductAsync()
                                                                           .Queryable();
            var mockUnitOfWork = new MockUnitOfWork().MovementRepository(repositoryMovementMock)
                                 .ProductRepository(repositoryProductMock)
                                 .SaveChangesAsync();

            var movementService = new MovementService(mockUnitOfWork.Object, loggerMock.Object);

            Exception exception = null;

            //Act
            try
            {
                await movementService.GetTotalShoppingProduct(Guid.Parse(id));
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            //Assert
            Assert.True("The product is out of stock and purchases" == exception.Message);
            Assert.True(typeof(BusinessException) == exception.GetType());
        }
Exemplo n.º 9
0
        public void DebugListAllProducts()
        {
            MockProductRepository mockProductRepository = new MockProductRepository();
            List <Product>        products = mockProductRepository.GetAllProducts();

            ProductBrowser productBrowser = new ProductBrowser();

            productBrowser.BrowseListOfProducts(products);
        }
        public void AddNewProduct_InvokeAPI_ReturnNewProduct()
        {
            //Arrange
            IProductRepository _productRepository = new MockProductRepository();
            ProductController  controller         = new ProductController(_productRepository);

            Product newProduct = new Product()
            {
                ProdType      = "Desktop1",
                ProcessorType = "P71",
                Brand         = "Dell1",
                UsbPorts      = 3,
                RamSlots      = 2,
                FormFactor    = "Tower1",
                Quantity      = 10
            };

            //ACT
            JsonResult actualResult = controller.Post(newProduct);

            //var result = JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(JsonConvert.SerializeObject(actualResult));
            //var actProduct = JsonConvert.DeserializeObject<string>(result.SelectToken("Value").ToString());

            //ASSERT
            Assert.AreEqual(actualResult.Value.ToString(), "Product Added Successfully");

            JsonResult actualResult1 = controller.Get();

            var result1     = JsonConvert.DeserializeObject <Newtonsoft.Json.Linq.JObject>(JsonConvert.SerializeObject(actualResult1));
            var actProduct1 = JsonConvert.DeserializeObject <List <Product> >(result1.SelectToken("Value").ToString());


            //ASSERT
            Product expProduct = new Product()
            {
                Id            = 2,
                ProdType      = "Desktop1",
                ProcessorType = "P71",
                Brand         = "Dell1",
                UsbPorts      = 3,
                RamSlots      = 2,
                FormFactor    = "Tower1",
                Quantity      = 10
            };


            Assert.AreEqual(actProduct1[1].Id, expProduct.Id);
            Assert.AreEqual(actProduct1[1].ProdType, expProduct.ProdType);
            Assert.AreEqual(actProduct1[1].Brand, expProduct.Brand);
            Assert.AreEqual(actProduct1[1].ProcessorType, expProduct.ProcessorType);
            Assert.AreEqual(actProduct1[1].Quantity, expProduct.Quantity);
            Assert.AreEqual(actProduct1[1].UsbPorts, expProduct.UsbPorts);
            Assert.AreEqual(actProduct1[1].RamSlots, expProduct.RamSlots);
            Assert.AreEqual(actProduct1[1].FormFactor, expProduct.FormFactor);
        }
        public void GetProductByIdNullTest()
        {
            var db         = new MockProductDBContext();
            var repository = new MockProductRepository(db);
            var controller = new ProductsController(repository);

            var result = controller.Get("0") as NotFoundResult;

            Assert.NotNull(result);
            Assert.Equal(404, result.StatusCode);
        }
        public void A_Null_Object_Caching_Adapter_Will_Prevent_Any_Data_Caching()
        {
            MockProductRepository    mockProductRepository    = new MockProductRepository();
            NullObjectCachingAdapter nullObjectCachingAdapter = new NullObjectCachingAdapter();
            int            categoryId     = 1;
            ProductService productService = new ProductService(mockProductRepository, nullObjectCachingAdapter);

            productService.GetAllProductsIn(categoryId);
            Assert.AreEqual(1, mockProductRepository.NumberOfTimesCalled());

            productService.GetAllProductsIn(categoryId);
            Assert.AreEqual(2, mockProductRepository.NumberOfTimesCalled());
        }
Exemplo n.º 13
0
        public void TestRatingsOnBreadInDetailsView()
        {
            //Arrange
            IBreadRepository   breadRepository   = new MockBreadRepository();
            IProductRepository productRepository = new MockProductRepository();
            IRatingRepository  ratingRepository  = new MockRatingRepository();
            var controller = new BreadController(breadRepository, productRepository, ratingRepository);

            // Act
            var result = controller.BreadView(1);

            // Assert
            Assert.IsType <ViewResult>(result);
        }
Exemplo n.º 14
0
        public async Task When_Delete_Product(string id)
        {
            //Arrange
            var loggerMock = new Mock <ILogger <ProductService> >();
            Mock <IGenericRepository <Product> > repositoryMock = new MockProductRepository().DeleteProductAsync().ExistProductAsync();
            var mockUnitOfWork = new MockUnitOfWork().ProductRepository(repositoryMock).SaveChangesAsync();
            var productService = new ProductService(mockUnitOfWork.Object, loggerMock.Object);

            //Act
            var result = await productService.DeleteAsync(Guid.Parse(id));

            //Assert
            Assert.True(result.Equals(true));
        }
Exemplo n.º 15
0
        public async Task When_Get_All_Product_Service()
        {
            //Arrange
            var loggerMock = new Mock <ILogger <ProductService> >();
            Mock <IGenericRepository <Product> > repositoryMock = new MockProductRepository().GetAllProductAsync();
            var mockUnitOfWork = new MockUnitOfWork().ProductRepository(repositoryMock);
            var productService = new ProductService(mockUnitOfWork.Object, loggerMock.Object);

            //Act
            var result = await productService.GetProductsAsync();

            //Assert
            Assert.NotNull(result);
            Assert.True(result.ToList().Count > 0);
        }
Exemplo n.º 16
0
        public async Task When_Get_Product_By_Name_Service(string name)
        {
            //Arrange
            var loggerMock = new Mock <ILogger <ProductService> >();
            Mock <IGenericRepository <Product> > repositoryMock = new MockProductRepository().Queryable();
            var mockUnitOfWork = new MockUnitOfWork().ProductRepository(repositoryMock);
            var productService = new ProductService(mockUnitOfWork.Object, loggerMock.Object);

            //Act
            var result = await productService.GetProductByNameAsync(name);

            //Assert
            Assert.NotNull(result);
            Assert.True(result.Name.Equals(name));
        }
Exemplo n.º 17
0
        public void TestsTheBreadView()
        {
            //Arrange
            IBreadRepository   breadRepository   = new MockBreadRepository();
            IProductRepository productRepository = new MockProductRepository();
            IRatingRepository  ratingRepository  = new MockRatingRepository();
            var controller = new BreadController(breadRepository, productRepository, ratingRepository);

            // Act
            var result = controller.BreadList();

            // Assert
            Assert.NotNull(result);
            Assert.IsType <ViewResult>(result);
        }
Exemplo n.º 18
0
        public async Task When_Get_Product_By_Id_Service(string id)
        {
            //Arrange
            var loggerMock = new Mock <ILogger <ProductService> >();
            Mock <IGenericRepository <Product> > repositoryMock = new MockProductRepository().GetProductByIdAsync();
            var mockUnitOfWork = new MockUnitOfWork().ProductRepository(repositoryMock);
            var productService = new ProductService(mockUnitOfWork.Object, loggerMock.Object);

            //Act
            var result = await productService.GetProductByIdAsync(Guid.Parse(id));

            //Assert
            Assert.NotNull(result);
            Assert.True(result.Id.Equals(Guid.Parse(id)));
        }
Exemplo n.º 19
0
        public void ListAllProducts()
        {
            Clear();
            var mockProductRepository = new MockProductRepository();

            var products = mockProductRepository.GetAllProducts();

            Echo("Liste des produits : \n");

            foreach (Product product in products)
            {
                Console.WriteLine(product.Name + "\n");
            }

            AskKeyPress("Appuyez sur une touche pour revenir au menu.\n");
            DisplayMainMenu();
        }
        public void GetProductByIdTest()
        {
            var db         = new MockProductDBContext();
            var repository = new MockProductRepository(db);
            var controller = new ProductsController(repository);

            var id = "0d62fd12-7ce3-4b7f-84cb-b12a417786a2";
            var expectedProduct = new Product()
            {
                Id = id, Name = "product 1", Description = "", Price = 9.99m, ImgUri = "uri"
            };

            var result  = controller.Get(id) as ObjectResult;
            var product = result?.Value as Product;

            Assert.NotNull(product);
            Assert.Equal(expectedProduct, product);
        }
        public void EditProductTest()
        {
            var db         = new MockProductDBContext();
            var repository = new MockProductRepository(db);
            var controller = new ProductsController(repository);

            var id            = "0d62fd12-7ce3-4b7f-84cb-b12a417786a2";
            var productToPost = new Product()
            {
                Id = id, Name = "product 11", Description = "new description", Price = 11.00m, ImgUri = "new uri"
            };

            controller.Post(productToPost);
            var result  = controller.Get(id) as ObjectResult;
            var product = result?.Value as Product;

            Assert.NotNull(product);
            Assert.Equal(productToPost, product);
        }
        public void AddProductTest()
        {
            var db         = new MockProductDBContext();
            var repository = new MockProductRepository(db);
            var controller = new ProductsController(repository);

            var id            = Guid.NewGuid().ToString();
            var productToPost = new Product()
            {
                Id = id, Name = "product 3", Description = "", Price = 1.00m, ImgUri = "uri"
            };

            controller.Post(productToPost);
            var result  = controller.Get(id) as ObjectResult;
            var product = result?.Value as Product;

            Assert.NotNull(product);
            Assert.Equal(productToPost, product);
        }
Exemplo n.º 23
0
        static void Main(string[] args)
        {
            var repository = new MockProductRepository();
            var basket     = new BasketService(repository);

            Console.WriteLine("Scanning Products");

            Console.WriteLine("Adding 3 apples to basket...");
            basket.AddProduct(appleBarcode, 3);

            Console.WriteLine("Adding 5 oranges to basket...");
            basket.AddProduct(orangeBarcode, 5);

            Console.WriteLine("Adding 2lbs of bananas to basket...");
            basket.AddWeightedProduct(bananaBarcode, 2);

            Console.WriteLine($"Basket Total: £{basket.GetTotal()}");

            Console.WriteLine("Press any key to exit");
            Console.Read();
        }
Exemplo n.º 24
0
        public async Task When_Get_All_Warehouse_Not_Records()
        {
            //Arrange
            var       loggerMock = new Mock <ILogger <ProductService> >();
            Exception exception  = null;
            Mock <IGenericRepository <Product> > repositoryMock = new MockProductRepository().GetNotProductAsync();
            var mockUnitOfWork = new MockUnitOfWork().ProductRepository(repositoryMock);
            var productService = new ProductService(mockUnitOfWork.Object, loggerMock.Object);

            //Act
            try
            {
                await productService.GetProductsAsync();
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            //Assert
            Assert.True("No products records" == exception.Message);
        }
Exemplo n.º 25
0
        public async Task When_Error_Move_Product_Other_Warehouse()
        {
            //Arrange
            var loggerMock = new Mock <ILogger <MovementService> >();
            Mock <IGenericRepository <Movement> > repositoryMovementMock = new MockMovementRepository().Queryable();
            Mock <IGenericRepository <Product> >  repositoryProductMock  = new MockProductRepository()
                                                                           .GetProductByIdAsync()
                                                                           .UpdateProductAsync()
                                                                           .Queryable();
            var mockUnitOfWork = new MockUnitOfWork().MovementRepository(repositoryMovementMock)
                                 .ProductRepository(repositoryProductMock)
                                 .SaveChangesAsync();
            var movementService = new MovementService(mockUnitOfWork.Object, loggerMock.Object);

            MoveProducts moveProducts = new MoveProducts
            {
                Quantity           = 23,
                ProductId          = Guid.Parse("A16C605C-0A1A-4E63-857F-68019CE2575C"),
                CurrentWarehouseId = Guid.Parse("351BA5AA-C78D-4491-931A-76603D729392"),
                NewWarehouseId     = Guid.Parse("C347ED5D-1F33-49EE-A58D-B7F2310192A6")
            };

            Exception exception = null;

            //Act
            try
            {
                await movementService.MoveProductOtherWarehouse(moveProducts);
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            //Assert
            Assert.True("product not found in the selected warehouse" == exception.Message);
            Assert.True(typeof(BusinessException) == exception.GetType());
        }
Exemplo n.º 26
0
        public async Task When_Error_Threshold_Products_In_Warehouse()
        {
            //Arrange
            var loggerMock = new Mock <ILogger <MovementService> >();
            Mock <IGenericRepository <Movement> > repositoryMovementMock = new MockMovementRepository().Queryable();
            Mock <IGenericRepository <Product> >  repositoryProductMock  = new MockProductRepository()
                                                                           .GetProductByIdAsync()
                                                                           .UpdateProductAsync()
                                                                           .Queryable();
            var mockUnitOfWork = new MockUnitOfWork().MovementRepository(repositoryMovementMock)
                                 .ProductRepository(repositoryProductMock)
                                 .SaveChangesAsync();
            var movementService = new MovementService(mockUnitOfWork.Object, loggerMock.Object);

            Movement movement = new Movement
            {
                Type        = true,
                Quantity    = 11000,
                ProductId   = Guid.Parse("B99BC862-C515-4D61-97D8-4D2B188A19F3"),
                WarehouseId = Guid.Parse("C347ED5D-1F33-49EE-A58D-B7F2310192A6")
            };

            Exception exception = null;

            //Act
            try
            {
                await movementService.InsertProductWareahouse(movement);
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            //Assert
            Assert.True("No more products can be loaded, as they exceed the established threshold. For logistical reasons there is no place to store them." == exception.Message);
            Assert.True(typeof(BusinessException) == exception.GetType());
        }
Exemplo n.º 27
0
        public async Task When_Error_Exceeds_Maximun_Limint_Products_In_Warehouse()
        {
            //Arrange
            var loggerMock = new Mock <ILogger <MovementService> >();
            Mock <IGenericRepository <Movement> > repositoryMovementMock = new MockMovementRepository().Queryable();
            Mock <IGenericRepository <Product> >  repositoryProductMock  = new MockProductRepository()
                                                                           .GetProductByIdAsync()
                                                                           .UpdateProductAsync()
                                                                           .Queryable();
            var mockUnitOfWork = new MockUnitOfWork().MovementRepository(repositoryMovementMock)
                                 .ProductRepository(repositoryProductMock)
                                 .SaveChangesAsync();
            var movementService = new MovementService(mockUnitOfWork.Object, loggerMock.Object);

            Movement movement = new Movement
            {
                Type        = true,
                Quantity    = 325,
                ProductId   = Guid.Parse("B99BC862-C515-4D61-97D8-4D2B188A19F3"),
                WarehouseId = Guid.Parse("C347ED5D-1F33-49EE-A58D-B7F2310192A6")
            };

            Exception exception = null;

            //Act
            try
            {
                await movementService.InsertProductWareahouse(movement);
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            //Assert
            Assert.True("Only 320 units of the selected product can be loaded." == exception.Message);
            Assert.True(typeof(BusinessException) == exception.GetType());
        }
        public void GetAllProductsTest()
        {
            var db         = new MockProductDBContext();
            var repository = new MockProductRepository(db);
            var controller = new ProductsController(repository);

            var expectedProducts = new List <Product>();

            expectedProducts.Add(new Product()
            {
                Id = "0d62fd12-7ce3-4b7f-84cb-b12a417786a2", Name = "product 1", Description = "", Price = 9.99m, ImgUri = "uri"
            });
            expectedProducts.Add(new Product()
            {
                Id = "a7c7c58c-c9ae-4179-b278-d702f9c7533d", Name = "product 2", Description = "", Price = 99.99m, ImgUri = "uri"
            });

            var result   = controller.Get() as ObjectResult;
            var products = result?.Value as IEnumerable <Product>;

            Assert.NotNull(products);
            Assert.True(expectedProducts.SequenceEqual(products));
        }
Exemplo n.º 29
0
        public async Task When_No_Return_Product_By_Id_Service(string id)
        {
            //Arrange
            var       loggerMock = new Mock <ILogger <ProductService> >();
            Exception exception  = null;
            Mock <IGenericRepository <Product> > repositoryMock = new MockProductRepository().GetProductByIdAsync();
            var mockUnitOfWork = new MockUnitOfWork().ProductRepository(repositoryMock);
            var productService = new ProductService(mockUnitOfWork.Object, loggerMock.Object);

            //Act
            try
            {
                await productService.GetProductByIdAsync(Guid.Parse(id));
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            //Assert
            Assert.True("Product doesn't exist" == exception.Message);
            Assert.True(typeof(BusinessException) == exception.GetType());
        }
Exemplo n.º 30
0
        public async Task When_Get_Total_Shopping_Of_Product(string id)
        {
            //Arrange
            var loggerMock = new Mock <ILogger <MovementService> >();
            Mock <IGenericRepository <Movement> > repositoryMovementMock = new MockMovementRepository().Queryable();
            Mock <IGenericRepository <Product> >  repositoryProductMock  = new MockProductRepository()
                                                                           .GetProductByIdAsync()
                                                                           .UpdateProductAsync()
                                                                           .Queryable();
            var mockUnitOfWork = new MockUnitOfWork().MovementRepository(repositoryMovementMock)
                                 .ProductRepository(repositoryProductMock)
                                 .SaveChangesAsync();

            var movementService = new MovementService(mockUnitOfWork.Object, loggerMock.Object);

            //Act
            var result = await movementService.GetTotalShoppingProduct(Guid.Parse(id));

            //Assert
            Assert.NotNull(result);
            Assert.True(result.ShoppingQuantity.Equals(27));
            Assert.True(result.TotalPriceShopping.Equals(7283.70M));
        }