/// <summary> /// Main /// </summary> /// <param name="args"></param> public static void Main(string[] args) { // Initial Sku defined var listSku = InitialSetup.InitializeSku(); Dictionary <string, int> skuUnit = new Dictionary <string, int>(); Console.WriteLine("Enter the scenario with comma separated value eg: 3A,2B,1C"); Console.WriteLine("Make sure to enter combination values with % specifiier eg: 1C%1D"); string scenario = Console.ReadLine(); // Get all the values from the config file foreach (string value in scenario.Split(",")) { if (!value.Contains("%")) { skuUnit.Add(value.Substring(value.Length - 1), Convert.ToInt32(value.Substring(0, value.Length - 1))); } else { // In case of value contains % then set it 0 and get it from calculation skuUnit.Add(value, 0); } } // Get the price from the CalculatePromotion double totalPrice = CalculatePromotion(skuUnit, listSku); Console.WriteLine("Price for the Listed Items are:" + totalPrice); Console.ReadLine(); }
public void TestScenarioC() { // Initial Sku defined var listSku = InitialSetup.InitializeSku(); Dictionary <string, int> skuUnit = new Dictionary <string, int>(); // Input Scenario var scenario = "3A,5B,1C%1D"; AddScenarioToDictionary(skuUnit, scenario); Dictionary <string, int> dictConfigValue = new Dictionary <string, int>(); dictConfigValue.Add("3A", 130); dictConfigValue.Add("2B", 45); dictConfigValue.Add("1C%1D", 30); // Act double totalPrice = Program.CalculatePricingAlgorithm(skuUnit, listSku, 0, dictConfigValue); // Assert Assert.AreEqual(280, totalPrice); }