♻️ Add SoneRequest for Sone-specific request values
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / page / SoneRequestTest.kt
diff --git a/src/test/kotlin/net/pterodactylus/sone/web/page/SoneRequestTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/page/SoneRequestTest.kt
new file mode 100644 (file)
index 0000000..dc2b4a5
--- /dev/null
@@ -0,0 +1,47 @@
+package net.pterodactylus.sone.web.page
+
+import freenet.clients.http.*
+import freenet.support.api.*
+import net.pterodactylus.sone.core.*
+import net.pterodactylus.sone.test.*
+import net.pterodactylus.util.web.*
+import org.hamcrest.MatcherAssert.*
+import org.hamcrest.Matchers.*
+import org.junit.*
+import org.mockito.*
+import java.net.*
+
+class SoneRequestTest {
+
+       private val uri = URI(".")
+       private val method = Method.GET
+       private val httpRequest = Mockito.mock(HTTPRequest::class.java)
+       private val toadletContext = Mockito.mock(ToadletContext::class.java)
+       private val core = mock<Core>()
+       private val soneRequest = SoneRequest(uri, method, httpRequest, toadletContext, core)
+
+       @Test
+       fun `freenet request properties are retained correctly`() {
+               assertThat(soneRequest.uri, equalTo(uri))
+               assertThat(soneRequest.method, equalTo(method))
+               assertThat(soneRequest.httpRequest, equalTo(httpRequest))
+               assertThat(soneRequest.toadletContext, equalTo(toadletContext))
+       }
+
+       @Test
+       fun `core is retained correctly`() {
+               assertThat(soneRequest.core, sameInstance(core))
+       }
+
+       @Test
+       fun `freenet request is wrapped correctly`() {
+           val freenetRequest = FreenetRequest(uri, method, httpRequest, toadletContext)
+               val wrappedSoneRequest = freenetRequest.toSoneRequest(core)
+               assertThat(wrappedSoneRequest.uri, equalTo(uri))
+               assertThat(wrappedSoneRequest.method, equalTo(method))
+               assertThat(wrappedSoneRequest.httpRequest, equalTo(httpRequest))
+               assertThat(wrappedSoneRequest.toadletContext, equalTo(toadletContext))
+               assertThat(wrappedSoneRequest.core, sameInstance(core))
+       }
+
+}