static void Main(string[] args) { Console.WriteLine("Welcome To Point Of Sale Terminal Service!"); var terminal = new PointOfSaleTerminalService(); terminal.SetPricing('A', 1.25, 3, 3.0); terminal.SetPricing('B', 4.25); terminal.SetPricing('C', 1.00, 6, 5.0); terminal.SetPricing('D', 0.75); Console.WriteLine("Please enter a product from following list: (A, B, C, D)."); Console.WriteLine("Enter ! to finish"); var availableProducts = new List <char>() { 'A', 'B', 'C', 'D' }; while (true) { char item = (char)Console.ReadKey().KeyChar; Console.WriteLine(); if (item == '!') { break; } if (availableProducts.Contains(item)) { terminal.ScanProduct(item); } else { Console.WriteLine("You entered wrong product."); Console.WriteLine("Enter ! to finish"); continue; } } double result = (double)terminal.CalculateTotal(); Console.WriteLine("Total price of items scanned is: {0:C2}", result); }
public void Test_ScanProduct_Scans_Products() { _posTermService.SetPricing('A', 1.25, 3, 3.0); _posTermService.SetPricing('B', 4.25); _posTermService.SetPricing('C', 1.00, 6, 5.0); _posTermService.SetPricing('D', 0.75); _posTermService.ScanProduct('A'); _posTermService.ScanProduct('B'); _posTermService.ScanProduct('C'); _posTermService.ScanProduct('D'); _posTermService.ScanProduct('A'); _posTermService.ScanProduct('B'); _posTermService.ScanProduct('A'); Hashtable basket = _posTermService.GetProductBasket(); int countA = (int)basket['A']; int countB = (int)basket['B']; int countC = (int)basket['C']; int countD = (int)basket['D']; Assert.IsTrue( countA == 3 && countB == 2 && countC == 1 && countD == 1 ); }
public void GivenProductsScanned_WhenProductsareABCDABA_Priceis1325() { _primeService.ClearBasket(); _primeService.ScanProduct("A"); _primeService.ScanProduct("B"); _primeService.ScanProduct("C"); _primeService.ScanProduct("D"); _primeService.ScanProduct("A"); _primeService.ScanProduct("B"); var finalPrice = _primeService.ScanProduct("A"); Assert.AreEqual(13.25m, finalPrice); }