public void ReadRecords_CSVFile_ReturnResult() { FileStream inputFile = PayslipExtension.ReadInputFile(); Employee[] EmployeeRecords = new[] { new Employee { FirstName = "David", LastName = "Rudd", AnnualSalary = 60050M, SuperRate = 0.09M, PaymentStartDate = new PaymentPeriod(new DateTime(DateTime.Now.Year, 3, 1), new DateTime(DateTime.Now.Year, 3, 31)) } }; var EmployeeRecordsinFile = new EmployeeRecords().ReadRecords <Employee>(inputFile).ToArray(); for (int i = 0; i < EmployeeRecords.Length; i++) { Assert.Equal(EmployeeRecords[i].FirstName, EmployeeRecordsinFile[i].FirstName); Assert.Equal(EmployeeRecords[i].LastName, EmployeeRecordsinFile[i].LastName); Assert.Equal(EmployeeRecords[i].AnnualSalary, EmployeeRecordsinFile[i].AnnualSalary); Assert.Equal(EmployeeRecords[i].SuperRate, EmployeeRecordsinFile[i].SuperRate); Assert.Equal(EmployeeRecords[i].PaymentStartDate.EndDate, EmployeeRecordsinFile[i].PaymentStartDate.EndDate); Assert.Equal(EmployeeRecords[i].PaymentStartDate.StartDate, EmployeeRecordsinFile[i].PaymentStartDate.StartDate); } }
public void WritePayslipRecords_ReadHeader() { PaySlip[] payslips = new[] { new PaySlip { Name = PayslipExtension.RandomString(), PayPeriod = PayslipExtension.RandomString(), GrossIncome = 1245678M, IncomeTax = 4567M, NetIncome = 1245678M, Super = 1245M } }; //Writing to Bytes Byte[] recordByte = new EmployeeRecords().WriteRecordsToBytes(payslips); //Read and verify records using (StreamReader reader = new StreamReader(new MemoryStream(recordByte))) { //First line is the header var Header = reader.ReadLine(); Assert.Equal("Name,PayPeriod,GrossIncome,IncomeTax,NetIncome,Super", Header); } }
public void WritePayslipRecords_ReadRecords() { PaySlip[] payslips = new[] { new PaySlip { Name = PayslipExtension.RandomString(), PayPeriod = PayslipExtension.RandomString(), GrossIncome = 1245678M, IncomeTax = 4567M, NetIncome = 1245678M, Super = 1245M } }; //Writing to Bytes Byte[] recordByte = new EmployeeRecords().WriteRecordsToBytes(payslips); //Read and verify records using (StreamReader reader = new StreamReader(new MemoryStream(recordByte))) { //First line is the header var Header = reader.ReadLine(); foreach (var payrecord in payslips) { var item = reader.ReadLine(); Assert.Equal(item, $"{payrecord.Name},{payrecord.PayPeriod},{payrecord.GrossIncome},{payrecord.IncomeTax},{payrecord.NetIncome},{payrecord.Super}"); } } }
public void Calculate_EmployeeAnnualSalary_ReturnsValidationError() { var validation = new Validation(); decimal annualSalary = 1.5M; var employee = new Employee(PayslipExtension.RandomString(), PayslipExtension.RandomString(), annualSalary, 0M, new PaymentPeriod(new DateTime(2019, 2, 01), new DateTime(2019, 2, 28))); PayslipExtension.BuildPayslip().Calculate(new[] { employee }, validation); //validation.Errors var Errors = validation.Errors.FirstOrDefault(); Assert.Equal(Errors, $"{nameof(annualSalary)}, value:{annualSalary} must be a whole number."); }
public void CalculateRecords_ReturnTrue() { FileStream inputFile = PayslipExtension.ReadInputFile(); var validation = new Validation(); Employee[] EmployeeRecords = new[] { new Employee { FirstName = "David", LastName = "Rudd", AnnualSalary = 60050M, SuperRate = 0.09M, PaymentStartDate = new PaymentPeriod(new DateTime(DateTime.Now.Year, 3, 1), new DateTime(DateTime.Now.Year, 3, 31)) } }; PayslipExtension.BuildPayslip().Calculate(EmployeeRecords, validation); Assert.True(validation.IsValid); }