Example #1
0
        private void InitializeTestData()
        {
            IEmployee2Repository repoEmployee = new Employee2Repository();

            //
            // elimino registros previos
            //
            List <Employee2> list = repoEmployee.GetAll();

            list.ForEach(x => repoEmployee.Delete(x));


            //
            // creo un empleado interno
            //
            employee1 = new EmployeeInternal()
            {
                EmployeeId = repoEmployee.GetLastId() + 1,
                FirstName  = "name1",
                LastName   = "lastname1",
                HireDate   = DateTime.Now.AddMonths(-10)
            };
            repoEmployee.Create(employee1);

            //
            // creo un empleado externo
            //
            employee2 = new EmployeeExternal()
            {
                EmployeeId        = repoEmployee.GetLastId() + 1,
                FirstName         = "name2",
                LastName          = "lastname2",
                ConsultantName    = "ConsultantName2",
                ContactExpiration = DateTime.Now.AddYears(2)
            };
            repoEmployee.Create(employee2);

            //
            // creo otro empleado externo
            //
            employee3 = new EmployeeExternal()
            {
                EmployeeId        = repoEmployee.GetLastId() + 1,
                FirstName         = "name3",
                LastName          = "lastname3",
                ConsultantName    = "ConsultantName3",
                ContactExpiration = DateTime.Now.AddYears(1)
            };
            repoEmployee.Create(employee3);
        }
        public void GetAll_WithBaseType_Employee()
        {
            IEmployee2Repository repoEmployee = new Employee2Repository();

            //
            // creo un empleado interno
            //
            EmployeeInternal employee1 = new EmployeeInternal()
            {
                FirstName = "name1",
                LastName  = "lastname1",
                HireDate  = DateTime.Now.AddMonths(-10)
            };

            repoEmployee.Create(employee1);

            //
            // creo un empleado interno
            //
            //saldra error por q esta definida como clase abstracta

            //*//Employee2 employee2 = new Employee2()
            //*//{
            //*//    FirstName = "name2",
            //*//    LastName = "lastname2"
            //*//};
            //*//repoEmployee.Create(employee2);

            //
            //recupero todos los empleados
            //

            List <Employee2> listIntEmployee = repoEmployee.GetAll();

            //
            // Assert
            //
            Assert.AreEqual(listIntEmployee.Count, 2);

            Assert.IsInstanceOfType(listIntEmployee[0], typeof(EmployeeInternal));
            //validamos los tipos base de cada objeto recuperado
            Assert.AreEqual(listIntEmployee[0].GetType().BaseType, typeof(Employee));
            Assert.AreEqual(listIntEmployee[1].GetType().BaseType, typeof(object));

            //Al final del test se valida los tipo base de cada instancia,
            //para el empleado interno será la clase “Employee”,
            //pero para una instancia base del empleado al no derivar de ninguna otra será el tipo “object”.
        }
        public void GetAll_Employee()
        {
            InitializeTestData();

            //
            //recupero todos los empleados
            //
            IEmployee2Repository repoEmployee = new Employee2Repository();

            List <Employee2> listIntEmployee = repoEmployee.GetAll();

            //
            // Assert
            //
            Assert.AreEqual(listIntEmployee.Count, 3);

            Assert.IsInstanceOfType(listIntEmployee[0], typeof(EmployeeInternal));
            Assert.IsInstanceOfType(listIntEmployee[1], typeof(EmployeeExternal));
            Assert.IsInstanceOfType(listIntEmployee[2], typeof(EmployeeExternal));
        }