package com.linecorp.armeria.server.http.encoding; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.mockito.Mockito.when; import org.junit.Rule; import org.junit.Test; import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import com.linecorp.armeria.common.http.HttpHeaderNames; import com.linecorp.armeria.common.http.HttpHeaders; import com.linecorp.armeria.common.http.HttpRequest; public class HttpEncodersTest { @Rule public MockitoRule mocks = MockitoJUnit.rule(); @Mock private HttpRequest request; @Test public void noAcceptEncoding() { when(request.headers()).thenReturn(HttpHeaders.EMPTY_HEADERS); assertThat(HttpEncoders.getWrapperForRequest(request)).isNull(); } @Test public void acceptEncodingGzip() { when(request.headers()).thenReturn(HttpHeaders.of(HttpHeaderNames.ACCEPT_ENCODING, "gzip")); assertThat(HttpEncoders.getWrapperForRequest(request)).isEqualTo(HttpEncodingType.GZIP); } @Test public void acceptEncodingDeflate() { when(request.headers()).thenReturn(HttpHeaders.of(HttpHeaderNames.ACCEPT_ENCODING, "deflate")); assertThat(HttpEncoders.getWrapperForRequest(request)).isEqualTo(HttpEncodingType.DEFLATE); } @Test public void acceptEncodingBoth() { when(request.headers()).thenReturn(HttpHeaders.of(HttpHeaderNames.ACCEPT_ENCODING, "gzip, deflate")); assertThat(HttpEncoders.getWrapperForRequest(request)).isEqualTo(HttpEncodingType.GZIP); } @Test public void acceptEncodingUnknown() { when(request.headers()).thenReturn(HttpHeaders.of(HttpHeaderNames.ACCEPT_ENCODING, "piedpiper")); assertThat(HttpEncoders.getWrapperForRequest(request)).isNull(); } }