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);
        }