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); }
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."); }
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 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."); }
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."); }
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 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)); }
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); }
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)); }
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."); }