public void Test8_GetProductList_SetProductListSetList_GetProductListReturnTheList() { // Arrange var terminal = new PointOfSaleTerminal(); List <IProduct> productListActual = new List <IProduct> { new Product("A"), new Product("B") }; terminal.SetProductList(productListActual); bool correct = false; // Act List <IProduct> actual = productListActual; // Assert List <IProduct> expected = terminal.GetProductList(); //expected return list of terminal.GetProductList() // ---- compare the lists before and after deep copy above var firstNotSecond = actual.Except(expected).ToList(); var secondNotFirst = expected.Except(actual).ToList(); if (!firstNotSecond.Any() && !secondNotFirst.Any()) { correct = true; } // ^^^^ compare the lists before and after deep copy above Assert.IsTrue(correct, "GetProductList() returns a wrong list"); }
public void Test11_SetPricing_SetPricingOfGivenProducts_GetProductListWithRightPrices() { // Arrange var terminal = new PointOfSaleTerminal(); List <IProduct> productListActual = new List <IProduct> { new Product("A"), new Product("B") }; terminal.SetProductList(productListActual); // Act - for product with code A int testingValueForCodeA = terminal.SetPricing("A", 1.25f, 3, 3.0f); List <IProduct> myProductListForCodeA = terminal.GetProductList(); IProduct myProductWithCodeA = myProductListForCodeA.Find(x => x.ProductCode == "A"); float actualUnitPriceOfCodeA = myProductWithCodeA.ProductUnitPrice; int actualBulkQtyOfCodeA = myProductWithCodeA.ProductBulkQty; float actualBulkPriceOfCodeA = myProductWithCodeA.ProductBulkPrice; // Act - for product with code B int testingValueForCodeB = terminal.SetPricing("B", 4.25f); List <IProduct> myProductListForCodeB = terminal.GetProductList(); IProduct myProductWithCodeB = myProductListForCodeB.Find(x => x.ProductCode == "B"); float actualUnitPriceOfCodeB = myProductWithCodeB.ProductUnitPrice; int actualBulkQtyOfCodeB = myProductWithCodeB.ProductBulkQty; float actualBulkPriceOfCodeB = myProductWithCodeB.ProductBulkPrice; // Assert - for product with code A float expectedUnitPriceOfCodeA = 1.25f; int expectedBulkQtyOfCodeA = 3; float expectedBulkPriceOfCodeA = 3.0f; Assert.AreEqual(expectedUnitPriceOfCodeA, actualUnitPriceOfCodeA, "terminal.SetPricing('A',1.25f,3,3.0f) did not correctly set unit price for product with code A"); Assert.AreEqual(expectedBulkQtyOfCodeA, actualBulkQtyOfCodeA, "terminal.SetPricing('A',1.25f,3,3.0f) did not correctly set bulk quantity for product with code A"); Assert.AreEqual(expectedBulkPriceOfCodeA, actualBulkPriceOfCodeA, "terminal.SetPricing('A',1.25f,3,3.0f) did not correctly set bulk price for product with code A"); // Assert - for product with code B float expectedUnitPriceOfCodeB = 4.25f; int expectedBulkQtyOfCodeB = 1; float expectedBulkPriceOfCodeB = 4.25f; Assert.AreEqual(expectedUnitPriceOfCodeB, actualUnitPriceOfCodeB, "terminal.SetPricing('B', 4.25f) did not correctly set unit price for product with code B"); Assert.AreEqual(expectedBulkQtyOfCodeB, actualBulkQtyOfCodeB, "terminal.SetPricing('B', 4.25f) did not correctly set bulk quantity for product with code B"); Assert.AreEqual(expectedBulkPriceOfCodeB, actualBulkPriceOfCodeB, "terminal.SetPricing('B', 4.25f) did not correctly set bulk price for product with code B"); }
public void Test9_GetProductList_SetProductListSetList_GetProductListWithProductAandB() { // Arrange var terminal = new PointOfSaleTerminal(); List <IProduct> productListActual = new List <IProduct> { new Product("A"), new Product("B") }; terminal.SetProductList(productListActual); List <IProduct> myProductList = terminal.GetProductList(); string[] myProductCodeArray = new string[2]; // Act int i = 0; foreach (IProduct product in myProductList) { myProductCodeArray[i++] = product.ProductCode; } string actual0 = myProductCodeArray[0]; string actual1 = myProductCodeArray[1]; IProduct myProductWithCodeA = myProductList.Find(x => x.ProductCode == "A"); string actual2 = myProductWithCodeA.ProductCode; IProduct myProductWithCodeB = myProductList.Find(x => x.ProductCode == "B"); string actual3 = myProductWithCodeB.ProductCode; // Assert string expected0 = "A"; string expected1 = "B"; string expected2 = "A"; string expected3 = "B"; Assert.AreEqual(expected0, actual0, "GetProductList() returns a wrong list"); Assert.AreEqual(expected1, actual1, "GetProductList() returns a wrong list"); Assert.AreEqual(expected2, actual2, "GetProductList() returns a wrong list"); Assert.AreEqual(expected3, actual3, "GetProductList() returns a wrong list"); }