package com.jaspersoft.jasperserver.jaxrs.client.core.operationresult; import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler; import javax.ws.rs.core.GenericType; import javax.ws.rs.core.Response; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.internal.util.reflection.Whitebox; 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.MockitoAnnotations.initMocks; import static org.powermock.api.mockito.PowerMockito.doNothing; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNull; /** * Unit test for {@link com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.NullEntityOperationResult} */ @SuppressWarnings({"AssertEqualsBetweenInconvertibleTypesTestNG", "unchecked"}) public class NullEntityOperationResultTest extends PowerMockTestCase { @Mock private Response responseMock; @Mock private GenericType genericTypeMock; @Mock private DefaultErrorHandler errorHandlerMock; @BeforeMethod public void before() { initMocks(this); } @Test public void should_pass_params_to_parent_class() { // When NullEntityOperationResult<Class> operationResult = new NullEntityOperationResult<Class>(responseMock, Class.class); // Then assertEquals(Class.class, operationResult.getEntityClass()); assertEquals(responseMock, operationResult.getResponse()); } @Test public void should_set_correct_internal_state() { // When NullEntityOperationResult<Class> operationResult = new NullEntityOperationResult<Class>(responseMock, Class.class); // Then assertEquals(responseMock, Whitebox.getInternalState(operationResult, "response")); assertEquals(Class.class, Whitebox.getInternalState(operationResult, "entityClass")); assertNull(Whitebox.getInternalState(operationResult, "genericEntity")); assertNull(Whitebox.getInternalState(operationResult, "defaultErrorHandler")); assertNull(Whitebox.getInternalState(operationResult, "entity")); assertNull(Whitebox.getInternalState(operationResult, "serializedContent")); } @Test public void should_set_correct_response_class_and_errorHandler() { // When NullEntityOperationResult<Class> operationResult = new NullEntityOperationResult<Class>(responseMock, Class.class, errorHandlerMock); // Then assertEquals(responseMock, Whitebox.getInternalState(operationResult, "response")); assertEquals(Class.class, Whitebox.getInternalState(operationResult, "entityClass")); assertEquals(errorHandlerMock, Whitebox.getInternalState(operationResult, "defaultErrorHandler")); assertNull(Whitebox.getInternalState(operationResult, "genericEntity")); } @Test public void should_set_correct_response_and_genericType() { // When NullEntityOperationResult<GenericType> operationResult = new NullEntityOperationResult<GenericType>(responseMock, genericTypeMock); // Then assertEquals(responseMock, Whitebox.getInternalState(operationResult, "response")); assertEquals(genericTypeMock, Whitebox.getInternalState(operationResult, "genericEntity")); } @Test public void should_set_correct_response_genericType_and_errorHandler() { // When NullEntityOperationResult<GenericType> operationResult = new NullEntityOperationResult<GenericType>(responseMock, genericTypeMock, errorHandlerMock); // Then assertEquals(responseMock, Whitebox.getInternalState(operationResult, "response")); assertEquals(genericTypeMock, Whitebox.getInternalState(operationResult, "genericEntity")); assertEquals(errorHandlerMock, Whitebox.getInternalState(operationResult, "defaultErrorHandler")); } @Test public void should_return_null() { // When NullEntityOperationResult<Class> operationResult = new NullEntityOperationResult<Class>(responseMock, Class.class); // Then assertNull(operationResult.getEntity()); } @Test public void should_handle_response() { // Given doNothing().when(errorHandlerMock).handleError(responseMock); // When NullEntityOperationResult<Class> operationResult = new NullEntityOperationResult<Class>(responseMock, Class.class, errorHandlerMock); operationResult.getEntity(); // Then Mockito.verify(errorHandlerMock).handleError(responseMock); } @AfterMethod public void after() { Mockito.reset(responseMock); } }