Example #1
0
        public void employee_should_be_able_to_retrieve_financial_info()
        {
            Action procedure = () =>
                {
                    Employee employee = SharedCode.InstallEmployee(database);

                    Employee employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                    Assert.IsTrue(employeeRetrieved.FinancialInfo.Id == null);


                    employeeRetrieved.FinancialInfo = new FinancialInfo {Bank = "TD", EmployeeId = employeeRetrieved.Id};

                    database.Insert(employeeRetrieved.FinancialInfo);


                    Employee employeeRetrieved1 = new EmployeeBL(database).RetrieveById(employee.Id);


                    Assert.IsTrue(employeeRetrieved1.FinancialInfo.Bank == "TD");
                    Assert.IsTrue(employeeRetrieved1.FinancialInfo.Id != null);


                    SharedCode.UninstallEmployee(employeeRetrieved1, database);
                };


            database.ExecuteInTest(procedure);
        }
Example #2
0
        public void employee_should_be_able_to_retrieve_additional_info_if_exists()
        {
            Action procedure = () =>
            {
                Employee employee = SharedCode.InstallEmployee(database);

                Employee employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                Assert.IsTrue(employeeRetrieved.AdditionalInfo.Id == null);

                employeeRetrieved.AdditionalInfo= new AdditionalInfo { Notes="test" };

                new EmployeeBL(database).UpdateEmployee(employeeRetrieved);

                var employeeUpdated = new EmployeeBL(database).RetrieveById(employeeRetrieved.Id);

                Assert.IsTrue(employeeUpdated.AdditionalInfo.Id != null);

                employeeUpdated.AdditionalInfo.MarkAsDeleted();

                new EmployeeBL(database).UpdateEmployee(employeeUpdated);

                employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                Assert.IsTrue(employeeRetrieved.AdditionalInfo.Id == null);

            };


            database.ExecuteInTest(procedure);
        }
Example #3
0
        public void employee_should_be_able_to_delete_programs_using_criteria()
        {
            Action procedure = () =>
                {
                    Employee employee = SharedCode.InstallEmployee(database);

                    Employee employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                    Assert.IsTrue(employeeRetrieved.Programs.Count == 2);

                    database.DeleteAll<EmployeeProgram>(ep => ep.EmployeeId == employeeRetrieved.Id);


                    Employee employeeRetrieved1 = new EmployeeBL(database).RetrieveById(employee.Id);

                    Assert.IsTrue(employeeRetrieved1.Programs.Count == 0);
                };


            database.ExecuteInTest(procedure);
        }
Example #4
0
        public void employee_self_join_should_be_supported()
        {
            Action procedure = () =>
            {
                Employee employee = SharedCode.InstallEmployee(database);

                var employee1 = FakeEmployee.GetFakeEmployee1(database);

                employee1.SupervisorId = employee.Id;

                new EmployeeBL(database).InsertEmployee(employee1);

                var employee1Retrieved = new EmployeeBL(database).RetrieveById(employee1.Id);

                Assert.IsTrue(employee1Retrieved.SupervisorId == employee.Id);
                Assert.IsTrue(employee1Retrieved.SupervisorFistName== employee.FirstName);
                Assert.IsTrue(employee1Retrieved.SupervisorLastName == employee.LastName);


            };


            database.ExecuteInTest(procedure);
        }
Example #5
0
        public void employee_financial_info_bank_column_readonly()
        {
            Action procedure = () =>
                {
                    Employee employee = SharedCode.InstallEmployee(database);

                    employee.FinancialInfo = new FinancialInfo {EmployeeId = employee.Id};

                    database.Insert(employee.FinancialInfo);


                    Employee employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                    employeeRetrieved.FinancialInfo.Bank = "BMO";


                    new EmployeeBL(database).UpdateEmployee(employeeRetrieved);


                    Employee employeeUpdated = new EmployeeBL(database).RetrieveById(employee.Id);

                    Assert.IsTrue(employeeUpdated.FinancialInfo.Bank == "TD");
                };


            database.ExecuteInTest(procedure);
        }
Example #6
0
        public void employee_should_be_able_to_retrieve_country_name()
        {
            Action procedure = () =>
                {
                    var  employee = SharedCode.InstallEmployee(database);

                    var  employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                    Assert.IsTrue(employeeRetrieved.Country == Country.China.ToString());


                    SharedCode.UninstallEmployee(employeeRetrieved, database);
                };


            database.ExecuteInTest(procedure);
        }
Example #7
0
        public void employee_should_be_able_to_retrieve_role_name()
        {
            Action procedure = () =>
            {
                var employee = SharedCode.InstallEmployee(database);

                var employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                Assert.IsTrue(employeeRetrieved.Role.Name == "Employee");


                SharedCode.UninstallEmployee(employeeRetrieved, database);
            };


            database.ExecuteInTest(procedure);
        }
Example #8
0
        public void employee_should_be_able_to_audit()
        {
            Action procedure = () =>
                {
                    //arrange
                    Employee employee = SharedCode.InstallEmployee(database);

                    Employee employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                    employeeRetrieved.FirstName = "New Name";

                    employeeRetrieved.Department =
                        new LookupBL(database).RetrieveLookupByName(Department.Finance.ToString());


                    employeeRetrieved.Programs[0].MarkAsDeleted();
                    Assert.IsTrue(employeeRetrieved.Programs[1].ProgramId == 3);

                    employeeRetrieved.Programs[1].Status = ProgramStatus.Registered;
                    employeeRetrieved.Programs.Add(new EmployeeProgram {ProgramId = 1, Status = ProgramStatus.Completed});


                    new EmployeeBL(database).UpdateEmployee(employeeRetrieved);


                    SharedCode.UninstallEmployee(employee, database);


                    //assert
                    string recordId = employeeRetrieved.Id.ToString();
                    string tableName = "Employee";

                    List<AuditRecord> auditRecords =
                        database.RetrieveAll <AuditRecord>(a => a.TableName == tableName &&  a.RecordId == recordId);


                    Assert.IsTrue(auditRecords.Count == 3);

                    Assert.IsTrue(auditRecords.Find(a => a.Operation == "Insert") != null);
                    Assert.IsTrue(auditRecords.Find(a => a.Operation == "Update") != null);
                    Assert.IsTrue(auditRecords.Find(a => a.Operation == "Delete") != null);
                };


            database.ExecuteInTest(procedure);
        }
Example #9
0
        public void employee_should_retrieve_and_save_nullable()
        {
            Action procedure = () =>
                {
                    //Act
                    var  employee = SharedCode.InstallEmployee(database);

                    var  employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                    //Assert 
                    Assert.IsTrue(employeeRetrieved.Age == 41);
                    Assert.IsTrue(employeeRetrieved.Weight == null);
                    Assert.IsTrue(employeeRetrieved.Married == null);
                    Assert.IsTrue(employeeRetrieved.EmployedSince != null);

                    employeeRetrieved.Age = null;
                    employeeRetrieved.Weight = 145.67m;
                    employeeRetrieved.EmployedSince = null;


                    new EmployeeBL(database).UpdateEmployee(employeeRetrieved);

                    Employee employeeSaved = new EmployeeBL(database).RetrieveById(employee.Id);

                    Assert.IsTrue(employeeSaved.Age == null);
                    Assert.IsTrue(employeeSaved.Weight == 145.67m);
                    Assert.IsTrue(employeeSaved.Married == null);
                    Assert.IsTrue(employeeSaved.EmployedSince == null);
                };


            database.ExecuteInTest(procedure);
        }
Example #10
0
        public void employee_address_should_be_able_to_update()
        {
            Action procedure = () =>
            {
                //arrange
                var  employee = SharedCode.InstallEmployee(database);

                var  employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                employeeRetrieved.Address.StreetName = "New Street";
 
                new EmployeeBL(database).UpdateEmployee(employeeRetrieved);

                var employeeUpdated = new EmployeeBL(database).RetrieveById(employee.Id);

                //assert 
                Assert.IsTrue(employeeUpdated.Address.StreetName == employeeRetrieved.Address.StreetName);


                var address = employeeUpdated.Address;

                address.PostalCode = address.PostalCode + "LZ";

                database.Update(address);

                var addressUpdated = database.RetrieveObject<Address>(a => a.Id == address.Id);

                //assert 

                Assert.IsTrue(addressUpdated.PostalCode == address.PostalCode);

            };


            database.ExecuteInTest(procedure);
        }
Example #11
0
        public void employee_should_be_able_to_update()
        {
            Action procedure = () =>
                {
                    //arrange
                    Employee employee = SharedCode.InstallEmployee(database);


                    Employee employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);


                    employeeRetrieved.FirstName = "New Name";

                    employeeRetrieved.Department =
                        new LookupBL(database).RetrieveLookupByName(Department.Finance.ToString());


                    employeeRetrieved.Programs[0].MarkAsDeleted();
                    Assert.IsTrue(employeeRetrieved.Programs[1].ProgramId == 3);

                    employeeRetrieved.Programs[1].Status = ProgramStatus.Registered;
                    employeeRetrieved.Programs.Add(new EmployeeProgram {ProgramId = 1, Status = ProgramStatus.Completed});


                    new EmployeeBL(database).UpdateEmployee(employeeRetrieved);

                    var  employeeUpdated = new EmployeeBL(database).RetrieveById(employee.Id);

                    //assert 
                    Assert.IsTrue(employeeUpdated.FirstName == "New Name");

                    Assert.IsTrue(employeeUpdated.Department.Name == Department.Finance.ToString());

                    Assert.IsTrue(employeeUpdated.Programs.Count == 2);

                    var  found = employeeUpdated.Programs.Find(p => p.ProgramId == 3);
                    Assert.IsTrue(found != null);
                    Assert.IsTrue(found.Status == ProgramStatus.Registered);

                    found = employeeUpdated.Programs.Find(p => p.ProgramId == 1);
                    Assert.IsTrue(found != null);
                    Assert.IsTrue(found.Status == ProgramStatus.Completed);
                };


            database.ExecuteInTest(procedure);
        }
Example #12
0
        public void employee_should_be_able_to_insert()
        {
            Action procedure = () =>
                {
                    //Act
                    Employee employee = SharedCode.InstallEmployee(database);

                    Employee employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                    //Assert 
                    Assert.IsTrue(employeeRetrieved.FirstName == employee.FirstName);
                    Assert.IsTrue(employeeRetrieved.Salary == employee.Salary);
                    Assert.IsTrue(employeeRetrieved.Identifier == employee.Identifier);
                };


            database.ExecuteInTest(procedure);
        }
Example #13
0
        public void employee_should_be_able_to_retrieve_program_name()
        {
            Action procedure = () =>
                {
                    //Act
                    Employee employee = SharedCode.InstallEmployee(database);


                    Employee employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                    //Assert 
                    Assert.IsTrue(employeeRetrieved.Programs.Count == 2);
                    Assert.IsTrue(employeeRetrieved.Programs[0].ProgramName != "");
                };


            database.ExecuteInTest(procedure);
        }
Example #14
0
        public void employee_should_be_able_to_retrieve_multiple_lookups()
        {
            Action procedure = () =>
                {
                    //Act
                    var  employee = SharedCode.InstallEmployee(database);
                    var  employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                    //Assert 
                    Assert.IsTrue(employeeRetrieved.FirstName == employee.FirstName);
                    Assert.IsTrue(employeeRetrieved.Salary == employee.Salary);

                    Assert.IsTrue(employeeRetrieved.Department.Name == Department.IT.ToString());
                    Assert.IsTrue(employeeRetrieved.Role.Name == Role.Employee.ToString());
                };


            database.ExecuteInTest(procedure);
        }
Example #15
0
        public void employee_should_be_able_to_retrieve_lookups()
        {
            Action procedure = () =>
                {
                    //Act
                    Employee employee = SharedCode.InstallEmployee(database);


                    Employee employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);

                    //Assert 
                    Assert.IsTrue(employeeRetrieved.FirstName == employee.FirstName);
                    Assert.IsTrue(employeeRetrieved.Salary == employee.Salary);

                    Assert.IsTrue(employeeRetrieved.Sex.Id == 0);

                    Assert.IsTrue(employeeRetrieved.Sex.Name == null);

                    employeeRetrieved.Sex = new LookupBL(database).RetrieveLookupByName("Male");

                    new EmployeeBL(database).UpdateEmployee(employeeRetrieved);

                    Employee employeeUpdated = new EmployeeBL(database).RetrieveById(employee.Id);

                    Assert.IsTrue(employeeUpdated.Sex.Id == employeeRetrieved.Sex.Id);

                    Assert.IsTrue(employeeUpdated.Sex.Name == employeeRetrieved.Sex.Name);


                    SharedCode.UninstallEmployee(employeeUpdated, database);
                };


            database.ExecuteInTest(procedure);
        }
Example #16
0
        public void employee_should_be_able_to_retrieve_addresses()
        {
            Action procedure = () =>
                {
                    var  employee = FakeEmployee.GetFakeEmployee1(database);

                    database.Insert(employee.Address);
                    database.Insert(employee);

                    var  employeeRetrieved = new EmployeeBL(database).RetrieveById(employee.Id);


                    Assert.IsTrue(employeeRetrieved.Address.StreetName == "Centre Street");

                 
                };


            database.ExecuteInTest(procedure);
        }