public void GivenEmployeeInformationCalculateCalculationInformationAndCompileStrings() { var listEmployees = new List <Employee>(); var employee = new Employee { FirstName = "David", LastName = "Rudd", Salary = 60050M, PayRate = 9M, PayPeriod = "01 March – 31 March" }; listEmployees.Add(employee); var payslipBuilder = new PayslipBuilder(); var employeePayslip = payslipBuilder.BuildPayslip(listEmployees); Assert.Equal("David Rudd", employeePayslip[0].FullName); Assert.Equal("01 March – 31 March", employeePayslip[0].PayPeriod); Assert.Equal(5004M, employeePayslip[0].GrossIncome); Assert.Equal(922M, employeePayslip[0].IncomeTax); Assert.Equal(4082M, employeePayslip[0].NetIncome); Assert.Equal(450M, employeePayslip[0].SuperAmount); }
static void Main(string[] args) { var firstNameInput = StandardMessage.CaptureData("first name"); var surnameInput = StandardMessage.CaptureData("surname"); var annualSalaryInput = StandardMessage.CaptureData("annual salary"); var superRateInput = StandardMessage.CaptureData("super rate"); var startDate = StandardMessage.CaptureData("payment start date"); var endDate = StandardMessage.CaptureData("payment end date"); var bracket1 = TaxBracket.Generate(0M, 18200M, 0M, 0M); var bracket2 = TaxBracket.Generate(18201M, 37000M, 0M, 0.325M); var bracket3 = TaxBracket.Generate(37001M, 87000M, 3572M, 0.325M); var bracket4 = TaxBracket.Generate(87001M, 180000M, 19822M, 0.37M); var bracket5 = TaxBracket.Generate(180000M, Int32.MaxValue, 54232M, 0.45M); var taxTable = TaxTable.Build(bracket1, bracket2, bracket3, bracket4, bracket5); EmployeeDetails employeeDetails = EmployeeDetails.ConstructFullName(firstNameInput, surnameInput); PayPeriod payPeriod = PayPeriod.Generate(startDate, endDate); GrossIncome grossIncome = GrossIncome.Generate(annualSalaryInput, payPeriod); IncomeTax incomeTax = IncomeTax.Generate(taxTable, grossIncome, payPeriod); NetIncome netIncome = NetIncome.Generate(grossIncome, incomeTax); Super super = Super.Generate(superRateInput, grossIncome); var paySlip = PaySlip.Create( employeeDetails, payPeriod, grossIncome, incomeTax, netIncome, super ); var payslipOutput = PayslipBuilder.Print(paySlip); Console.WriteLine(payslipOutput); // }