public void TestModifyStaffSuccess()
        {
            // Arrange
            ManagementController managementController = new ManagementController();
            bool expected = true;

            Staff oldStaff = new Staff();
            oldStaff.StaffID = 1;
            oldStaff.FirstName = "test";
            oldStaff.LastName = "test";
            oldStaff.Gender = PersonGender.Male;
            oldStaff.DateOfBirth = new DateTime(2013, 02, 05);
            oldStaff.MaritalStatus = "single";
            oldStaff.TelephoneNumber = "00000000000";
            oldStaff.AddressLine1 = "test";
            oldStaff.AddressLine2 = "test";
            oldStaff.City = "test";
            oldStaff.County = "test";
            oldStaff.PostCode = "test";
            oldStaff.EmailAddress = "test";
            oldStaff.Permissions = PermissionsFlag.Doctor;

            // Act
            bool actual = managementController.ModifyStaff(oldStaff, 1, "test subject 12", "test", 0, "05/02/2013", "single", "00000000000", "test", "test", "test", "test", "test", "test");

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void TestAddStaffExists()
        {
            // Arrange
            ManagementController mc = new ManagementController();
            bool expected = false;

            // Act
            bool actual = mc.AddStaff(1,"test", "test", "test", "test", "test", "test", "test", new DateTime(2013, 02, 05), "test", 0, "single", "00000000000", 0, "test");

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void TestFindNextStaffIDSuccess()
        {
            // Arrange
            ManagementController mc = new ManagementController();
            int expected = 4;

            // Act
            int actual = mc.GetNextStaffID();

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void TestAddAbsenceSuccess()
        {
            // Arrange
            ManagementController _controller = new ManagementController();
            bool expected = true;

            // Act
            bool actual = _controller.AddAbsence(1, 0, "26-12-2014", "26-12-2014");

            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void TestAddAbsenceFail()
        {
            // Arrange
            ManagementController _controller = new ManagementController();
            bool expected = false;

            // Act
            bool actual = _controller.AddAbsence(1, 0, "25-12-2013", "26-12-2013");

            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void TestAddStaffDoesntExist()
        {
            // Arrange
            ManagementController mc = new ManagementController();
            bool expected = true;

            // Act
            //int staffID = mc.GetNextStaffID();
            bool actual = mc.AddStaff(100, "test 2", "test", "test", "test", "test", "test", "test", new DateTime(2013, 02, 05), "test", 0, "single", "00000000000", 0, "test");

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public FormFindStaff()
        {
            InitializeComponent();

            _staff = new List<Staff>();

            _adminController = new AdminController();
            _managementController = new ManagementController();

            // Add event handler to the staff search
            staffSearch.StaffSelected += SelectStaff;
            staffSearch.AdminController = _adminController;
        }
        public FormAddStaff()
        {
            InitializeComponent();

            _managementController = new ManagementController();

            // Create a random password for the new user
            passwordTxt.Text = RandomString(7);

            // Get the ID of the new user
            userIDTxt.Text = _managementController.GetNextStaffID().ToString();

            this.CancelButton = cancelBtn;
        }
        public FormAddAbsence(Staff staff)
        {
            InitializeComponent();

            _adminController = new AdminController();
            _staff = staff;

            // Create the management controls if the current user can use them
            if (UserSession.Instance().CurrentUser.Permissions == PermissionsFlag.Management)
            {
                _managementController = new ManagementController();
            }

            RefreshForm();
        }
        public void TestRemoveAbsenceFail()
        {
            // Arrange
            ManagementController mc = new ManagementController();
            bool expected = false ;

            Absence absence = new Absence();
            absence.StaffID = 10;
            absence.AbsenceType = AbsenceType.Holiday;
            absence.StartDate = new DateTime(2013, 12, 25);
            absence.EndDate = new DateTime(2013, 12, 26);

            // Act
            bool actual = mc.RemoveAbsence(absence);

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void TestStaffAvailability()
        {
            // Arrange
            ManagementController managerController = new ManagementController();
            Staff newStaff = new Staff();
            newStaff.StaffID = 1;

            List<Appointment> expected = new List<Appointment>();
            expected.Add(new Appointment());
            expected[0].AppointmentID = 1;
            expected[0].PatientID = 1;
            expected[0].StaffID = 1;
            expected[0].StartDate = new DateTime(2000, 1, 1, 9, 0, 0);
            expected[0].EndDate = new DateTime(2000, 1, 1, 9, 15, 0);

            // Act
            newStaff.Appointments = managerController.GetStaffAvailability(newStaff, new DateTime(2000, 1, 1));

            // Assert
            CollectionAssert.AreEqual(expected, newStaff.Appointments);
        }
        public void TestGetAllMedicineSuccess()
        {
            // Arrange
            ManagementController mc = new ManagementController();
            List<Medicine> expected = new List<Medicine>();
            expected.Add(new Medicine());
            expected[0].MedicineID = 1;
            expected[0].MedicineName = "Thyroxine";
            expected[0].Dosage = "125mg";
            expected[0].Extendable = false;
            expected.Add(new Medicine());
            expected[1].MedicineID = 2;
            expected[1].MedicineName = "Thyroxine";
            expected[1].Dosage = "50mg";
            expected[1].Extendable = true;

            // Act
            List<Medicine> actual = mc.GetAllMedicines();

            // Assert
            CollectionAssert.AreEqual(expected, actual);
        }
        public void TestResetPasswordSuccess()
        {
            // Arrange
            ManagementController mc = new ManagementController();
            bool expected = true;

            // Act
            bool actual = mc.ResetPassword(1, "password");

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void TestGetStaffAbsences()
        {
            // Arrange
            ManagementController controller = new ManagementController();
            Staff expectedStaff = new Staff();
            expectedStaff.Absences = new List<Absence>();
            expectedStaff.Absences.Add(new Absence());
            expectedStaff.Absences[0].StaffID = 1;
            expectedStaff.Absences[0].AbsenceType = AbsenceType.Holiday;
            expectedStaff.Absences[0].StartDate = new DateTime(2013, 12, 25);
            expectedStaff.Absences[0].EndDate = new DateTime(2013, 12, 26);

            // Act
            Staff actualPatient = new Staff();
            actualPatient.Absences = controller.GetStaffAbsences(1);

            // Assert
            CollectionAssert.AreEqual(expectedStaff.Absences, actualPatient.Absences);
        }