package com.jaspersoft.jasperserver.jaxrs.client.apiadapters.resources;
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
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.hamcrest.core.IsInstanceOf.instanceOf;
import static org.mockito.Mockito.reset;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertSame;
import static org.testng.Assert.assertTrue;
@PrepareForTest({ResourcesService.class, SingleResourceAdapter.class})
public class ResourcesServiceTest extends PowerMockTestCase {
@Mock
private SessionStorage sessionStorageMock;
@Mock
private SingleResourceAdapter resourceAdapterMock;
@BeforeMethod
public void before() {
initMocks(this);
}
@Test
public void should_return_proper_instance_of_BatchResourcesAdapter_class() {
ResourcesService service = new ResourcesService(sessionStorageMock);
Object retrieved = service.resources();
assertNotNull(retrieved);
assertTrue(instanceOf(BatchResourcesAdapter.class).matches(retrieved));
}
@Test
public void should_return_proper_instance_of_SingleResourceAdapter_class() {
ResourcesService service = new ResourcesService(sessionStorageMock);
Object retrieved = service.resource("uri");
assertNotNull(retrieved);
assertTrue(instanceOf(SingleResourceAdapter.class).matches(retrieved));
}
@Test
public void should_check_signature_of_SingleResourceAdapter_constructor() throws Exception {
PowerMockito.whenNew(SingleResourceAdapter.class).withArguments(sessionStorageMock, "uri").thenReturn(resourceAdapterMock);
ResourcesService service = new ResourcesService(sessionStorageMock);
Object retrieved = service.resource("uri");
assertNotNull(retrieved);
assertTrue(instanceOf(SingleResourceAdapter.class).matches(retrieved));
assertSame(retrieved, resourceAdapterMock);
}
@AfterMethod
public void after() {
reset(sessionStorageMock, resourceAdapterMock);
}
}