class TestStudent(unittest.TestCase):

    def setUp(self):
        self.testStudent = Student("Jones", "Bob", "MALE", "17th February 1983")

    def tearDown(self):
        #TODO: [e] Destroy Student object?
        pass

    #Change property tests.
    def testShouldChangeForename(self):
        self.testStudent.setForename("James")
        #TODO: [d] 1 unit test per test function is required, as only 1 picked up by test suite. Or is this one test?
        self.assertEqual(self.testStudent.getForename(), "James",
                         "Failed to return changed student forename.")
        self.assertEqual(self.testStudent.Name(case="Proper", order="Surname, Forename"), "Jones, James",
                         "Failed to return Name correctly after change to student forename.")
        self.testStudent.setForename("Bob")  # Reset.
        self.assertEqual(self.testStudent.getForename(), "Bob",
                         "Failed to change student forename.")
        self.assertEqual(self.testStudent.Name(case="Proper", order="Surname, Forename"), "Jones, Bob",
                         "Failed to return Name correctly after change to student forename.")
 def setUp(self):
     self.testStudent = Student("Jones", "Bob", "MALE", "17th February 1983")