package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.thumbnails; import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage; 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.Mockito.mock; import static org.mockito.Mockito.times; import static org.powermock.api.mockito.PowerMockito.verifyNew; import static org.powermock.api.mockito.PowerMockito.whenNew; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertSame; /** * Unit tests for {@link ThumbnailsService} */ @PrepareForTest({BatchThumbnailAdapter.class, ThumbnailsService.class}) public class ThumbnailsServiceTest extends PowerMockTestCase { private SessionStorage sessionStorageMock; private BatchThumbnailAdapter batchThumbnailAdapterMock; private SingleThumbnailAdapter singleThumbnailAdapterMock; @BeforeMethod public void before() { sessionStorageMock = mock(SessionStorage.class); singleThumbnailAdapterMock = mock(SingleThumbnailAdapter.class); batchThumbnailAdapterMock = mock(BatchThumbnailAdapter.class); } @Test /** * for {@link ThumbnailsService#ThumbnailsService(SessionStorage)} */ public void should_pass_session_storage_to_parent_adapter() { // When ThumbnailsService thumbnailsService = new ThumbnailsService(sessionStorageMock); SessionStorage retrieved = thumbnailsService.getSessionStorage(); //Then assertSame(retrieved, sessionStorageMock); } @Test /** * for {@link ThumbnailsService#thumbnail()} */ public void should_invoke_proper_single_thumbnail_adapter_constructor_and_pass_proper_session_storage_instance() throws Exception { // Given whenNew(SingleThumbnailAdapter.class).withArguments(sessionStorageMock).thenReturn(singleThumbnailAdapterMock); // When ThumbnailsService thumbnailsService = new ThumbnailsService(sessionStorageMock); SingleThumbnailAdapter retrieved = thumbnailsService.thumbnail(); // Then assertNotNull(retrieved); assertSame(retrieved, singleThumbnailAdapterMock); verifyNew(SingleThumbnailAdapter.class, times(1)).withArguments(sessionStorageMock); } @Test /** * for {@link ThumbnailsService#thumbnails()} */ public void should_invoke_proper_batch_thumbnail_adapter_constructor_and_pass_proper_session_storage_instance() throws Exception { // Given whenNew(BatchThumbnailAdapter.class).withArguments(sessionStorageMock).thenReturn(batchThumbnailAdapterMock); // When ThumbnailsService thumbnailsService = new ThumbnailsService(sessionStorageMock); BatchThumbnailAdapter retrieved = thumbnailsService.thumbnails(); // Then assertNotNull(retrieved); assertSame(retrieved, batchThumbnailAdapterMock); verifyNew(BatchThumbnailAdapter.class, times(1)).withArguments(sessionStorageMock); } @AfterMethod public void after() { sessionStorageMock = null; singleThumbnailAdapterMock = null; batchThumbnailAdapterMock = null; } }