public void Can_Create_Categories() { // Arrange // - create the mock repository Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductID = 1, Name = "P1", Category = "Apples"}, new Product {ProductID = 2, Name = "P2", Category = "Apples"}, new Product {ProductID = 3, Name = "P3", Category = "Plums"}, new Product {ProductID = 4, Name = "P4", Category = "Oranges"}, }); // Arrange - create the controller NavController target = new NavController(mock.Object); // Act = get the set of categories string[] results = ((IEnumerable<string>)target.Menu().Model).ToArray(); // Assert Assert.AreEqual(results.Length, 3); Assert.AreEqual(results[0], "Apples"); Assert.AreEqual(results[1], "Oranges"); Assert.AreEqual(results[2], "Plums"); }
public void NavMenu_Includes_Alphabetical_List_Of_Distinct_Categories() { // Arrange: Given 4 products in 3 categories in nonalphabetized order var mockProductsRepository = UnitTestHelpers.MockProductsRepository( new Product { Category = "Vegetable", Name = "ProductA" }, new Product { Category = "Animal", Name = "ProductB" }, new Product { Category = "Vegetable", Name = "ProductC" }, new Product { Category = "Mineral", Name = "ProductD" } ); // Act: ... when we render the navigation menu var result = new NavController(mockProductsRepository).Menu(null); // Assert: ... then the links to categories ... var categoryLinks = ((IEnumerable<NavLink>)result.ViewData.Model).Where(x => x.RouteValues["category"] != null); // ... are distinct categories in alphabetical order CollectionAssert.AreEqual( new[] { "Animal", "Mineral", "Vegetable" }, // Expected categoryLinks.Select(x => x.RouteValues["category"]) // Actual ); // ... and contain enough information to link to that category foreach (var link in categoryLinks) { link.RouteValues["controller"].ShouldEqual("Products"); link.RouteValues["action"].ShouldEqual("List"); link.RouteValues["page"].ShouldEqual(1); link.Text.ShouldEqual(link.RouteValues["category"]); } }
public void Can_Create_Categories() { // supply test data that does have duplicates and is not in order then pass it to the NavController and assert the data has been cleaned up. // arrange Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductID = 1, Name = "P1", Category = "Apples"}, new Product {ProductID = 2, Name = "P2", Category = "Apples"}, new Product {ProductID = 3, Name = "P3", Category = "Plums"}, new Product {ProductID = 4, Name = "P4", Category = "Oranges"}, new Product {ProductID = 5, Name = "P5", Category = "Avacados"}, }); // arrange = create the controller NavController target = new NavController(mock.Object); // act = get the set of categoreis string[] results = ((IEnumerable<string>)target.Menu().Model).ToArray(); // assert = did the controller put them in order and only get distinct? Assert.AreEqual(results.Length, 4); Assert.AreEqual(results[0], "Apples"); Assert.AreEqual(results[1], "Avacados"); Assert.AreEqual(results[2], "Oranges"); Assert.AreEqual(results[3], "Plums"); }
public void Can_Create_Categories() { var mockProducts = PrepareProductsForTest(); NavController controller = new NavController(mockProducts.Object); string[] results = ((IEnumerable<string>)controller.Menu().Model).ToArray(); Assert.AreEqual(results.Length, 3); Assert.AreEqual(results[0], "Cart1"); Assert.AreEqual(results[1], "Cart2"); Assert.AreEqual(results[2], "Cart3"); }
public void Can_Create_Categories() { //arrange Mock<IProductsRepository> mock = InitializeMock(); NavController target = new NavController(mock.Object); // act string[] results = ((IEnumerable<string>)target.Menu().Model).ToArray(); Assert.AreEqual(results.Length, 3); Assert.AreEqual(results[0], "Apples"); Assert.AreEqual(results[1], "Oranges"); Assert.AreEqual(results[2], "Plums"); }
public void IndicatesSelectedCategory() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "P1", Category = "Apples"}, new Product { ProductID = 4, Name = "P2", Category = "Oranges"} }); NavController controller = new NavController(mock.Object); string categoryToSelect = "Apples"; string results = controller.Menu(categoryToSelect).ViewBag.SelectedCategory; Assert.AreEqual(categoryToSelect, results); }
public void NavMenu_Shows_Home_Link_At_Top() { // Arrange: Given any repository var mockProductsRepository = UnitTestHelpers.MockProductsRepository(); // Act: ... when we render the navigation menu var result = new NavController(mockProductsRepository).Menu(null); // Assert: ... then the top link is to Home var topLink = ((IEnumerable<NavLink>)result.ViewData.Model).First(); topLink.RouteValues["controller"].ShouldEqual("Products"); topLink.RouteValues["action"].ShouldEqual("List"); topLink.RouteValues["page"].ShouldEqual(1); topLink.RouteValues["category"].ShouldEqual(null); topLink.Text.ShouldEqual("Home"); }
public void NavMenu_Highlights_Current_Category() { // Arrange: Given two categories... var mockProductsRepository = UnitTestHelpers.MockProductsRepository( new Product { Category = "A", Name = "ProductA" }, new Product { Category = "B", Name = "ProductB" } ); // Act: ... when we render the navigation menu var result = new NavController(mockProductsRepository).Menu("B"); // Assert: ... then only the current category is highlighted var highlightedLinks = ((IEnumerable<NavLink>)result.ViewData.Model).Where(x => x.IsSelected).ToList(); highlightedLinks.Count.ShouldEqual(1); highlightedLinks[0].Text.ShouldEqual("B"); }
public void Indicates_Selected_Category() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[]{ new Product { ProductID = 1 , Name = "P1", Category = "Jabłka"}, new Product { ProductID = 4 , Name = "P2", Category = "Pomarańcze" } }.AsQueryable()); NavController target = new NavController(mock.Object); string categoryToSelect = "Jabłka"; string result = target.Menu(categoryToSelect).ViewBag.SelectedCategory; Assert.AreEqual(categoryToSelect, result); }
public void Menu_GetCategories_Display() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(p => p.Products).Returns( new Product [] { new Product {ProductID=1, ProductName="P1", Category=new Category{CategoryID=1, CategoryName="Cat1"}}, new Product {ProductID=2, ProductName="P2", Category=new Category{CategoryID=2, CategoryName="Cat2"}}, new Product {ProductID=2, ProductName="P3", Category=new Category{CategoryID=1, CategoryName="Cat1"}}, new Product {ProductID=2, ProductName="P4", Category=new Category{CategoryID=1, CategoryName="Cat1"}}, new Product {ProductID=2, ProductName="P5", Category=new Category{CategoryID=2, CategoryName="Cat2"}} }.AsQueryable()); NavController controller = new NavController(mock.Object); string[] result = ((IEnumerable<string>)controller.Menu().Model).ToArray(); Assert.AreEqual(1, result[0]); Assert.AreEqual(2, result[1]); }
public void NavController_MenuAction_ReturningDistinctCategories_FromProductsCollection() { //Arrange Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(products.AsQueryable()); NavController target = new NavController(mock.Object); // TODO: Initialize to an appropriate value //Action CategoryListViewModel result = (CategoryListViewModel)target.Menu(null).Model; string[] cats = result.Categories.ToArray(); //Assert Assert.IsTrue(cats.Length == 4); Assert.AreEqual(cats[0], "Accounting"); Assert.AreEqual(cats[1], "Computers"); Assert.AreEqual(cats[2], "Fruit"); }
public void Can_Create_Categories() { // Arrange Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(GetFruitProductArray()); NavController target = new NavController(mock.Object); // Act string[] results = ((IEnumerable<string>)target.Menu().Model).ToArray(); // Assert Assert.AreEqual(results.Length, 3); Assert.AreEqual(results[0], "Apples"); Assert.AreEqual(results[1], "Oranges"); Assert.AreEqual(results[2], "Plums"); }
public void Indicates_Selected_Category() { // Arrange // - create the mock repository Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductID = 1, Name = "P1", Category = "Apples"}, new Product {ProductID = 4, Name = "P2", Category = "Oranges"}, }.AsQueryable()); // Arrange - create the controller NavController target = new NavController(mock.Object); // Arrange - define the category to selected string categoryToSelect = "Apples"; // Action string result = target.Menu(categoryToSelect).ViewBag.SelectedCategory; // Assert Assert.AreEqual(categoryToSelect, result); }
public void NavController_Menu_IndicatesSelectedCategory() { // Arrange Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductID = 1, Name = "P1", Category = "Apples" }, new Product {ProductID = 3, Name = "P3", Category = "Plums" }, }.AsQueryable()); NavController controller = new NavController(mock.Object); string CategoryToSelect = "Apples"; // Act var result = controller.Menu(CategoryToSelect).ViewBag.SelectedCategory; // Assert Assert.AreEqual<string>(CategoryToSelect, result); }
public void Can_Create_Categories() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductId = 1, Name = "P1", Category = "Apples"}, new Product { ProductId = 2, Name = "P2", Category = "Apples"}, new Product { ProductId = 3, Name = "P3", Category = "Plums"}, new Product { ProductId = 4, Name = "P4", Category = "Oranges"}, }); NavController controller = new NavController(mock.Object); string[] results = ((IEnumerable<string>) controller.Menu().Model).ToArray(); Assert.AreEqual(3, results.Length); Assert.AreEqual("Apples",results[0]); Assert.AreEqual("Oranges", results[1]); Assert.AreEqual("Plums", results[2]); }
public void Can_Create_Categories() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[]{ new Product { ProductID = 1 , Name = "P1", Category = "Jabłka"}, new Product { ProductID = 2 , Name = "P2", Category = "Jabłka" }, new Product { ProductID = 3, Name = "P3", Category = "Śliwki" }, new Product { ProductID = 4, Name = "P4", Category = "Pomarańcze" } }.AsQueryable()); NavController target = new NavController(mock.Object); string[] results = ((IEnumerable<string>)target.Menu().Model).ToArray(); Assert.AreEqual(results.Length, 3); Assert.AreEqual(results[0], "Jabłka"); Assert.AreEqual(results[1], "Pomarańcze"); Assert.AreEqual(results[2], "Śliwki"); }
public void Indicates_Selected_Category() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product{ ProductID = 1, Name = "P1", Category = "c2"}, new Product{ ProductID = 2, Name = "P2", Category = "c2"}, new Product{ ProductID = 3, Name = "P3", Category = "c3"}, new Product{ ProductID = 4, Name = "P4", Category = "c4"}, new Product{ ProductID = 5, Name = "P5", Category = "c5"}}.AsQueryable()); NavController controller = new NavController(mock.Object); string categorySelected = "c2"; string result = controller.Menu(categorySelected).ViewBag.SelectedCategory; Assert.AreEqual(categorySelected, result); }
public void Indicates_Selected_Category() { // Arrange Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new[] { new Product { ProductID = 1, Name = "P1", Category = "Apples" }, new Product { ProductID = 4, Name = "P2", Category = "Oranges" }, }.AsQueryable()); NavController controller = new NavController(mock.Object); string categoryToSelect = "Apples"; // Action string selectedCategory = controller.Menu(categoryToSelect).ViewBag.SelectedCategory; // Assert Assert.AreEqual(categoryToSelect, selectedCategory); }
public void CanCreateCategories() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product() {Id = 1, Name = "P1", Category = "Jabłka"}, new Product() {Id = 2, Name = "P2", Category = "Jabłka"}, new Product() {Id = 3, Name = "P3", Category = "Śliwki"}, new Product() {Id = 4, Name = "P4", Category = "Pomarańcze"} }); NavController controller = new NavController(mock.Object); var viewResult = (PartialViewResult) controller.Menu(); string[] result = ((IEnumerable<string>) viewResult.Model).ToArray(); Assert.AreEqual(result.Length, 3); Assert.AreEqual(result[0], "Jabłka"); Assert.AreEqual(result[1], "Pomarańcze"); Assert.AreEqual(result[2], "Śliwki"); }
public void CanCreateCategories() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(x => x.Products).Returns(new Product[] { new Product { ProductID = 1, Category = "Apples", Name = "P1" }, new Product { ProductID = 2, Category = "Apples", Name = "P2" }, new Product { ProductID = 3, Category = "Plums", Name = "P3" }, new Product { ProductID = 4, Category = "Oranges", Name = "P4" } }); NavController target = new NavController(mock.Object); IEnumerable<string> results = target.Menu().Model as IEnumerable<string>; Assert.AreEqual(3, results.Count()); Assert.AreEqual("Apples", results.ElementAt(0)); Assert.AreEqual("Oranges", results.ElementAt(1)); Assert.AreEqual("Plums", results.ElementAt(2)); }
public void Can_Create_Categories() { // Arrange Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new[] { new Product { ProductID = 1, Name = "P1", Category = "Apples" }, new Product { ProductID = 2, Name = "P2", Category = "Apples" }, new Product { ProductID = 3, Name = "P3", Category = "Plums" }, new Product { ProductID = 4, Name = "P4", Category = "Oranges" }, }.AsQueryable()); NavController controller = new NavController(mock.Object); // Action string[] categories = ((IEnumerable<string>)controller.Menu(null).Model).ToArray(); // Assert CollectionAssert.AreEqual(categories, new[] { "Apples", "Oranges", "Plums" }); }
public void Can_Create_Categories() { Mock<IProductsRepository> mock = new Mock<IProductsRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "p1", Category = "Apples" }, new Product { ProductID = 2, Name = "p2", Category = "Apples" }, new Product { ProductID = 3, Name = "p3", Category = "Plums" }, new Product { ProductID = 4, Name = "p4", Category = "Oranges" } }.AsQueryable()); NavController target = new NavController(mock.Object); String[] results = ((IEnumerable<String>)target.Menu().Model).ToArray(); Assert.AreEqual(results.Length, 3); Assert.AreEqual(results[0], "Apples"); Assert.AreEqual(results[1], "Oranges"); Assert.AreEqual(results[2], "Plums"); }
public void Can_Create_Categories() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product{ProductID = 1, Name="P1", Category="Cat1"}, new Product{ProductID = 2, Name="P2", Category="Cat1"}, new Product{ProductID = 3, Name="P3", Category="Cat3"}, new Product{ProductID = 4, Name="P4", Category="Cat2"} }.AsQueryable()); NavController controller = new NavController(mock.Object); string[] result = ((IEnumerable<string>)controller.Menu().Model).ToArray(); Assert.AreEqual(result.Length, 3); Assert.AreEqual(result[0], "Cat1"); Assert.AreEqual(result[1], "Cat2"); Assert.AreEqual(result[2], "Cat3"); }
public void Can_Create_Categories() { // Arrange Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductID = 1, Name = "P1", Category = "Apples"}, new Product {ProductID = 2, Name = "P2", Category = "Apples"}, new Product {ProductID = 3, Name = "P3", Category = "Plums"}, new Product {ProductID = 4, Name = "P4", Category = "Oranges"} }); NavController controller = new NavController(mock.Object); // Act string[] result = ((IEnumerable<string>)controller.Menu().Model).ToArray(); // Assert Assert.AreEqual(result[0], "Apples"); Assert.AreEqual(result[1], "Oranges"); Assert.AreEqual(result[2], "Plums"); }
public void Indicates_Selected_Category() { // Arrange: Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductId =1, Name="P1", Category="Apples"}, new Product {ProductId =4, Name="P1", Category="Oranges"} }.AsQueryable()); // Arrange: NavController controller = new NavController(mock.Object); // Arrange: define the category to be selected. string categoryToSelect = "Apples"; // Act: get the set of categories string result = controller.Menu(categoryToSelect).ViewBag.SelectedCategory; // Assert: Assert.AreEqual(result,categoryToSelect); }
public void Can_Create_Categories() { // Arrange: Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductId =1, Name="P1", Category="Apples"}, new Product {ProductId =1, Name="P1", Category="Oranges"}, new Product {ProductId =1, Name="P1", Category="Apples"}, new Product {ProductId =1, Name="P1", Category="Grapes"} }.AsQueryable()); // Arrange: NavController controller = new NavController(mock.Object); // Act: get the set of categories var results = controller.Menu().Model as IEnumerable<string>; // Assert: Assert.IsNotNull(results); Assert.AreEqual(results.Count(), 3); }
public void Can_Create_Categories() { // Arrange Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductID = 1, Name = "P1", Category = "Apples"}, new Product {ProductID = 2, Name = "P2", Category = "Apples"}, new Product {ProductID = 3, Name = "P3", Category = "Plums"}, new Product {ProductID = 4, Name = "P4", Category = "Oranges"} }.AsQueryable()); NavController target = new NavController(mock.Object); // Act var results = ((IEnumerable<string>)target.Menu().Model).ToList(); // Assert Assert.AreEqual(3, results.Count); Assert.AreEqual("Apples", results[0]); Assert.AreEqual("Oranges", results[1]); Assert.AreEqual("Plums", results[2]); }
public void Generate_Category_List() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product{ ProductID = 1, Name = "P1", Category = "c2"}, new Product{ ProductID = 2, Name = "P2", Category = "c2"}, new Product{ ProductID = 3, Name = "P3", Category = "c3"}, new Product{ ProductID = 4, Name = "P4", Category = "c4"}, new Product{ ProductID = 5, Name = "P5", Category = "c5"}}.AsQueryable()); NavController controller = new NavController(mock.Object); string[] categories = ((IEnumerable<string>)controller.Menu().Model).ToArray(); Assert.AreEqual(4, categories.Length); Assert.AreEqual("c2", categories[0]); Assert.AreEqual("c3", categories[1]); Assert.AreEqual("c4", categories[2]); Assert.AreEqual("c5", categories[3]); }
public void Can_Create_Categories() { //arrange Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductID = 1, Name = "P1", Category = "Apples"}, new Product {ProductID = 2, Name = "P2", Category = "Bananas"}, new Product {ProductID = 3, Name = "P3", Category = "Oranges"}, new Product {ProductID = 4, Name = "P4", Category = "Oranges"}, new Product {ProductID = 5, Name = "P5", Category = "Bananas"} }.AsQueryable()); //arrange NavController target = new NavController(mock.Object); //act string[] results = ((IEnumerable<string>)target.Menu().Model).ToArray(); //assert Assert.AreEqual(results[0], "Apples"); Assert.AreEqual(results[1], "Bananas"); Assert.AreEqual(results[2], "Oranges"); }
public void Can_Create_Categories() { // Arrange Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[]{ new Product(){ProductID = 1, Name = "p1", Category = "Apples"}, new Product(){ProductID = 2, Name = "p2", Category = "Apples"}, new Product(){ProductID = 3, Name = "p3", Category = "Plums"}, new Product(){ProductID = 4, Name = "p4", Category = "Plums"}, new Product(){ProductID = 5, Name = "p5", Category = "Oranges"} }.AsQueryable()); NavController controller = new NavController(mock.Object); // Act string[] results = ((IEnumerable<string>)controller.Menu().Model).ToArray(); // Assert Assert.AreEqual(3, results.Length); Assert.AreEqual("Apples", results[0]); Assert.AreEqual("Oranges", results[1]); Assert.AreEqual("Plums", results[2]); }