public void BasketService_Validate_InvalidAmount()
        {
            var productRepo = new PhotoProductMemoryRepository();

            productRepo.Add(new PhotoProduct {
                Id = "42", Name = "Alpha"
            });;
            var productService = new PhotoProductService(productRepo);

            var repo    = new BasketMemoryRepository();
            var service = new BasketService(repo, productService);

            //1. create basket
            var basket = service.Create();

            //2. add product from product service
            var product = productService.Get("42");

            basket.Add(product, 1);

            //3. Change amount
            basket.Contents[0].Amount = 0;

            //3. Validate it against the service
            var validationResult = service.Validate(basket);

            Assert.IsFalse(validationResult, "Amount is 0, so the basket should be unvalid.");
        }
Пример #2
0
        public void BasketsController_GetBasket()
        {
            var productRepo    = new PhotoProductMemoryRepository();
            var productService = new PhotoProductService(productRepo);
            var repo           = new BasketMemoryRepository();

            repo.Add(new Basket {
                Id = "Aruba", Created = DateTime.Now, Modified = DateTime.Now
            });
            var service = new BasketService(repo, productService);

            var controller = new BasketsController(service, productService);

            var result = controller.Get("Aruba");

            Assert.IsNotNull(result, "There should be a result.");
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));

            var okResult = result as OkObjectResult;

            Assert.IsNotNull(okResult.Value, "Value should not be null.");
            Assert.IsInstanceOfType(okResult.Value, typeof(BasketModel));

            var basket = okResult.Value as BasketModel;

            Assert.IsNotNull(basket, "The retrieved basket should not be null.");
            Assert.AreEqual("Aruba", basket.Id);
        }
Пример #3
0
        public void BasketsController_RemoveBasketItem()
        {
            //prepare dataset: a product, a basket and a basket item
            var product = new PhotoProduct {
                Name = "Alpha", Id = "42"
            };
            var basket = new Basket {
                Id = "Aruba", Created = DateTime.Now, Modified = DateTime.Now
            };
            var basketItem = basket.Add(product, 1337);

            //prepare the ceremonies: the repo's, services and the controller
            var productRepo = new PhotoProductMemoryRepository();

            productRepo.Add(product);
            var productService = new PhotoProductService(productRepo);

            var repo = new BasketMemoryRepository();

            repo.Add(basket);

            var service = new BasketService(repo, productService);

            var controller = new BasketsController(service, productService);

            //actual test
            var result = controller.RemoveBasketItem("Aruba", basket.Contents[0].Id);

            Assert.IsNotNull(result, "There should be a result.");
            Assert.IsInstanceOfType(result, typeof(OkResult));

            //check result in original basket
            Assert.AreEqual(0, basket.Contents.Count, "There should be no basket items anymore.");
        }
        public void PhotoProductMemoryRepositoryRepository_Add_Update()
        {
            var initialProduct = new PhotoProduct {
                Name = "Alpha"
            };

            var repo = new PhotoProductMemoryRepository();

            repo.Add(initialProduct);

            var updateProduct = new PhotoProduct {
                Id = initialProduct.Id, Name = "Beta"
            };

            repo.Add(updateProduct);

            var repoProduct = repo.Get(updateProduct.Id);

            Assert.IsNotNull(repoProduct, "Product should be present in the repository.");
            Assert.AreEqual("Beta", repoProduct.Name, "Product should now be called Beta.");

            Assert.AreSame(updateProduct, repoProduct, "Objects should be the same.");

            Assert.AreNotSame(initialProduct, updateProduct, "Objects should be the same.");
        }
        public void PhotoProductMemoryRepositoryRepository_Get_NotExist()
        {
            var repo    = new PhotoProductMemoryRepository();
            var product = repo.Get("Hoi");

            Assert.IsNull(product, "Repository should be empty.");
        }
Пример #6
0
        public void BasketsController_AddBasketItem()
        {
            var productRepo = new PhotoProductMemoryRepository();

            productRepo.Add(new PhotoProduct {
                Name = "Alpha", Id = "42"
            });
            var productService = new PhotoProductService(productRepo);

            var repo = new BasketMemoryRepository();

            repo.Add(new Basket {
                Id = "Aruba", Created = DateTime.Now, Modified = DateTime.Now
            });
            var service = new BasketService(repo, productService);

            var controller = new BasketsController(service, productService);

            var result = controller.AddBasketItem("Aruba", "42", 1337);

            Assert.IsNotNull(result, "There should be a result.");
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));

            var okResult = result as OkObjectResult;

            Assert.IsNotNull(okResult.Value, "Value should not be null.");
            Assert.IsInstanceOfType(okResult.Value, typeof(BasketItemModel));

            var item = okResult.Value as BasketItemModel;

            Assert.IsNotNull(item, "New basket item should be present");
            Assert.IsNotNull(item.Content, "New basket item content should be present.");
            Assert.AreEqual("42", item.Content.Id, "Content identifier should be 42.");
            Assert.AreEqual(1337u, item.Amount, "The amount should be 1337.");
        }
Пример #7
0
        public void ProductController_GetAll_Paging()
        {
            var repo = new PhotoProductMemoryRepository();

            repo.Add(new PhotoProduct {
                Id = "1", Name = "Alpha"
            });
            repo.Add(new PhotoProduct {
                Id = "2", Name = "Beta"
            });
            repo.Add(new PhotoProduct {
                Id = "3", Name = "Gamma"
            });

            var service    = new PhotoProductService(repo);
            var controller = new ProductsController(service);

            var result = controller.Get(page: 2, pageSize: 1);

            Assert.IsNotNull(result, "There should be a result.");
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));

            var okResult = result as OkObjectResult;

            Assert.IsNotNull(okResult.Value, "Value should not be null.");
            Assert.IsInstanceOfType(okResult.Value, typeof(IEnumerable <ProductModel>));

            var list = (okResult.Value as IEnumerable <ProductModel>).ToList();

            Assert.AreEqual(1, list.Count, "List count should be 1.");
            Assert.AreEqual("Beta", list[0].Name, "First element should be Beta.");
        }
Пример #8
0
        public void ProductController_Get()
        {
            var repo = new PhotoProductMemoryRepository();

            repo.Add(new PhotoProduct {
                Id = "1", Name = "Alpha"
            });
            repo.Add(new PhotoProduct {
                Id = "2", Name = "Beta"
            });
            repo.Add(new PhotoProduct {
                Id = "3", Name = "Gamma"
            });

            var service    = new PhotoProductService(repo);
            var controller = new ProductsController(service);

            var result = controller.Get("2");

            Assert.IsNotNull(result, "There should be a result.");
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));

            var okResult = result as OkObjectResult;

            Assert.IsNotNull(okResult.Value, "Value should not be null.");
            Assert.IsInstanceOfType(okResult.Value, typeof(ProductModel));

            var product = okResult.Value as ProductModel;

            Assert.IsNotNull(product, "Product 2 should be present.");
            Assert.AreEqual("Beta", product.Name, "Name of the second product should be Beta.");
        }
Пример #9
0
        public void ProductController_GetAll_InvalidPageSize_BadRequest()
        {
            var repo       = new PhotoProductMemoryRepository();
            var service    = new PhotoProductService(repo);
            var controller = new ProductsController(service);

            var result = controller.Get(pageSize: 0);

            Assert.IsNotNull(result, "There should be a result.");
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
        }
Пример #10
0
        public void ProductController_Get_NotFound()
        {
            var repo       = new PhotoProductMemoryRepository();
            var service    = new PhotoProductService(repo);
            var controller = new ProductsController(service);

            var result = controller.Get("Hoi");

            Assert.IsNotNull(result, "There should be a result.");
            Assert.IsInstanceOfType(result, typeof(NotFoundResult));
        }
        public void PhotoProductMemoryRepositoryRepository_Add()
        {
            var product = new PhotoProduct {
                Name = "Alpha"
            };

            var repo = new PhotoProductMemoryRepository();

            repo.Add(product);

            var repoProduct = repo.Get(product.Id);

            Assert.AreSame(product, repoProduct, "Objects should be the same.");
        }
        public void BasketService_Validate_InvalidId()
        {
            var productRepo    = new PhotoProductMemoryRepository();
            var productService = new PhotoProductService(productRepo);

            var repo    = new BasketMemoryRepository();
            var service = new BasketService(repo, productService);

            var basket = new Basket {
                Id = ""
            };
            var validationResult = service.Validate(basket);

            Assert.IsFalse(validationResult, "Id is not set, so the basket should be invalid.");
        }
        public void BasketService_Store_InvalidBasked()
        {
            var productRepo    = new PhotoProductMemoryRepository();
            var productService = new PhotoProductService(productRepo);

            var repo    = new BasketMemoryRepository();
            var service = new BasketService(repo, productService);

            //no identifier - this basket is not valid
            var basket = new Basket {
                Id = null
            };

            //this should fail
            service.Store(basket);
        }
        public void BasketService_Get_NotFound()
        {
            var productRepo    = new PhotoProductMemoryRepository();
            var productService = new PhotoProductService(productRepo);

            var repo = new BasketMemoryRepository();

            repo.Add(new Basket {
                Id = "Aruba", Created = DateTime.Now, Modified = DateTime.Now
            });
            repo.Add(new Basket {
                Id = "Belgium", Created = DateTime.Now, Modified = DateTime.Now
            });
            var service = new BasketService(repo, productService);

            var basket = service.Get("Congo");

            Assert.IsNull(basket, "Basket Congo should be null.");
        }
Пример #15
0
        public void BasketsController_AddBasketItem_InvalidProduct_BadRequest()
        {
            var productRepo    = new PhotoProductMemoryRepository();
            var productService = new PhotoProductService(productRepo);

            var repo = new BasketMemoryRepository();

            repo.Add(new Basket {
                Id = "Aruba", Created = DateTime.Now, Modified = DateTime.Now
            });
            var service = new BasketService(repo, productService);

            var controller = new BasketsController(service, productService);

            var result = controller.AddBasketItem("Aruba", "XXX", 1);

            Assert.IsNotNull(result, "There should be a result.");
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
        }
        public void BasketService_Get()
        {
            var productRepo    = new PhotoProductMemoryRepository();
            var productService = new PhotoProductService(productRepo);

            var repo = new BasketMemoryRepository();

            repo.Add(new Basket {
                Id = "Aruba", Created = DateTime.Now, Modified = DateTime.Now
            });
            repo.Add(new Basket {
                Id = "Belgium", Created = DateTime.Now, Modified = DateTime.Now
            });
            var service = new BasketService(repo, productService);

            var basket = service.Get("Belgium");

            Assert.IsNotNull(basket, "Basket should not be null.");
            Assert.AreEqual("Belgium", basket.Id, "Basked should have ID Belgium");
        }
        public void PhotoProductMemoryRepositoryRepository_GetAll_Paging()
        {
            var repo = new PhotoProductMemoryRepository();

            repo.Add(new PhotoProduct {
                Name = "Alpha"
            });
            repo.Add(new PhotoProduct {
                Name = "Beta"
            });
            repo.Add(new PhotoProduct {
                Name = "Gamma"
            });

            var list = repo.GetAll(2, 1);

            Assert.AreEqual(1, list.Count, "List count should be 1.");

            Assert.AreEqual("Beta", list[0].Name, "First element should be Beta.");
        }
        public void PhotoProductMemoryRepositoryRepository_GetAll()
        {
            var repo = new PhotoProductMemoryRepository();

            repo.Add(new PhotoProduct {
                Name = "Alpha"
            });
            repo.Add(new PhotoProduct {
                Name = "Beta"
            });
            repo.Add(new PhotoProduct {
                Name = "Gamma"
            });

            var list = repo.GetAll(1, 9999);

            Assert.AreEqual(3, list.Count, "List count should be 3.");

            Assert.AreEqual("Alpha", list[0].Name, "First element should be Alpha.");
            Assert.AreEqual("Beta", list[1].Name, "Second element should be Beta.");
            Assert.AreEqual("Gamma", list[2].Name, "Second element should be Gamma.");
        }
        public void BasketService_Validate_InvalidProduct()
        {
            var productRepo    = new PhotoProductMemoryRepository();
            var productService = new PhotoProductService(productRepo);

            var repo    = new BasketMemoryRepository();
            var service = new BasketService(repo, productService);

            //1. create basket
            var basket = service.Create();

            //2. add invalid product
            var product = new PhotoProduct {
                Name = "I do not exist.", Id = "1337"
            };

            basket.Add(product, 1);

            //3. Validate it against the service
            var validationResult = service.Validate(basket);

            Assert.IsFalse(validationResult, "Id is not set, so the basket should be invalid.");
        }
        public void PhotoProductMemoryRepositoryRepository_Search()
        {
            var repo = new PhotoProductMemoryRepository();

            repo.Add(new PhotoProduct {
                Name = "Alpha"
            });
            repo.Add(new PhotoProduct {
                Name = "Beta"
            });
            repo.Add(new PhotoProduct {
                Name = "Gamma"
            });
            repo.Add(new PhotoProduct {
                Name = "Delta"
            });

            var list = repo.Search("ta", 1, 9999);

            Assert.AreEqual(2, list.Count, "List count should be 2.");

            Assert.AreEqual("Beta", list[0].Name, "First element should be Beta.");
            Assert.AreEqual("Delta", list[1].Name, "Second element should be Delta.");
        }