public void SetDateOfTerminationTest()
        {
            ParttimeEmployee pe = new ParttimeEmployee();
            FulltimeEmployee fe = new FulltimeEmployee();

            pe.SetDateofBirth(new DateTime(1990, 5, 13));
            fe.SetDateofBirth(new DateTime(1990, 5, 13));

            pe.SetDateOfHire(new DateTime(2008, 1, 1));
            fe.SetDateOfHire(new DateTime(2008, 1, 1));

            bool retPe = pe.SetDateOfTermination(new DateTime(2010, 6, 6));
            bool retFe = fe.SetDateOfTermination(new DateTime(2010, 6, 6));

            Assert.AreEqual(retPe, true);
            Assert.AreEqual(retFe, true);
        }
示例#2
0
        /**
         * @fn  private bool ModifyFulltimeEmployee(ModifyFulltimeEmployee employee, string returnMessage)
         *
         * @brief   allows user to modify this employee using the command line.
         *
         * @param   ModifyFulltimeEmployee    The employee to modify.
         * @param   returnMessage       message displayed to the user as the option to return from this method.
         *
         * @return  whether the user canceled.
         */
        private bool ModifyFulltimeEmployee(FulltimeEmployee employee, string returnMessage)
        {
            bool done = false;
            bool isCanceled = false;
            //loop until user goes back
            do {
                Console.Clear();
                Console.WriteLine(employee.Details());
                Console.WriteLine("1.   Change First Name(A-Z, a-z, ', -)");
                Console.WriteLine("2.   Change Last Name(A-Z, a-z, ', -)");
                Console.WriteLine("3.   Change Date of birth(yyyy-mm-dd)");
                Console.WriteLine("4.   Change Social insurance number");
                Console.WriteLine("5.   Change Date of hire(yyyy-mm-dd)");
                Console.WriteLine("6.   Change Date of termination(yyyy-mm-dd)");
                Console.WriteLine("7.   Change Salary");
                Console.WriteLine("8.   Cancel");
                Console.WriteLine("9.   " + returnMessage);

                //get user input until valid
                bool valid;
                do {
                    valid = true;
                    string input = Console.ReadLine();
                    switch(input) {
                        case "1":
                            Console.Write("Enter a new first name:");
                            while(employee.SetFirstName(Console.ReadLine()) == false) {
                                Console.Write("Invalid name, Enter a new first name:");
                            }
                            break;
                        case "2":
                            Console.Write("Enter a new last name:");
                            while(employee.SetLastName(Console.ReadLine()) == false) {
                                Console.Write("Invalid name, Enter a new last name:");
                            }
                            break;
                        case "3":
                            bool dateOfBirthDone = false;
                            while (!dateOfBirthDone) {
                                Console.Write("Enter a new date of birth:");
                                try {
                                    while (employee.SetDateofBirth(DateTime.ParseExact(Console.ReadLine(), "yyyy-MM-dd", CultureInfo.InvariantCulture)) == false) {
                                        Console.Write("Invalid date, Enter a new date of birth:");
                                    }
                                    dateOfBirthDone = true;
                                }
                                catch (FormatException ex) {
                                    Console.WriteLine("Invalid date, Format: yyyy-mm-dd");
                                    dateOfBirthDone = false;
                                }
                            }
                            break;
                        case "4":
                            Console.Write("Enter a new social insurance number:");
                            while (employee.SetSocialInsuranceNumber(Console.ReadLine()) == false) {
                                Console.Write("Invalid number, Enter a new social insurance number:");
                            }
                            break;
                        case "5":
                            bool dateOfHireDone = false;
                            while (!dateOfHireDone) {
                                Console.Write("Enter a new date of hire:");
                                try {
                                    while (employee.SetDateOfHire(DateTime.ParseExact(Console.ReadLine(), "yyyy-MM-dd", CultureInfo.InvariantCulture)) == false) {
                                        Console.Write("Invalid date, Enter a new date of hire:");
                                    }
                                    dateOfHireDone = true;
                                }
                                catch (FormatException ex) {
                                    Console.WriteLine("Invalid date, Format: yyyy-mm-dd");
                                    dateOfHireDone = false;
                                }
                            }
                            break;
                        case "6":
                            bool dateOfTerminationDone = false;
                            while (!dateOfTerminationDone) {
                                Console.Write("Enter a new date of termination:");
                                try {
                                    while (employee.SetDateOfTermination(DateTime.ParseExact(Console.ReadLine(), "yyyy-MM-dd", CultureInfo.InvariantCulture)) == false) {
                                        Console.Write("Invalid date, Enter a new date of termination:");
                                    }
                                    dateOfTerminationDone = true;
                                }
                                catch (FormatException ex){
                                    Console.WriteLine("Invalid date, Format: yyyy-mm-dd");
                                    dateOfTerminationDone = false;
                                }
                            }
                            break;
                        case "7":
                            bool salaryDone = false;
                            while (!salaryDone) {
                                Console.Write("Enter a new salary:");
                                try {
                                    while (employee.SetSalary(decimal.Parse(Console.ReadLine())) == false) {
                                        Console.Write("Invalid pay, Enter a new salary:");
                                    }
                                    salaryDone = true;
                                }
                                catch (FormatException ex) {
                                    Console.WriteLine("Salary must be a number");
                                    salaryDone = false;
                                }
                            }
                            break;
                        case "8":
                            done = true;//end
                            isCanceled = true;
                            break;
                        case "9":
                            done = true;//end
                            isCanceled = false;
                            break;
                        default:
                            Console.WriteLine("Invalid input, please enter number corrispoding to a menu option:");
                            valid = false;
                            break;
                    }
                } while(!valid);

            } while(!done);

            return isCanceled;
        }
        public void SetDateofBirthTest()
        {
            SeasonalEmployee se = new SeasonalEmployee();
            bool retSe = se.SetDateofBirth(new DateTime(1990, 11, 23));

            ParttimeEmployee pe = new ParttimeEmployee();
            bool retPe = pe.SetDateofBirth(new DateTime(1990, 11, 23));

            FulltimeEmployee fe = new FulltimeEmployee();
            bool retFe = fe.SetDateofBirth(new DateTime(1990, 11, 23));

            ContractEmployee ce = new ContractEmployee();
            bool retCe = ce.SetDateofBirth(new DateTime(1990, 11, 23));

            Assert.AreEqual(retSe, true);
            Assert.AreEqual(retPe, true);
            Assert.AreEqual(retFe, true);
            Assert.AreEqual(retCe, true);
        }