package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.jobs;
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
import com.jaspersoft.jasperserver.jaxrs.client.core.RestClientConfiguration;
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
import com.jaspersoft.jasperserver.jaxrs.client.dto.jobs.Job;
import com.jaspersoft.jasperserver.jaxrs.client.dto.jobs.jaxb.wrappers.JobSummaryListWrapper;
import javax.ws.rs.core.MultivaluedHashMap;
import org.mockito.Mock;
import org.mockito.internal.util.reflection.Whitebox;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.testng.PowerMockTestCase;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
import static org.powermock.api.mockito.PowerMockito.verifyStatic;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertSame;
/**
* @author Tetiana Iefimenko
*/
@PrepareForTest({JerseyRequest.class})
public class BatchJobsOperationsAdapterTest extends PowerMockTestCase {
@Mock
private SessionStorage sessionStorageMock;
@Mock
private JerseyRequest<JobSummaryListWrapper> jobSummaryListWrapperJerseyRequest;
@Mock
private OperationResult<JobSummaryListWrapper> jobSummaryListWrapperOperationResult;
@Mock
private RestClientConfiguration configurationMock;
@Mock
private Job jobMock;
@BeforeMethod
public void before() {
initMocks(this);
}
@Test(testName = "constructor")
public void should_create_proper_SingleJobOperationsAdapter_object() throws IllegalAccessException {
// When
BatchJobsOperationsAdapter adapter = new BatchJobsOperationsAdapter(sessionStorageMock);
// Then
assertEquals(Whitebox.getInternalState(adapter, "sessionStorage"), sessionStorageMock);
assertEquals(Whitebox.getInternalState(adapter, "params"), new MultivaluedHashMap<String, String>());
}
@Test
public void should_return_all_jobs() {
// Given
mockStatic(JerseyRequest.class);
when(JerseyRequest.buildRequest(eq(sessionStorageMock),
eq(JobSummaryListWrapper.class),
eq(new String[]{"jobs"}))).thenReturn(jobSummaryListWrapperJerseyRequest);
when(jobSummaryListWrapperJerseyRequest.get()).thenReturn(jobSummaryListWrapperOperationResult);
when(sessionStorageMock.getConfiguration()).thenReturn(configurationMock);
// When
BatchJobsOperationsAdapter adapter = spy(new BatchJobsOperationsAdapter(sessionStorageMock));
OperationResult<JobSummaryListWrapper> retrieved = adapter.search();
// Then
verifyStatic(times(1));
JerseyRequest.buildRequest(eq(sessionStorageMock), eq(JobSummaryListWrapper.class), eq(new String[]{"jobs"}));
verify(jobSummaryListWrapperJerseyRequest, times(1)).get();
assertNotNull(retrieved);
assertSame(retrieved, jobSummaryListWrapperOperationResult);
}
}