package io.selendroid.standalone.server.handler; import io.selendroid.server.common.Response; import io.selendroid.server.common.SelendroidResponse; import io.selendroid.server.common.StatusCode; import io.selendroid.server.common.http.HttpRequest; import org.json.JSONException; import org.junit.Before; import org.junit.Test; import java.util.HashMap; import java.util.Map; import static org.junit.Assert.*; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class ProxyToDeviceHandlerTest { private ProxyToDeviceHandler handler; @Before public void setUp() { handler = new ProxyToDeviceHandler("/some/uri"); } @Test public void testRespondsWithFailureIfRequestDoesNotContainASessionIdHeader() throws JSONException { HttpRequest request = createHttpRequestWithData(new HashMap<String, Object>()); Response response = handler.handle(request); assertNull(response.getSessionId()); assertTrue("It's a selendroid response", response instanceof SelendroidResponse); SelendroidResponse selendroidResponse = (SelendroidResponse) response; assertEquals(StatusCode.UNKNOWN_ERROR.getCode(), selendroidResponse.getStatus()); assertTrue(selendroidResponse.getValue().toString().contains("No session id passed")); } private HttpRequest createHttpRequestWithData(Map<String, Object> data) { HttpRequest request = mock(HttpRequest.class); when(request.data()).thenReturn(data); return request; } }