Added test cases, fixed a bug
diff --git a/cryptography/fernet.py b/cryptography/fernet.py
index 59d8ad0..2c134bb 100644
--- a/cryptography/fernet.py
+++ b/cryptography/fernet.py
@@ -53,8 +53,8 @@
         hmac = h.digest()
         if not constant_time_compare(hmac, data[-32:]):
             raise ValueError
-        unencryptor = BlockCipher(ciphers.AES(self.encryption_key), modes.CBC(iv)).unencryptor()
-        plaintext_padded = unencryptor.update(ciphertext) + unencryptor.finalize()
+        decryptor = BlockCipher(ciphers.AES(self.encryption_key), modes.CBC(iv)).decryptor()
+        plaintext_padded = decryptor.update(ciphertext) + decryptor.finalize()
         unpadder = padding.PKCS7(ciphers.AES.block_size).unpadder()
         return unpadder.update(plaintext_padded) + unpadder.finalize()
 
diff --git a/tests/test_fernet.py b/tests/test_fernet.py
new file mode 100644
index 0000000..e9d07f8
--- /dev/null
+++ b/tests/test_fernet.py
@@ -0,0 +1,23 @@
+import base64
+
+from cryptography.fernet import Fernet
+
+
+class TestFernet(object):
+    def test_generate(self):
+        f = Fernet(base64.urlsafe_b64decode(
+            b"cw_0x689RpI-jtRR7oE8h_eQsKImvJapLeSbXpwF4e4="
+        ))
+        token = f._encrypt_from_parts(
+            b"hello",
+            499162800,
+            b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F",
+        )
+        assert token == b"gAAAAAAdwJ6wAAECAwQFBgcICQoLDA0ODy021cpGVWKZ_eEwCGM4BLLF_5CV9dOPmrhuVUPgJobwOz7JcbmrR64jVmpU4IwqDA=="
+
+    def test_verify(self):
+        f = Fernet(base64.urlsafe_b64decode(
+            b"cw_0x689RpI-jtRR7oE8h_eQsKImvJapLeSbXpwF4e4="
+        ))
+        payload = f.decrypt(b"gAAAAAAdwJ6wAAECAwQFBgcICQoLDA0ODy021cpGVWKZ_eEwCGM4BLLF_5CV9dOPmrhuVUPgJobwOz7JcbmrR64jVmpU4IwqDA==", 60)
+        assert payload == b"hello"