package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.settings; 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 com.jaspersoft.jasperserver.jaxrs.client.dto.settings.AwsSettings; import com.jaspersoft.jasperserver.jaxrs.client.dto.settings.DashboardSettings; import com.jaspersoft.jasperserver.jaxrs.client.dto.settings.DataSourcePatternsSettings; import com.jaspersoft.jasperserver.jaxrs.client.dto.settings.DateTimeSettings; import com.jaspersoft.jasperserver.jaxrs.client.dto.settings.DecimalFormatSymbolsSettings; import com.jaspersoft.jasperserver.jaxrs.client.dto.settings.GlobalConfigurationSettings; import com.jaspersoft.jasperserver.jaxrs.client.dto.settings.InputControlsSettings; import com.jaspersoft.jasperserver.jaxrs.client.dto.settings.RequestSettings; import com.jaspersoft.jasperserver.jaxrs.client.dto.settings.UserTimeZone; import java.util.List; import java.util.Map; import javax.ws.rs.core.GenericType; import org.mockito.Mock; import org.powermock.api.mockito.PowerMockito; 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.Matchers.eq; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.times; import static org.mockito.MockitoAnnotations.initMocks; import static org.powermock.api.mockito.PowerMockito.verifyStatic; import static org.testng.Assert.assertSame; /** * @author Tetiana Iefimenko */ @PrepareForTest({JerseyRequest.class}) public class SingleSettingsAdapterTest extends PowerMockTestCase { @Mock private SessionStorage sessionStorageMock; @Mock private JerseyRequest<Map> mapJerseyRequest; @Mock private JerseyRequest<List> listJerseyRequest; @Mock private JerseyRequest<AwsSettings> awsSettingsJerseyRequest; @Mock private JerseyRequest<RequestSettings> requestSettingsJerseyRequest; @Mock private JerseyRequest<DataSourcePatternsSettings> dataSoursePattermsSettingsJerseyRequest; @Mock private JerseyRequest<DecimalFormatSymbolsSettings> decimalFormatSymbolsSettingsJerseyRequest; @Mock private JerseyRequest<DashboardSettings> dashboardSettingsJerseyRequest; @Mock private JerseyRequest<GlobalConfigurationSettings> globalConfigurationSettingsJerseyRequest; @Mock private JerseyRequest<DateTimeSettings> dateTimeSettingsJerseyRequest; @Mock private JerseyRequest<InputControlsSettings> inputControlsSettingsJerseyRequest; @Mock private JerseyRequest<List<UserTimeZone>> userTimeZonesListJerseyRequest; @Mock private OperationResult<Map> mapOperationResult; @Mock private OperationResult<List> listOperationResult; @Mock private OperationResult<AwsSettings> awsSettingsOperationResult; @Mock private OperationResult<RequestSettings> requestSettingsOperationResult; @Mock private OperationResult<DataSourcePatternsSettings> dataSourcePatternsSettingsOperationResult; @Mock private OperationResult<DecimalFormatSymbolsSettings> decimalFormatSymbolsSettingsOperationResult; @Mock private OperationResult<DashboardSettings> dashboardSettingsOperationResult; @Mock private OperationResult<GlobalConfigurationSettings> globalConfigurationSettingsOperationResult; @Mock private OperationResult<DateTimeSettings> dateTimeSettingsOperationResult; @Mock private OperationResult<InputControlsSettings> inputControlsSettingsOperationResult; @Mock private OperationResult<List<UserTimeZone>> userTimeZonesListOperationResult; private SettingsService service; @BeforeMethod public void before() { initMocks(this); service = new SettingsService(sessionStorageMock); } @AfterMethod public void after() { reset(sessionStorageMock, mapJerseyRequest, listJerseyRequest, awsSettingsJerseyRequest, requestSettingsJerseyRequest, dataSoursePattermsSettingsJerseyRequest, decimalFormatSymbolsSettingsJerseyRequest, dashboardSettingsJerseyRequest, globalConfigurationSettingsJerseyRequest, dateTimeSettingsJerseyRequest, inputControlsSettingsJerseyRequest, userTimeZonesListJerseyRequest, mapOperationResult, listOperationResult, awsSettingsOperationResult, requestSettingsOperationResult, dataSourcePatternsSettingsOperationResult, decimalFormatSymbolsSettingsOperationResult, dashboardSettingsOperationResult, globalConfigurationSettingsOperationResult, dateTimeSettingsOperationResult, inputControlsSettingsOperationResult, userTimeZonesListOperationResult); } @Test public void should_return_map_of_aws_settings_operationResult() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(Map.class), eq(new String[]{"settings", "awsSettings"}), any(DefaultErrorHandler.class))).thenReturn(mapJerseyRequest); PowerMockito.doReturn(mapOperationResult).when(mapJerseyRequest).get(); OperationResult<Map> settings = service.settings().group("awsSettings", Map.class); //then assertSame(settings, mapOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(Map.class), eq(new String[]{"settings", "awsSettings"}), any(DefaultErrorHandler.class)); } @Test public void should_return_awsSettings_operationResult() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(AwsSettings.class), eq(new String[]{"settings", "awsSettings"}), any(DefaultErrorHandler.class))).thenReturn(awsSettingsJerseyRequest); PowerMockito.doReturn(awsSettingsOperationResult).when(awsSettingsJerseyRequest).get(); OperationResult<AwsSettings> settings = service.settings().group("awsSettings", AwsSettings.class); //then assertSame(settings, awsSettingsOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(AwsSettings.class), eq(new String[]{"settings", "awsSettings"}), any(DefaultErrorHandler.class)); } @Test public void should_return_list_operationResult() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(List.class), eq(new String[]{"settings", "userTimeZones"}), any(DefaultErrorHandler.class))).thenReturn(listJerseyRequest); PowerMockito.doReturn(listOperationResult).when(listJerseyRequest).get(); OperationResult<List> settings = service.settings().group("userTimeZones", List.class); //then assertSame(settings, listOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(List.class), eq(new String[]{"settings", "userTimeZones"}), any(DefaultErrorHandler.class)); } @Test public void should_return_list_of_user_time_zones__operationResult() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(new GenericType<List<UserTimeZone>>() { }), eq(new String[]{"settings", "userTimeZones"}), any(DefaultErrorHandler.class))).thenReturn(userTimeZonesListJerseyRequest); PowerMockito.doReturn(userTimeZonesListOperationResult).when(userTimeZonesListJerseyRequest).get(); OperationResult<List<UserTimeZone>> settings = service.settings().group("userTimeZones", new GenericType<List<UserTimeZone>>() { }); //then assertSame(settings, userTimeZonesListOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(new GenericType<List<UserTimeZone>>() { }), eq(new String[]{"settings", "userTimeZones"}), any(DefaultErrorHandler.class)); } @Test public void should_return_request_settings_dto__operationResult_by_specified_method() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(RequestSettings.class), eq(new String[]{"settings", "request"}), any(DefaultErrorHandler.class))).thenReturn(requestSettingsJerseyRequest); PowerMockito.doReturn(requestSettingsOperationResult).when(requestSettingsJerseyRequest).get(); OperationResult<RequestSettings> settings = service.settings().ofRequestGroup(); //then assertSame(settings, requestSettingsOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(RequestSettings.class), eq(new String[]{"settings", "request"}), any(DefaultErrorHandler.class)); } @Test public void should_return_dataSourcePatterns_settings_dto__operationResult_by_specified_method() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(DataSourcePatternsSettings.class), eq(new String[]{"settings", "dataSourcePatterns"}), any(DefaultErrorHandler.class))).thenReturn(dataSoursePattermsSettingsJerseyRequest); PowerMockito.doReturn(dataSourcePatternsSettingsOperationResult).when(dataSoursePattermsSettingsJerseyRequest).get(); OperationResult<DataSourcePatternsSettings> settings = service.settings().ofDataSourcePatternsGroup(); //then assertSame(settings, dataSourcePatternsSettingsOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(DataSourcePatternsSettings.class), eq(new String[]{"settings", "dataSourcePatterns"}), any(DefaultErrorHandler.class)); } @Test public void should_return_userTimeZones_settings_dto__operationResult_by_specified_method() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(new GenericType<List<UserTimeZone>>() { }), eq(new String[]{"settings", "userTimeZones"}), any(DefaultErrorHandler.class))).thenReturn(userTimeZonesListJerseyRequest); PowerMockito.doReturn(userTimeZonesListOperationResult).when(userTimeZonesListJerseyRequest).get(); OperationResult<List<UserTimeZone>> settings = service.settings().ofUserTimeZonesGroup(); //then assertSame(settings, userTimeZonesListOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(new GenericType<List<UserTimeZone>>() { }), eq(new String[]{"settings", "userTimeZones"}), any(DefaultErrorHandler.class)); } @Test public void should_return_aws_settings_dto__operationResult_by_specified_method() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(AwsSettings.class), eq(new String[]{"settings", "awsSettings"}), any(DefaultErrorHandler.class))).thenReturn(awsSettingsJerseyRequest); PowerMockito.doReturn(awsSettingsOperationResult).when(awsSettingsJerseyRequest).get(); OperationResult<AwsSettings> settings = service.settings().ofAwsGroup(); //then assertSame(settings, awsSettingsOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(AwsSettings.class), eq(new String[]{"settings", "awsSettings"}), any(DefaultErrorHandler.class)); } @Test public void should_return_decimalFormatSymbol_settings_dto__operationResult_by_specified_method() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(DecimalFormatSymbolsSettings.class), eq(new String[]{"settings", "decimalFormatSymbols"}), any(DefaultErrorHandler.class))).thenReturn(decimalFormatSymbolsSettingsJerseyRequest); PowerMockito.doReturn(decimalFormatSymbolsSettingsOperationResult).when(decimalFormatSymbolsSettingsJerseyRequest).get(); OperationResult<DecimalFormatSymbolsSettings> settings = service.settings().ofDecimalFormatSymbolsGroup(); //then assertSame(settings, decimalFormatSymbolsSettingsOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(DecimalFormatSymbolsSettings.class), eq(new String[]{"settings", "decimalFormatSymbols"}), any(DefaultErrorHandler.class)); } @Test public void should_return_dashboard_settings_dto__operationResult_by_specified_method() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(DashboardSettings.class), eq(new String[]{"settings", "dashboardSettings"}), any(DefaultErrorHandler.class))).thenReturn(dashboardSettingsJerseyRequest); PowerMockito.doReturn(dashboardSettingsOperationResult).when(dashboardSettingsJerseyRequest).get(); OperationResult<DashboardSettings> settings = service.settings().ofDashboardGroup(); //then assertSame(settings, dashboardSettingsOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(DashboardSettings.class), eq(new String[]{"settings", "dashboardSettings"}), any(DefaultErrorHandler.class)); } @Test public void should_return_globalConfiguration_settings_dto__operationResult_by_specified_method() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(GlobalConfigurationSettings.class), eq(new String[]{"settings", "globalConfiguration"}), any(DefaultErrorHandler.class))).thenReturn(globalConfigurationSettingsJerseyRequest); PowerMockito.doReturn(globalConfigurationSettingsOperationResult).when(globalConfigurationSettingsJerseyRequest).get(); OperationResult<GlobalConfigurationSettings> settings = service.settings().ofGlobalConfigurationGroup(); //then assertSame(settings, globalConfigurationSettingsOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(GlobalConfigurationSettings.class), eq(new String[]{"settings", "globalConfiguration"}), any(DefaultErrorHandler.class)); } @Test public void should_return_dateTime_settings_dto__operationResult_by_specified_method() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(DateTimeSettings.class), eq(new String[]{"settings", "dateTimeSettings"}), any(DefaultErrorHandler.class))).thenReturn(dateTimeSettingsJerseyRequest); PowerMockito.doReturn(dateTimeSettingsOperationResult).when(dateTimeSettingsJerseyRequest).get(); OperationResult<DateTimeSettings> settings = service.settings().ofDateTimeGroup(); //then assertSame(settings, dateTimeSettingsOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(DateTimeSettings.class), eq(new String[]{"settings", "dateTimeSettings"}), any(DefaultErrorHandler.class)); } @Test public void should_return_inputControls_settings_dto__operationResult_by_specified_method() throws Exception { //when PowerMockito.mockStatic(JerseyRequest.class); PowerMockito.when(JerseyRequest.buildRequest(eq(sessionStorageMock), eq(InputControlsSettings.class), eq(new String[]{"settings", "inputControls"}), any(DefaultErrorHandler.class))).thenReturn(inputControlsSettingsJerseyRequest); PowerMockito.doReturn(inputControlsSettingsOperationResult).when(inputControlsSettingsJerseyRequest).get(); OperationResult<InputControlsSettings> settings = service.settings().ofInputControlsGroup(); //then assertSame(settings, inputControlsSettingsOperationResult); verifyStatic(times(1)); JerseyRequest.buildRequest(eq(sessionStorageMock), eq(InputControlsSettings.class), eq(new String[]{"settings", "inputControls"}), any(DefaultErrorHandler.class)); } }