1 package net.pterodactylus.sone.web.page
3 import freenet.clients.http.*
4 import freenet.clients.http.SessionManager.*
5 import freenet.support.api.*
6 import net.pterodactylus.sone.test.*
7 import net.pterodactylus.util.web.*
8 import org.hamcrest.MatcherAssert.*
9 import org.hamcrest.Matchers.*
12 import org.mockito.Mockito.*
15 class FreenetRequestTest {
17 private val uri = URI(".")
18 private val method = Method.GET
19 private val httpRequest = mock(HTTPRequest::class.java)
20 private val toadletContext = mock(ToadletContext::class.java)
21 private val sessionManager = mock<SessionManager>()
22 private val request = FreenetRequest(uri, method, httpRequest, toadletContext, sessionManager)
25 fun `uri is retained correctly`() {
26 assertThat(request.uri, equalTo(uri))
30 fun `method is retained correctly`() {
31 assertThat(request.method, equalTo(method))
35 fun `http request is retained correctly`() {
36 assertThat(request.httpRequest, equalTo(httpRequest))
40 fun `toadlet context is retained correctly`() {
41 assertThat(request.toadletContext, equalTo(toadletContext))
45 fun `null is returned if no session exists`() {
46 assertThat(request.existingSession, nullValue())
50 fun `existing session can be retrieved`() {
51 val session = mock<Session>()
52 whenever(sessionManager.useSession(toadletContext)).thenReturn(session)
53 assertThat(request.existingSession, sameInstance(session))
57 fun `existing session is returned if it exists`() {
58 val session = mock<Session>()
59 whenever(sessionManager.useSession(toadletContext)).thenReturn(session)
60 assertThat(request.session, sameInstance(session))
64 fun `new session is returned if none exists`() {
65 val session = mock<Session>()
66 whenever(sessionManager.createSession(anyString(), ArgumentMatchers.eq(toadletContext))).thenReturn(session)
67 assertThat(request.session, sameInstance(session))