/// <summary> /// Generates a random list of item. /// </summary> /// <param name="size">Expected size of the list.</param> /// <returns>List of items.</returns> private ItemList GenerateList(int size) { // Get items list string[] items = ConfigurationTest.Config.GetSection("PerformanceTest:Items").Get <string[]>(); // Creates random Random random = new Random(); // Creates list ItemList output = new ItemList(); for (int i = 0; i < size; i++) { // Creates item ItemTaxable item = new ItemTaxable(); // Fill data item.Quantity = random.Next(1, 100); item.Price = random.Next(1, 1000); item.Name = (random.Next(0, 1) == 0) ? "imported" : string.Empty; item.Name += " " + items[random.Next(0, items.Length - 1)]; // Add item output.Add(item); } // Return return(output); }
/// <summary> /// Default constructor /// </summary> /// <param name="config"></param> public ExtremeValuesTest() { // Apply Taxes foreach (Tax tax in ConfigurationTest.Config.GetSection("ExtremeValuesTest:Taxes").Get <List <Tax> >()) { ItemTaxable.ApplyTax(tax); } }
/// <summary> /// Default Constructor. /// </summary> public StandardTest() { // Apply Taxes foreach (Tax tax in ConfigurationTest.Config.GetSection("StandardTest:Taxes").Get <List <Tax> >()) { ItemTaxable.ApplyTax(tax); } }
public void MaxValues() { // Get expected inputs and ouptuts string[] inputs = ConfigurationTest.Config.GetSection("ExtremeValuesTest:Inputs").Get <string[]>(); string[] outputs = ConfigurationTest.Config.GetSection("ExtremeValuesTest:Outputs").Get <string[]>(); // Check inputs and outpus are the same length Assert.AreEqual(inputs.Length, outputs.Length); // Compare inputs and outputs for (int i = 0; i < inputs.Length; i++) { ItemTaxable item = new ItemTaxable(); item.LoadFromString(inputs[i]); Assert.AreEqual(item.ToString(), outputs[i]); } }
public void CompareInputOutput() { foreach (string file in Directory.GetFiles(ConfigurationTest.Config["DataTest:Input"])) { // Create the list ItemList list = new ItemList(); foreach (string line in File.ReadLines(file)) { ItemTaxable item = new ItemTaxable(); item.LoadFromString(line); list.Add(item); } // Read the output string fileOut = Path.Combine(ConfigurationTest.Config["DataTest:Output"], Path.GetFileName(file)); string expected = File.ReadAllText(fileOut); // Compare Assert.AreEqual(expected, list.ToString()); } }
/// <summary> /// Main Entry point of the application. /// </summary> /// <param name="args">Array of arguments passed to the method.</param> public static void Main(string[] args) { // Start Console.WriteLine("Starting Sales Receipt Program"); // Load config IConfiguration config = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build(); // Set Taxes foreach (Tax tax in config.GetSection("Taxes").Get <List <Tax> >()) { ItemTaxable.ApplyTax(tax); } // Read files in the input folder foreach (string file in Directory.GetFiles("data")) { Console.WriteLine(Environment.NewLine + new string('=', 20)); Console.WriteLine($"FILE : {file}"); Console.WriteLine(Environment.NewLine + "INPUT"); Console.WriteLine(new string('-', 5)); ItemList list = new ItemList(); foreach (string line in File.ReadLines(file)) { ItemTaxable item = new ItemTaxable(); item.LoadFromString(line); list.Add(item); Console.WriteLine(line); } Console.WriteLine(Environment.NewLine + "OUTPUT"); Console.WriteLine(new string('-', 6)); Console.WriteLine(list.ToString()); } // End Console.WriteLine("Program Finished."); }