package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.inputControls;
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
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.Mockito.reset;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.powermock.api.mockito.PowerMockito.doReturn;
import static org.powermock.api.mockito.PowerMockito.spy;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertSame;
/**
* @author Tetiana Iefimenko
*/
@PrepareForTest({InputControlsService.class})
public class InputControlsServiceTest extends PowerMockTestCase {
@Mock
private SessionStorage sessionStorageMock;
@Mock
private InputControlsAdapter adapterMock;
@BeforeMethod
public void before() {
initMocks(this);
}
@Test
public void should_pass_session_storage_to_parent_adapter() {
// Given
InputControlsService service = new InputControlsService(sessionStorageMock);
// When
SessionStorage retrieved = service.getSessionStorage();
// Then
assertSame(retrieved, sessionStorageMock);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void should_throw_an_exception_when_sessionStorage_is_null() {
// When
new InputControlsService(null);
// Then
// should be thrown an exception
}
@Test
public void should_return_adapter_instance() {
// Given
InputControlsService serviceSpy = spy(new InputControlsService(sessionStorageMock));
doReturn(adapterMock).when(serviceSpy).inputControls();
// When
InputControlsAdapter retried = serviceSpy.inputControls();
// Then
assertEquals(adapterMock, retried);
}
@AfterMethod
public void after() {
reset(sessionStorageMock, adapterMock);
}
}