private static void DoOrdering(OrderingCriteria criteria, EmployeeOrderingService service) { var mapping = CreateOrdersMapping(service); var orderingMethod = mapping[criteria]; IEnumerable<Employee> employees = orderingMethod(); PrintResult(employees); }
public void Service_OrderByDefault_Empty_ReturnsEmptyList() { var dataProvider = new Mock<IEmployeeData>(); var svc = new EmployeeOrderingService(dataProvider.Object); var result = svc.OrderByDefault(); Assert.AreEqual(0, result.Count()); }
private static Dictionary<OrderingCriteria, Func<IEnumerable<Employee>>> CreateOrdersMapping(EmployeeOrderingService service) { var result = new Dictionary<OrderingCriteria, Func<IEnumerable<Employee>>>(); result.Add(OrderingCriteria.Default, service.OrderByDefault); result.Add(OrderingCriteria.FirstName, () => service.OrderBy(x=>x.FirstName)); result.Add(OrderingCriteria.LastName, () => service.OrderBy(x=>x.LastName)); result.Add(OrderingCriteria.Position, () => service.OrderBy(x=>x.Position)); result.Add(OrderingCriteria.SeparationDate, () => service.OrderBy(x=>x.SeparationDateToString)); return result; }
public void Service_OrderByCustomPosition_TwoEmployees_ReturnsOrderedByPosition() { var dataProvider = new Mock<IEmployeeData>(); dataProvider.Setup(x => x.GetEmployees()) .Returns(twoEmployeeList); var svc = new EmployeeOrderingService(dataProvider.Object); var result = svc.OrderBy(x=>x.Position); Assert.AreEqual(2, result.Count()); Assert.AreEqual("DBA", result.ElementAt(0).Position); Assert.AreEqual("Manager", result.ElementAt(1).Position); }
public void Service_OrderByCustomDate_ThreeEmployees_ReturnsOrderedByDate() { var dataProvider = new Mock<IEmployeeData>(); dataProvider.Setup(x => x.GetEmployees()) .Returns(threeEmployeeList); var svc = new EmployeeOrderingService(dataProvider.Object); var result = svc.OrderBy(x => x.Position); Assert.AreEqual(3, result.Count()); Assert.AreEqual("Jacquelyn", result.ElementAt(0).FirstName); Assert.AreEqual("Michaela", result.ElementAt(1).FirstName); }
static void Main(string[] args) { // Dependencias var dataProvider = DataProviderFactory.Create(false); var service = new EmployeeOrderingService(dataProvider); // Interacción var orderingCriteria = UserInteraction.GetOrderingCriteria(); // Ejecución DoOrdering(orderingCriteria, service); Console.ReadLine(); }
public void Service_OrderByDefault_TwoEmployees_ReturnsOrderedByLastName() { var dataProvider = new Mock<IEmployeeData>(); dataProvider.Setup(x => x.GetEmployees()) .Returns(twoEmployeeList); var svc = new EmployeeOrderingService(dataProvider.Object); var result = svc.OrderByDefault(); Assert.AreEqual(2, result.Count()); Assert.AreEqual("Jacquelyn", result.ElementAt(0).FirstName); Assert.AreEqual("John", result.ElementAt(1).FirstName); }
public void Service_OrderByDefault_OneEmployee_ReturnsOneResultOnly() { var dataProvider = new Mock<IEmployeeData>(); dataProvider.Setup(x => x.GetEmployees()) .Returns(oneEmployeeList); var svc = new EmployeeOrderingService(dataProvider.Object); var result = svc.OrderByDefault(); Assert.AreEqual(1, result.Count()); Assert.AreEqual("John", result.ElementAt(0).FirstName); }