package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.diagnostic;
import com.jaspersoft.jasperserver.dto.common.PatchDescriptor;
import com.jaspersoft.jasperserver.dto.logcapture.CollectorSettings;
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.DefaultErrorHandler;
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
import java.io.InputStream;
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.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import static com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest.buildRequest;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.powermock.api.mockito.PowerMockito.mock;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
import static org.powermock.api.mockito.PowerMockito.verifyStatic;
import static org.powermock.api.mockito.PowerMockito.when;
import static org.testng.Assert.assertSame;
import static org.testng.AssertJUnit.assertNotNull;
/**
* <p/>
* <p/>
*
* @author tetiana.iefimenko
* @version $Id$
* @see
*/
@PrepareForTest(JerseyRequest.class)
public class SingleDiagnosticCollectorAdapterTest extends PowerMockTestCase {
@Mock
private SessionStorage sessionStorageMock;
@Mock
private JerseyRequest<CollectorSettings> jerseyRequestMock;
@Mock
private OperationResult<CollectorSettings> operationResultMock;
@Mock
private JerseyRequest<InputStream> jerseyRequestContentMock;
@Mock
private OperationResult<InputStream> operationResultContentMock;
@BeforeMethod
public void before() {
initMocks(this);
}
@Test
public void should_set_proper_session_storage() {
// When
SingleDiagnosticCollectorAdapter adapter = new SingleDiagnosticCollectorAdapter(sessionStorageMock, new CollectorSettings());
//Then
assertSame(Whitebox.getInternalState(adapter, "sessionStorage"), sessionStorageMock);
}
@Test
public void should_set_proper_collector() {
// When
CollectorSettings collectorSettings = new CollectorSettings();
SingleDiagnosticCollectorAdapter adapter = new SingleDiagnosticCollectorAdapter(sessionStorageMock, collectorSettings);
//Then
assertSame(Whitebox.getInternalState(adapter, "collector"), collectorSettings);
}
@Test
public void should_return_proper_operation_result_when_create() {
// Given
CollectorSettings collectorSettingsMock = mock(CollectorSettings.class);
mockStatic(JerseyRequest.class);
when(buildRequest(
eq(sessionStorageMock),
eq(CollectorSettings.class),
eq(new String[]{"diagnostic", "collectors"}),
any(DefaultErrorHandler.class))).thenReturn(jerseyRequestMock);
doReturn(operationResultMock).when(jerseyRequestMock).post(collectorSettingsMock);
SingleDiagnosticCollectorAdapter adapter = new SingleDiagnosticCollectorAdapter(sessionStorageMock, collectorSettingsMock);
// When /
OperationResult<CollectorSettings> retrieved = adapter.create();
// Then /
assertNotNull(retrieved);
assertSame(retrieved, operationResultMock);
verify(jerseyRequestMock).post(collectorSettingsMock);
verifyStatic(times(1));
buildRequest(
eq(sessionStorageMock),
eq(CollectorSettings.class),
eq(new String[]{"diagnostic", "collectors"}),
any(DefaultErrorHandler.class));
}
@Test
public void should_return_proper_operation_result_when_delete() {
// Given
CollectorSettings collectorSettingsMock = mock(CollectorSettings.class);
mockStatic(JerseyRequest.class);
when(buildRequest(
eq(sessionStorageMock),
eq(CollectorSettings.class),
eq(new String[]{"diagnostic", "collectors", "someId"}),
any(DefaultErrorHandler.class))).thenReturn(jerseyRequestMock);
doReturn(operationResultMock).when(jerseyRequestMock).delete();
doReturn("someId").when(collectorSettingsMock).getId();
SingleDiagnosticCollectorAdapter adapter = new SingleDiagnosticCollectorAdapter(sessionStorageMock, collectorSettingsMock);
// When /
OperationResult<CollectorSettings> retrieved = adapter.delete();
// Then /
assertNotNull(retrieved);
assertSame(retrieved, operationResultMock);
verify(jerseyRequestMock).delete();
verifyStatic(times(1));
buildRequest(
eq(sessionStorageMock),
eq(CollectorSettings.class),
eq(new String[]{"diagnostic", "collectors", "someId"}),
any(DefaultErrorHandler.class));
}
@Test
public void should_return_proper_operation_result_when_get_collector_metadata() {
// Given
CollectorSettings collectorSettingsMock = mock(CollectorSettings.class);
mockStatic(JerseyRequest.class);
when(buildRequest(
eq(sessionStorageMock),
eq(CollectorSettings.class),
eq(new String[]{"diagnostic", "collectors", "someId"}),
any(DefaultErrorHandler.class))).thenReturn(jerseyRequestMock);
doReturn(operationResultMock).when(jerseyRequestMock).get();
doReturn("someId").when(collectorSettingsMock).getId();
SingleDiagnosticCollectorAdapter adapter = new SingleDiagnosticCollectorAdapter(sessionStorageMock, collectorSettingsMock);
// When /
OperationResult<CollectorSettings> retrieved = adapter.collectorSettings();
// Then /
assertNotNull(retrieved);
assertSame(retrieved, operationResultMock);
verify(jerseyRequestMock).get();
verifyStatic(times(1));
buildRequest(
eq(sessionStorageMock),
eq(CollectorSettings.class),
eq(new String[]{"diagnostic", "collectors", "someId"}),
any(DefaultErrorHandler.class));
}
@Test
public void should_return_proper_operation_result_when_update_collector() {
// Given
CollectorSettings collectorSettingsMock = mock(CollectorSettings.class);
mockStatic(JerseyRequest.class);
when(buildRequest(
eq(sessionStorageMock),
eq(CollectorSettings.class),
eq(new String[]{"diagnostic", "collectors", "someId"}),
any(DefaultErrorHandler.class))).thenReturn(jerseyRequestMock);
doReturn(operationResultMock).when(jerseyRequestMock).put(collectorSettingsMock);
doReturn("someId").when(collectorSettingsMock).getId();
SingleDiagnosticCollectorAdapter adapter = new SingleDiagnosticCollectorAdapter(sessionStorageMock, collectorSettingsMock);
// When /
OperationResult<CollectorSettings> retrieved = adapter.updateCollectorSettings(collectorSettingsMock);
// Then /
assertNotNull(retrieved);
assertSame(retrieved, operationResultMock);
verify(jerseyRequestMock).put(collectorSettingsMock);
verifyStatic(times(1));
buildRequest(
eq(sessionStorageMock),
eq(CollectorSettings.class),
eq(new String[]{"diagnostic", "collectors", "someId"}),
any(DefaultErrorHandler.class));
}
@Test
public void should_return_proper_operation_result_when_update_collector_settings() {
// Given
CollectorSettings collectorSettingsMock = mock(CollectorSettings.class);
mockStatic(JerseyRequest.class);
when(buildRequest(
eq(sessionStorageMock),
eq(CollectorSettings.class),
eq(new String[]{"diagnostic", "collectors", "someId"}),
any(DefaultErrorHandler.class))).thenReturn(jerseyRequestMock);
doReturn(jerseyRequestMock).when(jerseyRequestMock).addHeader("X-HTTP-Method-Override", "PATCH");
doReturn(operationResultMock).when(jerseyRequestMock).post(any(PatchDescriptor.class));
doReturn("someId").when(collectorSettingsMock).getId();
SingleDiagnosticCollectorAdapter adapter = new SingleDiagnosticCollectorAdapter(sessionStorageMock, collectorSettingsMock);
// When /
OperationResult<CollectorSettings> retrieved = adapter.updateCollectorSettings(new PatchDescriptor());
// Then /
assertNotNull(retrieved);
assertSame(retrieved, operationResultMock);
verify(jerseyRequestMock).post(any(PatchDescriptor.class));
verify(jerseyRequestMock).addHeader("X-HTTP-Method-Override", "PATCH");
verifyStatic(times(1));
buildRequest(
eq(sessionStorageMock),
eq(CollectorSettings.class),
eq(new String[]{"diagnostic", "collectors", "someId"}),
any(DefaultErrorHandler.class));
}
@Test
public void should_return_proper_operation_result_when_get_collector_content() {
// Given
CollectorSettings collectorSettingsMock = mock(CollectorSettings.class);
mockStatic(JerseyRequest.class);
when(buildRequest(
eq(sessionStorageMock),
eq(InputStream.class),
eq(new String[]{"diagnostic", "collectors", "someId", "content"}),
any(DefaultErrorHandler.class))).thenReturn(jerseyRequestContentMock);
doReturn(jerseyRequestContentMock).when(jerseyRequestContentMock).setAccept("application/zip");
doReturn(operationResultContentMock).when(jerseyRequestContentMock).get();
doReturn("someId").when(collectorSettingsMock).getId();
SingleDiagnosticCollectorAdapter adapter = new SingleDiagnosticCollectorAdapter(sessionStorageMock, collectorSettingsMock);
// When /
OperationResult<InputStream> retrieved = adapter.collectorContent();
// Then /
assertNotNull(retrieved);
assertSame(retrieved, operationResultContentMock);
verify(jerseyRequestContentMock).setAccept("application/zip");
verify(jerseyRequestContentMock).get();
verifyStatic(times(1));
buildRequest(
eq(sessionStorageMock),
eq(InputStream.class),
eq(new String[]{"diagnostic", "collectors", "someId", "content"}),
any(DefaultErrorHandler.class));
}
@AfterMethod
public void after() {
reset(sessionStorageMock, jerseyRequestMock, jerseyRequestContentMock, operationResultMock, operationResultContentMock);
}
}