public void ErrorsInDataFileCauseException()
        {
            var sut   = new CalculationManager(new TotalTempLineProcessor());
            var lines = new List <string>();

            lines.Add("CashPrem\tAverage\tMaxValue");
            var datalines = new List <string>();

            datalines.Add("ScenId\tVarName\tValue000\tValue001\tValue002\tValue003\tValue004\tValue005");
            datalines.Add("1\tCashPrem\t0\t165215335.38m\t130922548.81\t107196660.00\t92462698.42\t84655947.13");

            var confCounter      = 0;
            var dataCounter      = 0;
            var mockConfigStream = GetMockFileStream(confCounter, lines);
            var mockDataStream   = GetMockFileStream(dataCounter, datalines);

            //execute
            var results = sut.RunProcess(mockDataStream.Object, mockConfigStream.Object);
        }
Example #2
0
        static void Main(string[] args)
        {
            try
            {
                if (args.Length < 2 || args.Length > 3)
                {
                    Console.WriteLine("Useage: Please provide the location of the total temp file and the configuration file (in that order) as arguments separated by spaces.");
                    Console.WriteLine("An optional third argument can be provide to specify the name of the output file. (Otherwise, the default filename \"output.txt\" will be used)");
                    throw new Exception("Invalid parameters provided.");
                }

                if (!File.Exists(args[0]))
                {
                    throw new Exception(string.Format("Could not locate data file {0}", args[0]));
                }

                if (!File.Exists(args[1]))
                {
                    throw new Exception(string.Format("Could not locate config file {0}", args[1]));
                }

                Console.WriteLine("Commencing Process");
                var tempFile    = new InputStreamReader(args[0]);
                var configFile  = new InputStreamReader(args[1]);
                var calcManager = new CalculationManager(new TotalTempLineProcessor());
                var results     = calcManager.RunProcess(tempFile, configFile);
                Console.WriteLine("Processing complete - generating results file");

                var sb = new StringBuilder();
                results.ForEach(res => sb.AppendFormat("{0}\t{1}\t{2}\r\n", res.VariableType, res.CalculationType, res.Value));

                var outputFileName = args.Length == 3 ? args[2] : "output.txt";

                File.WriteAllText(outputFileName, sb.ToString());
                Console.WriteLine("Results have been written to {0}", outputFileName);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("Execution Concluded with errors");
            }
            Console.ReadLine();
        }
        public void CalculationManagerStepsThroughInputFilesCorrectly()
        {
            //setup
            var sut   = new CalculationManager(new TotalTempLineProcessor());
            var lines = new List <string>();

            lines.Add("CashPrem\tAverage\tMaxValue");
            lines.Add("CashPrem\tMinValue\tMaxValue");
            var datalines = new List <string>();

            datalines.Add("ScenId\tVarName\tValue000\tValue001\tValue002\tValue003\tValue004\tValue005");
            datalines.Add("1\tCashPrem\t0\t165215335.38\t130922548.81\t107196660.00\t92462698.42\t84655947.13");

            var confCounter      = 0;
            var dataCounter      = 0;
            var mockConfigStream = GetMockFileStream(confCounter, lines);
            var mockDataStream   = GetMockFileStream(dataCounter, datalines);

            //execute
            var results = sut.RunProcess(mockDataStream.Object, mockConfigStream.Object);

            //assert
            Assert.AreEqual(2, results.Count);
        }