Example #1
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);
        }
Example #2
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.");
        }
        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.");
        }
Example #4
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.");
        }
Example #5
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.");
        }
Example #6
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.");
        }
Example #7
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));
        }
Example #8
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));
        }
Example #9
0
        public void BasketsController_RemoveBasketItem_InvalidBasket_BadRequest()
        {
            var productService = new PhotoProductService(new PhotoProductMemoryRepository());
            var repo           = new BasketMemoryRepository();
            var service        = new BasketService(repo, productService);

            var controller = new BasketsController(service, productService);

            var result = controller.RemoveBasketItem("Aruba", "XX");

            Assert.IsNotNull(result, "There should be a result.");
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
        }
        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);
        }
Example #12
0
        public void BasketsController_RemoveBasketItem_InvalidBasketItemId_NotFound()
        {
            var productService = new PhotoProductService(new PhotoProductMemoryRepository());
            var basket         = new Basket {
                Id = "Aruba", Created = DateTime.Now, Modified = DateTime.Now
            };
            var repo = new BasketMemoryRepository();

            repo.Add(basket);
            var service = new BasketService(repo, productService);

            var controller = new BasketsController(service, productService);

            var result = controller.RemoveBasketItem("Aruba", "XX");

            Assert.IsNotNull(result, "There should be a result.");
            Assert.IsInstanceOfType(result, typeof(NotFoundResult));
        }
Example #13
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_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.");
        }
        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 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.");
        }