Пример #1
0
        static void Main(string[] args)
        {
            SalaryCalculator salaryCalculate = new SalaryCalculator();

            //string filePath = args[0];
            string filePath = "c:\\temp\\employeeDetail.csv";

            Reader fileReader = new CsvReader();
            List <Model.Employee> employees = fileReader.Read <Model.Employee>(filePath);

            //Testing
            //var employees = GetEmployeeData();

            List <Model.Payslip> paySlips = salaryCalculate.CalculateTax(employees);

            PrintPayslip(paySlips);

            Writer fileWriter = new CsvWriter();

            fileWriter.Write <Model.PayslipReport>(paySlips.Select(x =>
                                                                   new PayslipReport
            {
                FullName    = x.FullName,
                PayPeriod   = x.PayPeriod,
                GrossIncome = x.GrossIncome,
                IncomeTax   = x.IncomeTax,
                NetIncome   = x.NetIncome,
                Super       = x.Super
            }).ToList(), "c:\\temp\\EmployeePaySlip.csv");

            Console.ReadKey();
        }
Пример #2
0
        public void CalculateTaxTest()
        {
            var employees = GetEmployeeData();

            var paySlips = _salaryCalculator.CalculateTax(employees);

            var expectedPaySlips = ExpectedPaySlips();

            Assert.Equal(2, paySlips.Count);
            Assert.Equal(expectedPaySlips[0].GrossIncome, paySlips[0].GrossIncome);
            Assert.Equal(expectedPaySlips[0].IncomeTax, paySlips[0].IncomeTax);
            Assert.Equal(expectedPaySlips[0].NetIncome, paySlips[0].NetIncome);
            Assert.Equal(expectedPaySlips[0].Super, paySlips[0].Super);

            Assert.Equal(expectedPaySlips[1].GrossIncome, paySlips[1].GrossIncome);
            Assert.Equal(expectedPaySlips[1].IncomeTax, paySlips[1].IncomeTax);
            Assert.Equal(expectedPaySlips[1].NetIncome, paySlips[1].NetIncome);
            Assert.Equal(expectedPaySlips[1].Super, paySlips[1].Super);
        }