import unittest

from strongpassword import StrongPassword

class StrongPasswordTestCase(unittest.TestCase):

    def test_check_len(self):
        self.assertFalse(StrongPassword.check_len("1234567"))
        self.assertTrue(StrongPassword.check_len("12345678"))

    def test_check_uppercase(self):
        self.assertFalse(StrongPassword.check_uppercase("abcdefgh"))
        self.assertTrue(StrongPassword.check_uppercase("abcDefgh"))

    def test_check_lowercase(self):
        self.assertFalse(StrongPassword.check_lowercase("ABCDEFGH"))
        self.assertTrue(StrongPassword.check_lowercase("abcDEFGH"))

    def test_check_number(self):
        self.assertFalse(StrongPassword.check_number("abcdefgh"))
        self.assertTrue(StrongPassword.check_number("abc12345"))

    def test_check_special_char(self):
        self.assertFalse(StrongPassword.check_special_char("abcdefgh"))
        self.assertTrue(StrongPassword.check_special_char("abc!@#$%"))

    def test_is_strong(self):
        self.assertFalse(StrongPassword.is_strong("1234567"))
        self.assertFalse(StrongPassword.is_strong("abcdefgh"))
        self.assertFalse(StrongPassword.is_strong("abc12345"))
        self.assertFalse(StrongPassword.is_strong("abc!@#$%"))
        self.assertTrue(StrongPassword.is_strong("abcD123!"))

if __name__ == '__main__':
    unittest.main()