public void EditProductWithPositiveIdTest()
        {
            //Arrange
            FakeProductRepository  fakeRepo   = new FakeProductRepository();
            InputProductController controller = new InputProductController(fakeRepo);

            Product product = new Product()
            {
                ProductId     = 3,
                NameOfProduct = "Surata Tofu",
                Rating        = 4,
                Review        = "great product",
            };

            //Add it first
            controller.Index(product);
            //Retrieve it, then update it
            Product retrievedProduct = fakeRepo.Products.ToList()[0];

            retrievedProduct.NameOfProduct = "updated";
            retrievedProduct.Rating        = 3;
            controller.Edit(retrievedProduct);
            //retrieve it again to check if updated
            Product updatedProduct = fakeRepo.Products.ToList()[0];

            Assert.Equal("updated", updatedProduct.NameOfProduct);
        }
Beispiel #2
0
        public void MuiltChangeTest()
        {
            var unitOfWorkObj = new EfUnitOfWork(null /*ILogger*/); //{ DbContextFactory = _dbContextFactory };

            var uoWdbContextProvider = new EfUnitOfWorkDbContextProvider(new EfUnitOfWorkManager(IoCManager, null /*ILogger*/), IoCManager, null /*ILogger*/);
            var orderRepo            = new FakeOrderRepository(uoWdbContextProvider);
            var productRepo          = new FakeProductRepository(uoWdbContextProvider);
            var userRepo             = new FakeUserRepository(uoWdbContextProvider);

            unitOfWorkObj.Begin(new UnitOfWorkOption());
            try
            {
                //orderRepo.Insert(FakeOrder.Fake());
                productRepo.InsertAsync(FakeProduct.Fake()).GetAwaiter();
                userRepo.InsertAsync(FakeUser.Fake()).GetAwaiter();
                unitOfWorkObj.CommitAsync().GetAwaiter().GetResult();
            }
            catch (Exception ex)
            {
                //Assert.F("发生异常:" + ex.Message);
            }
            finally
            {
                unitOfWorkObj.Dispose();
            }
        }
Beispiel #3
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            IProductRepository productRepository = new FakeProductRepository();
            ProductViewModel   viewModel         = new ProductViewModel(productRepository);

            this.ucProducts.DataContext = viewModel;
        }
        public void SetUp()
        {
            var auctionRespository = new FakeAuctionRepository();
            var productRespository = new FakeProductRepository();

            productRespository.Add(new AntiqueProduct() { Id = productId });
            auctionRespository.AddAuction(new Auction() { Id = auciontId });
            sut = new AuctionFacade(auctionRespository, productRespository);
        }
Beispiel #5
0
        public void GetProductWithInValidIDThrowsException()
        {
            // Arrange
            IProductRepository productRepository = new FakeProductRepository();
            ProductService productService = new ProductService(productRepository);

            // Act & Assert
            Assert.Throws<ProductNotFoundException>(() => productService.GetByID("invalid-id"));
        }
        public void DeleteProductHandler_valid()
        {
            var repository = new FakeProductRepository();
            var handler    = new ProductHandler(repository);

            string id     = repository.GetAll().FirstOrDefault().Id;
            var    result = handler.Delete(id);

            Assert.True(result.Success, result.Message);
        }
        public void DeleteProductHandler_NotExists_Invalid()
        {
            var repository = new FakeProductRepository();
            var handler    = new ProductHandler(repository);

            string id     = Guid.NewGuid().ToString();
            var    result = handler.Delete(id);

            Assert.False(result.Success, result.Message);
        }
        public void IsIndexReturnsAllProducts()
        {
            // arrange
            IProductRepository fakeProductRepository = new FakeProductRepository();
            ProductController  productController     = new ProductController(fakeProductRepository);
            // act
            ViewResult     viewResult = productController.Index() as ViewResult;
            List <Product> products   = viewResult.Model as List <Product>;

            // assert
            Assert.AreEqual(products.Count, 3);
        }
        public void AddProductHandler_valid()
        {
            var repository = new FakeProductRepository();
            var handler = new ProductHandler(repository);

            var command = new ProductCreateCommand();
            command.Name = "Product D";
            command.Price = 5.5m;

            var result = handler.Create(command);
            Assert.True(result.Success, result.Message);
        }
        public void IsGetProductReturnsTheCorrectProduct()
        {
            // arrange
            var fakeProductRepository = new FakeProductRepository();
            var productController     = new ProductController(fakeProductRepository);
            // act
            var     viewResult = productController.GetProduct(2) as ViewResult;
            Product product    = viewResult.Model as Product;

            // assert
            Assert.AreEqual(product.Id, 2);
        }
Beispiel #11
0
        public void GetProductWithValidIDReturnsProduct()
        {
            // Arrange
            IProductRepository productRepository = new FakeProductRepository();
            ProductService productService = new ProductService(productRepository);

            // Act
            Product product = productService.GetByID("spr-product");

            // Assert
            Assert.IsNotNull(product);
        }
        public void GetProductModelShouldContainTheRightProduct()
        {
            // Arrange
            var fakeProductRepository = new FakeProductRepository();
            var productController     = new ProductController(fakeProductRepository);
            // Act
            var     viewResult = productController.GetProduct(2) as ViewResult;
            Product product    = viewResult.Model as Product;

            // Assert
            Assert.AreEqual(product.Id, 2);
        }
Beispiel #13
0
        public void AddProductHandler_Lenght_Name_4_Invalid()
        {
            var repository = new FakeProductRepository();
            var handler    = new ProductHandler(repository);

            var command = new ProductCreateCommand();

            command.Name  = "Pro";
            command.Price = 5.5m;

            var result = handler.Handle(command);

            Assert.False(result.Success, result.Message);
        }
Beispiel #14
0
        public void AddPromotionHandler_price_invalid()
        {
            var repository = new FakeProductRepository();
            var handler    = new ProductHandler(repository);

            var command = new ProductPromotionCommand();

            command.Id    = repository.GetAll().FirstOrDefault().Id;
            command.Price = 11.5m;

            var result = handler.Handle(command);

            Assert.False(result.Success, result.Message);
        }
Beispiel #15
0
        public void AddProductHandler_Negative_Price_Invalid()
        {
            var repository = new FakeProductRepository();
            var handler    = new ProductHandler(repository);

            var command = new ProductCreateCommand();

            command.Name  = "Product D";
            command.Price = -1;

            var result = handler.Handle(command);

            Assert.False(result.Success, result.Message);
        }
        public void UpdateProductHandler_Null_Name_Invalid()
        {
            var repository = new FakeProductRepository();
            var handler    = new ProductHandler(repository);

            var command = new ProductUpdateCommand();

            command.Id    = repository.GetAll().FirstOrDefault().Id;
            command.Name  = null;
            command.Price = 5.5m;

            var result = handler.Update(command);

            Assert.False(result.Success, result.Message);
        }
        public void DeleteProductHandler_NotExists_Invalid()
        {
            var repository = new FakeProductRepository();
            var handler    = new ProductHandler(repository);

            string id = repository.GetAll().FirstOrDefault().Id;

            var command = new ProductDeleteCommand();

            command.Id = id;

            var result = handler.Handle(command);

            Assert.True(result.Success, result.Message);
        }
Beispiel #18
0
        public void Get__Returns_NotFound()
        {
            // arrange
            var repo       = FakeProductRepository.Empty();
            var controller = this.BuildController(repo);

            // act
            var id       = 0;
            var expected = repo.Get(id);
            var actual   = controller.Get(id);

            // assert
            Assert.IsNull(expected, "Repository mis-configured.");
            Assert.IsInstanceOfType(actual, typeof(NotFoundResult), "Expected NotFoundResult.");
        }
Beispiel #19
0
        private static void GetProductsTest()
        {
            IOptions <FakeOptions> options = Options.Create(new FakeOptions {
                Quantity = 100
            });

            IProductRepository productRepository = new FakeProductRepository(new ProductFaker(), options);

            var products = productRepository.Get("red");

            foreach (var product in products)
            {
                Console.WriteLine($"{product.Name} {product.Color}");
            }
        }
        public void UpdateProductHandler_valid()
        {
            var repository = new FakeProductRepository();
            var handler    = new ProductHandler(repository);

            var command = new ProductUpdateCommand();

            command.Id    = repository.GetAll().FirstOrDefault().Id;
            command.Name  = "Product X";
            command.Price = 9.5m;

            var result = handler.Handle(command);

            Assert.True(result.Success, result.Message);
        }
Beispiel #21
0
        public void SetUp()
        {
            var auctionRespository = new FakeAuctionRepository();
            var productRespository = new FakeProductRepository();

            productRespository.Add(new AntiqueProduct()
            {
                Id = productId
            });
            auctionRespository.AddAuction(new Auction()
            {
                Id = auciontId
            });
            sut = new AuctionFacade(auctionRespository, productRespository);
        }
Beispiel #22
0
        public void IndexModelShouldContainTheResultOfTheSearch()
        {
            // Arrange
            IRepositoryProducts fakeProductRepository = new FakeProductRepository();
            IReadFromBrowser    fakeReadCookie        = new FakeReadCookie();
            IWriteToBrowser     fakeWriteCookie       = new FakeWriteCookie();

            HomeController homeController = new HomeController(fakeProductRepository, fakeReadCookie, fakeWriteCookie);

            // Act
            ViewResult     viewResult = homeController.Search("T") as ViewResult;
            List <Product> products   = viewResult.Model as List <Product>;

            // Should Be
            products.Count.Should().Be(2);
        }
Beispiel #23
0
        public void GetAll__Returns_Populated_IEnumerable()
        {
            // arrange
            var fakeRepo   = FakeProductRepository.Multiple();
            var controller = this.BuildController(fakeRepo);

            // act
            var actual = controller.GetAll();
            var result = actual as OkNegotiatedContentResult <IEnumerable <Product> >;

            // assert
            Assert.IsNotNull(result, "Expected OkNegotiatedContentResult.");
            Assert.IsNotNull(result.Content, "Expected Content.");
            Assert.IsInstanceOfType(result.Content, typeof(IEnumerable <Product>), "Expected Content as IEnumerable<Product>.");
            Assert.AreEqual(result.Content.Count(), fakeRepo.Count, "Expected matching Count.");
        }
Beispiel #24
0
        public void IndexModelShouldBeListOfProducts_UsingFake()
        {
            // Arrange
            var productRepository = new FakeProductRepository();

            productRepository.Products = new List <Product> {
                new Product(), new Product(), new Product()
            }.AsQueryable();
            var productController = new ProductController(productRepository);

            // Act
            var result = productController.Index() as ViewResult;

            // Assert
            Assert.AreEqual(typeof(List <Product>), result.Model.GetType());
        }
        public void AddProductTest()
        {
            //////////Tests Add Product
            ////////////// and GetProductByProductID

            //Arrange
            FakeProductRepository repo = new FakeProductRepository();
            Product testProduct1       = new Product();

            testProduct1.ProductID   = 1;
            testProduct1.ProductName = "TLL18 Test";
            testProduct1.Price       = 39.99M;
            //testProduct1.Shipping = 5M;
            testProduct1.InStock = true;

            //Act
            repo.AddProduct(testProduct1);

            //Assert
            Product contentProductRepo = repo.GetProductByProductID(1);

            Assert.AreEqual(contentProductRepo.ProductID, testProduct1.ProductID);
            Assert.AreEqual(contentProductRepo.ProductName, testProduct1.ProductName);

            //////////////////////
            //////////////////////
            //////////Tests Add Product
            ////////////// and GetProductByProductName
            FakeProductRepository repo2 = new FakeProductRepository();
            Product testProduct2        = new Product();

            testProduct2.ProductID   = 2;
            testProduct2.ProductName = "TLL24 Test";
            testProduct2.Price       = 49.99M;
            //testProduct2.Shipping = 5M;
            testProduct2.InStock = true;

            //Act
            repo.AddProduct(testProduct2);

            //Assert
            Product contentProductRepo2 = repo.GetProductByProductName("TLL24 Test");

            Assert.AreEqual(contentProductRepo2.ProductID, testProduct2.ProductID);
            Assert.AreEqual(contentProductRepo2.ProductName, testProduct2.ProductName);
        }
Beispiel #26
0
        public void Get__Returns_Product()
        {
            // arrange
            var repo       = FakeProductRepository.Single();
            var controller = this.BuildController(repo);

            // act
            var id       = 1;
            var expected = repo.Get(id);
            var actual   = controller.Get(id);
            var result   = actual as OkNegotiatedContentResult <Product>;

            // assert
            Assert.IsNotNull(expected, "Repository mis-configured.");
            Assert.IsNotNull(result, "Expected OkNegotiatedContentResult.");
            Assert.AreEqual(expected, result.Content, "Products do not match.");
        }
        public void AddProductTest()
        {
            //////////Tests Add Product
            ////////////// and GetProductByProductID

            //Arrange
            FakeProductRepository repo = new FakeProductRepository();
            Product testProduct1 = new Product();
            testProduct1.ProductID = 1;
            testProduct1.ProductName = "TLL18 Test";
            testProduct1.Price = 39.99M;
            //testProduct1.Shipping = 5M;
            testProduct1.InStock = true;

            //Act
            repo.AddProduct(testProduct1);

            //Assert
            Product contentProductRepo = repo.GetProductByProductID(1);
            Assert.AreEqual(contentProductRepo.ProductID, testProduct1.ProductID);
            Assert.AreEqual(contentProductRepo.ProductName, testProduct1.ProductName);

            //////////////////////
            //////////////////////
            //////////Tests Add Product
            ////////////// and GetProductByProductName
            FakeProductRepository repo2 = new FakeProductRepository();
            Product testProduct2 = new Product();
            testProduct2.ProductID = 2;
            testProduct2.ProductName = "TLL24 Test";
            testProduct2.Price = 49.99M;
            //testProduct2.Shipping = 5M;
            testProduct2.InStock = true;

            //Act
            repo.AddProduct(testProduct2);

            //Assert
            Product contentProductRepo2 = repo.GetProductByProductName("TLL24 Test");
            Assert.AreEqual(contentProductRepo2.ProductID, testProduct2.ProductID);
            Assert.AreEqual(contentProductRepo2.ProductName, testProduct2.ProductName);
        }
        public void GetAllItemOfSpsipicUser()
        {
            // Arrange
            IRepositoryUser     fakeRepositoryUser     = new FakeUserRepository();
            IRepositoryProducts fakeRepositoryProducts = new FakeProductRepository();
            IReadFromBrowser    fakeReadCookie         = new FakeReadCookie();
            ICheckUserExist     fakeCheckUser          = new FakeCheckUser();
            ILogger             fakeLogger             = new FakeLogger();


            ProductController productController = new ProductController(fakeRepositoryProducts, fakeRepositoryUser,
                                                                        fakeReadCookie, fakeCheckUser, fakeLogger);

            // Act
            ViewResult     viewResult = productController.MyProducts() as ViewResult;
            List <Product> products   = viewResult.Model as List <Product>;

            // Should Be
            products.Count.Should().Be(2);
        }
        public void AddProductTest()
        {
            //Arrange
            FakeProductRepository  fakeRepo   = new FakeProductRepository();
            InputProductController controller = new InputProductController(fakeRepo);
            Product product = new Product()
            {
                ProductId     = -1,
                NameOfProduct = "Surata Tofu",
                Rating        = 4,
                Review        = "great product",
            };

            //Act
            controller.Index(product);

            //Assert that my index method in the controller did add my product to the list in my fake repo
            Product retrievedProduct = fakeRepo.Products.ToList()[0];

            Assert.Equal("great product", retrievedProduct.Review);
        }
        public void MuiltChangeTest()
        {
            var unitOfWorkObj = new EfUnitOfWork();//{ DbContextFactory = _dbContextFactory };

            var unitOfWorkDbContextFactory = new DefualtDbContextFactory()
            {
                UnitOfWork = unitOfWorkObj
            };
            var orderRepo = new FakeOrderRepository()
            {
                DbContextFactory = unitOfWorkDbContextFactory
            };
            var productRepo = new FakeProductRepository()
            {
                DbContextFactory = unitOfWorkDbContextFactory
            };
            var userRepo = new FakeUserRepository()
            {
                DbContextFactory = unitOfWorkDbContextFactory
            };

            unitOfWorkObj.BeginTransaction(new UnitOfWorkOptions());
            try
            {
                //orderRepo.Insert(FakeOrder.Fake());
                productRepo.Insert(FakeProduct.Fake());
                userRepo.Insert(FakeUser.Fake());
                unitOfWorkObj.Commit();
            }
            catch (Exception ex)
            {
                unitOfWorkObj.RollBack();
                Assert.Fail("发生异常:" + ex.Message);
            }
            finally
            {
                unitOfWorkObj.Dispose();
            }
        }
        public void EditProductWith0asIdTest()
        {
            //Arrange
            FakeProductRepository  fakeRepo   = new FakeProductRepository();
            InputProductController controller = new InputProductController(fakeRepo);

            Product product = new Product()
            {
                ProductId     = 0,
                NameOfProduct = "Surata Tofu",
                Rating        = 4,
                Review        = "great product",
            };

            //Act
            controller.Edit(product);
            //because products' id is 0, it should be added
            Assert.Single(fakeRepo.Products.ToList());
            Product retrievedProduct = fakeRepo.Products.ToList()[0];

            Assert.Equal("Surata Tofu", retrievedProduct.NameOfProduct);
        }
        public void RemoveProductTest()
        {
            //Arrange
            FakeProductRepository  fakeRepo   = new FakeProductRepository();
            InputProductController controller = new InputProductController(fakeRepo);

            Product product = new Product()
            {
                ProductId     = -2,
                NameOfProduct = "Surata Tofu",
                Rating        = 4,
                Review        = "great product",
            };

            //Act
            //Add it, then can delete it
            controller.Index(product);
            Assert.Single(fakeRepo.Products.ToList());
            controller.Delete(product);

            //Assert that my delete method in the controller did remove my product in the list of my fake repo
            Assert.Empty(fakeRepo.Products.ToList());
        }
 public ProductController(FakeProductRepository productRepository)
 {
     _productRepository = productRepository;
 }
Beispiel #34
0
        public ProductsControllerTest()
        {
            IProductRepository productRepository = new FakeProductRepository();

            _controller = new ProductsController(productRepository);
        }