コード例 #1
0
        public void Input1()
        {
            //Arrange
            decimal bookPriceExpected         = 12.49m;
            decimal musicCdPriceExpected      = 16.49m;
            decimal chocolateBarPriceExpected = 0.85m;
            decimal salesTaxExpected          = 1.50m;
            decimal totalExpected             = 29.83m;

            string[] inputLines = new string[]
            {
                "1 book at 12.49",
                "1 music CD at 14.99",
                "1 chocolate bar at 0.85"
            };

            //Act
            ShoppingBasket       shoppingBasket = _shoppingBasketCreator.CreateShoppingBasket(inputLines, _productCategories);
            IList <TaxedProduct> taxedProducts  = _taxCalculator.ApplyTaxes(shoppingBasket);
            ReceiptDetail        receiptDetail  = _receiptDetailCreator.CreateReceiptDetail(taxedProducts);

            //Assert
            Assert.AreEqual($"1 book: {bookPriceExpected}{Environment.NewLine}" +
                            $"1 music CD: {musicCdPriceExpected}{Environment.NewLine}" +
                            $"1 chocolate bar: {chocolateBarPriceExpected}{Environment.NewLine}" +
                            $"Sales Taxes: {salesTaxExpected}{Environment.NewLine}" +
                            $"Total: {totalExpected}{Environment.NewLine}", receiptDetail.Receipt);
        }
コード例 #2
0
        static void Main(string[] args)
        {
            try
            {
                #region Bootstrap

                IConfigurationRoot configuration = GetConfigurationRoot();
                var         configurationHelper  = new ConfigurationHelper(configuration);
                TaxSettings taxSettings          = configurationHelper.GetTaxSettings();
                IList <Tax> taxes         = taxSettings.GetAllTaxes();
                var         taxCalculator = new TaxCalculator(taxes);
                IDictionary <string, CategoryType> productCategories = configurationHelper.GetProductCategories();
                var shoppingBasketCreator = new ShoppingBasketCreator();
                var receiptDetailCreator  = new ReceiptDetailCreator();
                var receiptDeatilPrinter  = new ReceiptDeatilPrinter();

                #endregion

                string[]             inputLines     = GetInputLines(configuration);
                ShoppingBasket       shoppingBasket = shoppingBasketCreator.CreateShoppingBasket(inputLines, productCategories);
                IList <TaxedProduct> taxedProducts  = taxCalculator.ApplyTaxes(shoppingBasket);
                ReceiptDetail        receiptDetail  = receiptDetailCreator.CreateReceiptDetail(taxedProducts);
                receiptDeatilPrinter.Print(receiptDetail);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Console.ReadLine();
            }
        }
コード例 #3
0
        public void CreateShoppingBasket_0InputLine_EmptyShoppingBasket()
        {
            //Arrange
            string[] inputLines = new string [0];
            IDictionary <string, CategoryType> productCategories = new Dictionary <string, CategoryType>();

            //Act
            ShoppingBasket shoppingBasket = _shoppingBasketCreator.CreateShoppingBasket(inputLines, productCategories);

            //Assert
            Assert.AreEqual(0, shoppingBasket.Products.Count);
        }