コード例 #1
0
        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");
        }
コード例 #2
0
        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");
        }
コード例 #3
0
        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");
        }