package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.query;//package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.query; import com.jaspersoft.jasperserver.dto.query.QueryResult; import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest; import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage; import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.ErrorHandler; import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult; import com.jaspersoft.jasperserver.jaxrs.client.dto.query.Query; import org.mockito.Mock; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.testng.PowerMockTestCase; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import static org.mockito.Matchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.reset; import static org.mockito.MockitoAnnotations.initMocks; import static org.powermock.api.mockito.PowerMockito.mockStatic; import static org.powermock.api.mockito.PowerMockito.when; import static org.testng.Assert.assertEquals; /** * Unit tests for {@link QueryExecutorAdapter}. */ @PrepareForTest(JerseyRequest.class) public class QueryExecutorAdapterTest extends PowerMockTestCase { @Mock private SessionStorage sessionStorageMock; @Mock private Query dummyQuery; @Mock private JerseyRequest<QueryResult> jerseyRequestMock; @Mock OperationResult<QueryResult> operationResultMock; private final String VALID_URI_FAKE = "very/valid/path/to/domain"; private QueryExecutorAdapter queryExecutorAdapter; @BeforeMethod public void setUp() throws Exception { initMocks(this); queryExecutorAdapter = new QueryExecutorAdapter(sessionStorageMock, dummyQuery, VALID_URI_FAKE); } @Test public void should_pass_not_null_SessionStorage__and_domainUri_to_super_class_without_any_changes() { assertEquals(sessionStorageMock, queryExecutorAdapter.getSessionStorage()); assertEquals(VALID_URI_FAKE, queryExecutorAdapter.getResourceUri()); } @Test public void should_return_proper_OperationResult_object() { mockStatic(JerseyRequest.class); when(JerseyRequest.buildRequest( any(SessionStorage.class), any(Class.class), any(String[].class), any(ErrorHandler.class) )).thenReturn(jerseyRequestMock); doReturn(operationResultMock) .when(jerseyRequestMock) .post(dummyQuery); assertEquals(operationResultMock, queryExecutorAdapter.execute()); } @AfterMethod public void tearDown() throws Exception { reset(sessionStorageMock, jerseyRequestMock, operationResultMock, dummyQuery); } }