package net.pterodactylus.sone.template; import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import net.pterodactylus.util.template.TemplateContext; import freenet.support.api.HTTPRequest; import org.hamcrest.Matchers; import org.junit.Before; import org.junit.Test; /** * Unit test for {@link HttpRequestAccessor}. * * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a> */ public class HttpRequestAccessorTest { private static final String REQUEST_PATH = "/the/real/path"; private static final String USER_AGENT = "Test/1.0"; private static final String HEADER_PATH = "/some/path"; private final HttpRequestAccessor accessor = new HttpRequestAccessor(); private final TemplateContext context = mock(TemplateContext.class); private final HTTPRequest httpRequest = mock(HTTPRequest.class); @Before public void setupHttpRequest() { when(httpRequest.getPath()).thenReturn(REQUEST_PATH); when(httpRequest.getHeader("User-Agent")).thenReturn(USER_AGENT); when(httpRequest.getHeader("Path")).thenReturn(HEADER_PATH); } @Test public void preferCallingMethodsInsteadOfReturningHeaders() { assertThat(accessor.get(context, httpRequest, "path"), Matchers.<Object>is(REQUEST_PATH)); verify(httpRequest, never()).getHeader("Path"); } @Test public void headerIsReturnedCorrectly() { assertThat(accessor.get(context, httpRequest, "User-Agent"), Matchers.<Object>is(USER_AGENT)); } }