diff --git a/tests/test_memorycache.py b/tests/test_memorycache.py
new file mode 100644
index 0000000..9f9f3f7
--- /dev/null
+++ b/tests/test_memorycache.py
@@ -0,0 +1,43 @@
+import unittest
+
+from imoog.cache.memorycache import InMemoryCache
+
+
+class InMemoryCacheTests(unittest.IsolatedAsyncioTestCase):
+ async def asyncSetUp(self):
+ self.cache = InMemoryCache()
+ await self.cache.connect(max_cache_size=10)
+
+ async def test_set_and_get_preserve_image_and_mime(self):
+ await self.cache.set("asset", b"image bytes", "image/png")
+
+ self.assertEqual(
+ await self.cache.get("asset"),
+ (b"image bytes", "image/png"),
+ )
+
+ async def test_get_returns_none_when_either_part_is_missing(self):
+ self.cache._connection["image-only"] = b"image bytes"
+ self.cache._connection["mime-only__mime__"] = "image/jpeg"
+
+ self.assertIsNone(await self.cache.get("image-only"))
+ self.assertIsNone(await self.cache.get("mime-only"))
+ self.assertIsNone(await self.cache.get("unknown"))
+
+ async def test_delete_removes_both_parts_and_reports_result(self):
+ await self.cache.set("asset", b"image bytes", "image/gif")
+
+ self.assertTrue(await self.cache.delete("asset"))
+ self.assertIsNone(await self.cache.get("asset"))
+ self.assertFalse(await self.cache.delete("asset"))
+
+ async def test_cleanup_clears_cached_values(self):
+ await self.cache.set("asset", b"image bytes", "image/webp")
+
+ await self.cache.cleanup()
+
+ self.assertEqual(self.cache._connection, {})
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/tests/test_opengraph.py b/tests/test_opengraph.py
new file mode 100644
index 0000000..7a9d8e2
--- /dev/null
+++ b/tests/test_opengraph.py
@@ -0,0 +1,34 @@
+import unittest
+
+from imoog.opengraph import generate_opengraph_tag, generate_tags_from_dict
+
+
+class OpenGraphTests(unittest.TestCase):
+ def test_generate_opengraph_tag_adds_namespace(self):
+ self.assertEqual(
+ generate_opengraph_tag("title", "An image"),
+ '',
+ )
+
+ def test_generate_tags_from_dict_preserves_input_order(self):
+ properties = {
+ "title": "An image",
+ "type": "website",
+ "site_name": "imoog",
+ }
+
+ self.assertEqual(
+ generate_tags_from_dict(properties),
+ [
+ '',
+ '',
+ '',
+ ],
+ )
+
+ def test_generate_tags_from_empty_dict_returns_empty_list(self):
+ self.assertEqual(generate_tags_from_dict({}), [])
+
+
+if __name__ == "__main__":
+ unittest.main()