package org.bonitasoft.web.toolkit.client; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import org.junit.Test; public class RequestBuilderTest { @Test public void send_should_add_header_if_api_token_is_in_session() throws Exception { final RequestBuilder requestBuilder = spy(new RequestBuilder(RequestBuilder.GET, "url")); doReturn("token").when(requestBuilder).getAPIToken(); try { requestBuilder.send(); } catch (final Exception e) { //RequestBuilder#send generates exception when not executed in a browser } finally { verify(requestBuilder, times(1)).getAPIToken(); verify(requestBuilder, times(1)).setHeader("X-Bonita-API-Token", "token"); } } @Test public void send_should_not_add_header_if_api_token_is_not_in_session() throws Exception { final RequestBuilder requestBuilder = spy(new RequestBuilder(RequestBuilder.GET, "url")); doReturn(null).when(requestBuilder).getAPIToken(); try { requestBuilder.send(); } catch (final Exception e) { //RequestBuilder#send generates exception when not executed in a browser } finally { verify(requestBuilder, times(1)).getAPIToken(); verify(requestBuilder, never()).setHeader(eq("X-Bonita-API-Token"), anyString()); } } }