public IResult ValidateNoDuplicatedEmployeeDate(IList <Employee> employees) { var duplicateEmployee = employees.GroupBy(e => e.Date).Where(group => group.Count() > 1).ToList(); if (duplicateEmployee.Any()) { var error = new DuplicateEmployeeDateError(duplicateEmployee.First().Key); _errorResolver.Resolve(error); return(error); } return(new SuccessfulResult()); }
public void DuplicateEmployeeRecordsDateReturnsError() { var duplicatedDate = DateTime.Now; _employees.Add(new Employee(duplicatedDate, "EMP001", 1)); _employees.Add(new Employee(duplicatedDate, "EMP002", 2)); var expectedError = new DuplicateEmployeeDateError(duplicatedDate); var result = _validationService.ValidateNoDuplicatedEmployeeDate(_employees); Assert.Equal(expectedError.Code, result.Code); Assert.Equal(expectedError.Message, result.Message); }