Esempio n. 1
0
        public void JsonSerializationTest()
        {
            File.Delete(@"..\..\products.json");
            CollectionProductModel model = new CollectionProductModel(new JsonProductSerializer());
            Product product1             = new Product("p1", "Dog Dinner", 1.30);
            //serializes product collection
            bool created = model.Create(product1);

            //deserializes product collection
            model = new CollectionProductModel(new JsonProductSerializer());
            //assert
            Assert.True(model.Products.Contains(product1));
        }
        public void SelectById_ProductId_ReturnsProduct()
        {
            //arrange
            CollectionProductModel model = new CollectionProductModel();
            Product product = new Product("p1", "Dog Dinner", 1.20);

            model.Create(product);
            //act
            Product retrievedProduct = model.SelectById("p1");

            //assert
            Assert.NotNull(retrievedProduct);
            Assert.Equal(product, retrievedProduct);
        }
        public void Delete_IdOfProduct_RemovesProductFromCollection()
        {
            //arrange
            CollectionProductModel model = new CollectionProductModel();
            Product product = new Product("p1", "Dog Dinner", 1.20);

            model.Create(product);
            //act
            bool deleted = model.Delete("p1");
            //assert
            Product retrievedProduct = model.SelectById("p1");

            Assert.Null(retrievedProduct);
            Assert.True(deleted);
        }
        public void CreateProductCallsWriteProductMethodOfSerializer()
        {
            //arrange
            Mock <IProductSerializer> serializer = new Mock <IProductSerializer>();

            serializer.Setup(s => s.ReadProducts()).Returns(new List <Product>());
            CollectionProductModel model = new CollectionProductModel(serializer.Object);
            Product product1             = new Product("p1", "Dog Dinner", 1.20);

            //act
            bool created = model.Create(product1);

            //assert
            serializer.Verify(s => s.WriteProducts(It.IsAny <ICollection <Product> >()));
        }
        public void Create_Product_AddsProductToCollectionn()
        {
            //arrange
            CollectionProductModel model = new CollectionProductModel();
            Product product = new Product("p1", "Dog Dinner", 1.20);
            //act
            bool added = model.Create(product);
            //assert
            ICollection <Product> products = model.Products;

            Assert.NotNull(products);
            Assert.Equal(1, products.Count);
            Assert.True(products.Contains(product));
            Assert.True(added);
        }
        public void Update_Product_ModifiesProductInCollection()
        {
            //arrange
            CollectionProductModel model = new CollectionProductModel();
            Product product        = new Product("p1", "Dog Dinner", 1.20);
            Product updatedProduct = new Product("p1", "Dog Dinner", 1.40);

            model.Create(product);
            //act
            bool updated = model.Update(updatedProduct);
            //assert
            Product retrievedProduct = model.SelectById("p1");

            Assert.NotNull(retrievedProduct);
            Assert.Equal(1.40, retrievedProduct.CostPrice);
            Assert.True(updated);
        }
        public void SelectByName_PartOfProductName_ReturnsMatchingProducts()
        {
            //arrange
            CollectionProductModel model = new CollectionProductModel();
            Product product1             = new Product("p1", "Dog Dinner", 1.20);
            Product product2             = new Product("p2", "Fork", 0.4);

            model.Create(product1);
            model.Create(product2);
            //act
            ICollection <Product> products = model.SelectByName("Dog");

            //assert
            Assert.NotNull(products);
            Assert.Equal(1, products.Count);
            Assert.True(products.Contains(product1));
        }