X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Futils%2FRequestsTest.kt;h=4e13b7e4d3417c59d0f018d141a1e63adbce595e;hp=eb0bc43d88cfd53fc186a7f50d0372f02246060f;hb=bf496cfa392e27dd45245d00dc845e8e713cf0ba;hpb=cee09da2887a2a3d86d8e694c3fbdcd1f74cefce diff --git a/src/test/kotlin/net/pterodactylus/sone/utils/RequestsTest.kt b/src/test/kotlin/net/pterodactylus/sone/utils/RequestsTest.kt index eb0bc43..4e13b7e 100644 --- a/src/test/kotlin/net/pterodactylus/sone/utils/RequestsTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/utils/RequestsTest.kt @@ -1,31 +1,87 @@ package net.pterodactylus.sone.utils +import freenet.support.api.HTTPRequest import net.pterodactylus.sone.test.mock import net.pterodactylus.sone.test.whenever +import net.pterodactylus.sone.web.page.FreenetRequest import net.pterodactylus.util.web.Method.GET import net.pterodactylus.util.web.Method.POST import net.pterodactylus.util.web.Request import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.nullValue import org.junit.Test +import org.mockito.ArgumentMatchers.anyInt +import org.mockito.ArgumentMatchers.eq /** * Unit test for the [Request] utilities. */ class RequestsTest { + private val httpGetRequest = mock().apply { whenever(method).thenReturn("GET") } + private val httpPostRequest = mock().apply { whenever(method).thenReturn("POST") } + private val getRequest = mock().apply { whenever(method).thenReturn(GET) } + private val postRequest = mock().apply { whenever(method).thenReturn(POST) } + private val freenetGetRequest = mock().apply { + whenever(method).thenReturn(GET) + whenever(httpRequest).thenReturn(this@RequestsTest.httpGetRequest) + } + private val freenetPostRequest = mock().apply { + whenever(method).thenReturn(POST) + whenever(httpRequest).thenReturn(this@RequestsTest.httpPostRequest) + } + @Test fun `GET request is recognized correctly`() { - val request = mock().apply { whenever(method).thenReturn(GET) } - assertThat(request.isGET, equalTo(true)) - assertThat(request.isPOST, equalTo(false)) + assertThat(getRequest.isGET, equalTo(true)) + assertThat(getRequest.isPOST, equalTo(false)) } @Test fun `POST request is recognized correctly`() { - val request = mock().apply { whenever(method).thenReturn(POST) } - assertThat(request.isGET, equalTo(false)) - assertThat(request.isPOST, equalTo(true)) + assertThat(postRequest.isGET, equalTo(false)) + assertThat(postRequest.isPOST, equalTo(true)) + } + + @Test + fun `correct parameter of GET request is returned`() { + whenever(httpGetRequest.getParam("test-param")).thenAnswer { "test-value" } + assertThat(freenetGetRequest.parameters["test-param"], equalTo("test-value")) + } + + @Test + fun `correct parameter of POST request is returned`() { + whenever(httpPostRequest.getPartAsStringFailsafe(eq("test-param"), anyInt())).thenAnswer { "test-value" } + assertThat(freenetPostRequest.parameters["test-param"], equalTo("test-value")) + } + + @Test + fun `parameter of unknown request is not returned`() { + val request = mock() + val httpRequest = mock() + whenever(request.httpRequest).thenReturn(httpRequest) + assertThat(request.parameters["test-param"], nullValue()) + } + + @Test + fun `parameter of GET request is checked for presence correctly`() { + whenever(httpGetRequest.isParameterSet("test-param")).thenAnswer { true } + assertThat("test-param" in freenetGetRequest.parameters, equalTo(true)) + } + + @Test + fun `parameter of POST request is checked for presence correctly`() { + whenever(httpPostRequest.isPartSet("test-param")).thenAnswer { true } + assertThat("test-param" in freenetPostRequest.parameters, equalTo(true)) + } + + @Test + fun `parameter of unknown request is not set`() { + val request = mock() + val httpRequest = mock() + whenever(request.httpRequest).thenReturn(httpRequest) + assertThat("test-param" in request.parameters, equalTo(false)) } }