public void ParseDateShouldReturnNullWhenInputIsIncorrect() { var employeesService = new CouplesEmployees(); string dateAsString = "text"; string allowedFormats = "yyyy-MM-dd"; DateTime?parsedDate = employeesService.ParseDate(dateAsString, allowedFormats); DateTime?result = null; Assert.Equal(result, parsedDate); }
public void ParseDateShouldReturnDateTimeWhenIsCorrectData() { var employeesService = new CouplesEmployees(); string dateAsString = "2013-11-01"; string allowedFormats = "yyyy-MM-dd"; DateTime?parsedDate = employeesService.ParseDate(dateAsString, allowedFormats); DateTime?result = new DateTime(2013, 11, 1); Assert.Equal(result, parsedDate); }
public void SplitInputDataShouldReturnListWithSplittedStrings() { string inputData = "143, 1, 31-12-2013, 02-04-2018\r\n218, 1, 11-12-2011, 22-03-2015\r\n144, 1, 14-04-2001, 19-07-2003\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"; var employeesService = new CouplesEmployees(); var splittedData = employeesService.SplitInputData(inputData); var result = new List <string>() { "143, 1, 31-12-2013, 02-04-2018", "218, 1, 11-12-2011, 22-03-2015", "144, 1, 14-04-2001, 19-07-2003" }; Assert.Equal <string>(result, splittedData); }
static async Task Main(string[] args) { while (true) { try { Console.Write("Please enter the path to text file:"); string fileName = Console.ReadLine(); var allowedFormats = new List <string>() { "yyyy-MM-dd", "yyyy-MM-d", "yyyy-M-dd", "M-dd-yyyy", "MM-d-yyyy", "M-d-yyyy", "MM-dd-yyyy", "dd-MM-yyyy", "MMMM-dd-yyyy", "yyyy-dd-MM", "dd-M-yyyy", "d-MM-yyyy", "d-M-yyyy", "dddd,dd-MMMM-yyyy", "yyyy MMMM", "yyyy-MMMM", "dddd,dd-MM-yyyy", "yyyy/MM/dd", "yyyy/dd/MM", "MM/dd/yyyy", "MMM/dd/yyyy", "MMMM/dd/yyyy", "yyyy.MM.dd", "yyyy.dd.MM", "MM.dd.yyyy", "MMM.dd.yyyy", "MM.dd.yyyy", "MMMM.dd.yyyy" }; Console.WriteLine("Valid Date formats: "); Console.WriteLine(string.Join(Environment.NewLine, allowedFormats)); Console.Write("Please select Date format:"); string dateFormat = Console.ReadLine(); var coupleEmployees = new CouplesEmployees(); await coupleEmployees .CalculateDaysWorkedTogether(fileName, dateFormat, allowedFormats); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
public void GetEmployeesWithCalculatedDaysShouldCalculateWorkedDays() { string inputData = "143, 1, 31-12-2013, 02-04-2018\r\n218, 1, 11-12-2011, 22-03-2015\r\n144, 1, 14-04-2001, 19-07-2003\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"; string dateFormat = "dd-MM-yyyy"; var employeesService = new CouplesEmployees(); var splittedData = employeesService.SplitInputData(inputData); List <Employee> employees = new List <Employee>(); HashSet <int> projectIds; employeesService.ParseAndCreateListWithEmployees (splittedData, employees, out projectIds, dateFormat); var finalists = new List <CoupleEmployeesViewModel>(); employeesService.GetEmployeesWithCalculatedDays(finalists, employees, projectIds); var finalistsResult = new List <CoupleEmployeesViewModel>() { new CoupleEmployeesViewModel { FirstEmployeeId = 143, SecondEmployeeId = 218, ProjectId = 1.ToString(), WorkedDays = 446 } }; Assert.Equal(finalists[0].FirstEmployeeId, finalistsResult[0].FirstEmployeeId); Assert.Equal(finalists[0].SecondEmployeeId, finalistsResult[0].SecondEmployeeId); Assert.Equal(finalists[0].ProjectId, finalistsResult[0].ProjectId); Assert.Equal(finalists[0].WorkedDays, finalistsResult[0].WorkedDays); }
public void ParseAndCreateListWithEmployeesShouldReturnListWithEmployees() { string inputData = "143, 1, 31-12-2013, 02-04-2018\r\n218, 1, 11-12-2011, 22-03-2015\r\n144, 1, 14-04-2001, 19-07-2003\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"; string dateFormat = "dd-MM-yyyy"; var employeesService = new CouplesEmployees(); var splittedData = employeesService.SplitInputData(inputData); List <Employee> employees = new List <Employee>(); HashSet <int> projectIds; employeesService.ParseAndCreateListWithEmployees (splittedData, employees, out projectIds, dateFormat); List <Employee> employeesResult = new List <Employee>() { new Employee { EmpId = 143, ProjectId = 1, DateFrom = new DateTime(2013, 12, 31), DateTo = new DateTime(2018, 4, 2) }, new Employee { EmpId = 218, ProjectId = 1, DateFrom = new DateTime(2011, 12, 11), DateTo = new DateTime(2015, 3, 22) }, new Employee { EmpId = 144, ProjectId = 1, DateFrom = new DateTime(2001, 4, 14), DateTo = new DateTime(2003, 7, 19) } }; var projectIdsResult = new HashSet <int>() { 1 }; Assert.Equal <int>(projectIdsResult, projectIds); Assert.Equal(employeesResult[0].EmpId, employees[0].EmpId); Assert.Equal(employeesResult[0].ProjectId, employees[0].ProjectId); Assert.Equal(employeesResult[0].DateFrom, employees[0].DateFrom); Assert.Equal(employeesResult[0].DateTo, employees[0].DateTo); Assert.Equal(employeesResult[1].EmpId, employees[1].EmpId); Assert.Equal(employeesResult[1].ProjectId, employees[1].ProjectId); Assert.Equal(employeesResult[1].DateFrom, employees[1].DateFrom); Assert.Equal(employeesResult[1].DateTo, employees[1].DateTo); Assert.Equal(employeesResult[2].EmpId, employees[2].EmpId); Assert.Equal(employeesResult[2].ProjectId, employees[2].ProjectId); Assert.Equal(employeesResult[2].DateFrom, employees[2].DateFrom); Assert.Equal(employeesResult[2].DateTo, employees[2].DateTo); }