package net.pterodactylus.sone.web.page
import freenet.clients.http.*
+import freenet.clients.http.SessionManager.*
import freenet.l10n.*
import freenet.support.api.*
import net.pterodactylus.sone.test.*
import org.hamcrest.MatcherAssert.*
import org.hamcrest.Matchers.*
import org.junit.*
+import org.mockito.*
import org.mockito.Mockito.*
-import org.mockito.Mockito.mock
import java.net.*
class FreenetRequestTest {
private val httpRequest = mock(HTTPRequest::class.java)
private val toadletContext = mock(ToadletContext::class.java)
private val l10n = mock<BaseL10n>()
- private val request = FreenetRequest(uri, method, httpRequest, toadletContext, l10n)
+ private val sessionManager = mock<SessionManager>()
+ private val request = FreenetRequest(uri, method, httpRequest, toadletContext, l10n, sessionManager)
@Test
fun `uri is retained correctly`() {
assertThat(request.l10n, equalTo(l10n))
}
+ @Test
+ fun `null is returned if no session exists`() {
+ assertThat(request.existingSession, nullValue())
+ }
+
+ @Test
+ fun `existing session can be retrieved`() {
+ val session = mock<Session>()
+ whenever(sessionManager.useSession(toadletContext)).thenReturn(session)
+ assertThat(request.existingSession, sameInstance(session))
+ }
+
+ @Test
+ fun `existing session is returned if it exists`() {
+ val session = mock<Session>()
+ whenever(sessionManager.useSession(toadletContext)).thenReturn(session)
+ assertThat(request.session, sameInstance(session))
+ }
+
+ @Test
+ fun `new session is returned if none exists`() {
+ val session = mock<Session>()
+ whenever(sessionManager.createSession(anyString(), ArgumentMatchers.eq(toadletContext))).thenReturn(session)
+ assertThat(request.session, sameInstance(session))
+ }
+
}