Esempio n. 1
0
 private static void DoOrdering(OrderingCriteria criteria, EmployeeOrderingService service)
 {
     var mapping = CreateOrdersMapping(service);
     var orderingMethod = mapping[criteria];
     IEnumerable<Employee> employees = orderingMethod();
     PrintResult(employees);
 }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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();
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }