✨ Add loaders implementation for tests
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Tue, 3 Dec 2019 17:54:19 +0000 (18:54 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 11 Dec 2019 15:59:01 +0000 (16:59 +0100)
src/test/kotlin/net/pterodactylus/sone/test/TestLoaders.kt [new file with mode: 0644]

diff --git a/src/test/kotlin/net/pterodactylus/sone/test/TestLoaders.kt b/src/test/kotlin/net/pterodactylus/sone/test/TestLoaders.kt
new file mode 100644 (file)
index 0000000..f71e9f5
--- /dev/null
@@ -0,0 +1,21 @@
+package net.pterodactylus.sone.test
+
+import net.pterodactylus.sone.main.*
+import net.pterodactylus.util.template.*
+import net.pterodactylus.util.web.*
+
+/**
+ * [Loaders] implementation for use in tests. Use [templates] to control what templates are
+ * returned by the [loadTemplate] method.
+ */
+class TestLoaders : Loaders {
+
+       val templates = mutableMapOf<String, Template>()
+
+       override fun loadTemplate(path: String) = templates[path] ?: Template()
+
+       override fun <REQ : Request> loadStaticPage(basePath: String, prefix: String, mimeType: String) = TestPage<REQ>()
+
+       override fun getTemplateProvider() = TemplateProvider { _, _ -> Template() }
+
+}