package org.mockserver.proxy.http; import io.netty.channel.embedded.EmbeddedChannel; import org.junit.After; import org.junit.Before; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockserver.client.serialization.ExpectationSerializer; import org.mockserver.client.serialization.HttpRequestSerializer; import org.mockserver.client.serialization.VerificationSequenceSerializer; import org.mockserver.client.serialization.VerificationSerializer; import org.mockserver.filters.RequestLogFilter; import org.mockserver.filters.RequestResponseLogFilter; import org.mockserver.mock.Expectation; import org.mockserver.mock.action.ActionHandler; import org.mockserver.model.HttpRequest; import org.mockserver.model.HttpResponse; import org.mockserver.proxy.Proxy; import org.mockserver.verify.Verification; import org.mockserver.verify.VerificationSequence; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; /** * @author jamesdbloom */ public class HttpProxyHandlerTest { // model objects @Mock Expectation mockExpectation; @Mock HttpRequest mockHttpRequest; @Mock HttpResponse mockHttpResponse; @Mock Verification mockVerification; @Mock VerificationSequence mockVerificationSequence; // mockserver RequestResponseLogFilter mockRequestResponseLogFilter; Proxy mockHttpProxy; RequestLogFilter mockRequestLogFilter; @Mock ActionHandler mockActionHandler; // serializers @Mock ExpectationSerializer mockExpectationSerializer; @Mock HttpRequestSerializer mockHttpRequestSerializer; @Mock VerificationSerializer mockVerificationSerializer; @Mock VerificationSequenceSerializer mockVerificationSequenceSerializer; @InjectMocks HttpProxyHandler httpProxyHandler; EmbeddedChannel embeddedChannel; @Before public void setupFixture() { // given - a mock server handler mockRequestLogFilter = mock(RequestLogFilter.class); mockRequestResponseLogFilter = mock(RequestResponseLogFilter.class); mockHttpProxy = mock(Proxy.class); httpProxyHandler = new HttpProxyHandler(mockHttpProxy, mockRequestLogFilter, mockRequestResponseLogFilter, false); embeddedChannel = new EmbeddedChannel(httpProxyHandler); initMocks(this); // given - serializers when(mockExpectationSerializer.deserialize(anyString())).thenReturn(mockExpectation); when(mockHttpRequestSerializer.deserialize(anyString())).thenReturn(mockHttpRequest); when(mockVerificationSerializer.deserialize(anyString())).thenReturn(mockVerification); when(mockVerificationSequenceSerializer.deserialize(anyString())).thenReturn(mockVerificationSequence); } @After public void closeEmbeddedChanel() { assertThat(embeddedChannel.finish(), is(false)); } }