def test_open_door_bad_key_is_not_found(self):
        #path: regex ok, key is not found
        my_key = AccessManager()
        with self.assertRaises(AccessManagementException) as cm:
            result = my_key.open_door("fff00d78646ed41a91d60ec2fc1ed326238e510134ca52e5d9b1de5cbdf2b8ab")

        self.assertEqual("key is not found or is expired", cm.exception.message)
    def test_store_json_open_door_1(self):
        """key valid, check store in storeOpenKey.json"""
        my_key = AccessManager()
        expected_dict = {
            "key":
            "de000a04f3a9b1d15b07e38b166f00f3fb1bf46533f32ac37156faf43e47f722",
            "time": 1615627129.580297
        }

        open_door_store = OpenKeyStore()
        open_door_store.empty_store()

        my_key.open_door(
            "de000a04f3a9b1d15b07e38b166f00f3fb1bf46533f32ac37156faf43e47f722")

        with open(JSON_FILES_PATH + "/storeOpenKey.json",
                  "r",
                  encoding="utf-8",
                  newline="") as file:
            data = json.load(file)
            self.assertDictEqual(expected_dict, data[0])
    def test_open_door_bad_key_is_expired(self):
        my_key = AccessManager()
        with self.assertRaises(AccessManagementException) as cm:
            result = my_key.open_door("49688b213220ee38ee7f2f0c9dcf394b47bb17f376ae9f53564f135c4a247691")

        self.assertEqual("key is not found or is expired", cm.exception.message)
 def test_open_door_resident(self):
     #path: regex ok, key is found, expiration date is 0, resident
     my_key = AccessManager()
     result = my_key.open_door("de000a04f3a9b1d15b07e38b166f00f3fb1bf46533f32ac37156faf43e47f722")
     self.assertEqual(True, result)
 def test_open_door_good(self):
     # path: regex ok , key is found , key is not expired, guest
     my_key = AccessManager()
     result = my_key.open_door("de000a04f3a9b1d15b07e38b166f00f3fb1bf46533f32ac37156faf43e47f722")
     self.assertEqual(True, result)
 def test_open_door_bad_key_regex(self):
     # path: regex is not valid , key length is 63 chars
     my_key = AccessManager()
     with self.assertRaises(AccessManagementException) as cm:
         result = my_key.open_door("cc161c01a4bcca82e841b3446e2a3edb3539d72a3a7ec40a07d236998482906")
     self.assertEqual("key invalid", cm.exception.message)