package gov.samhsa.consent2share.infrastructure.report.configurer; import static org.junit.Assert.*; import static org.mockito.Mockito.*; import java.util.HashMap; import java.util.Map; import gov.samhsa.consent2share.infrastructure.report.ReportFormat; import gov.samhsa.consent2share.infrastructure.report.ReportProps; import gov.samhsa.consent2share.infrastructure.report.RequestScopedParameters; import gov.samhsa.consent2share.infrastructure.report.RequestScopedParametersProvider; import net.sf.jasperreports.engine.JRDataSource; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) public class SetRequestScopedParametersTaskTest { @Rule public ExpectedException thrown = ExpectedException.none(); @Mock private ReportProps reportProps; @Mock private JRDataSource datasource; @Mock private RequestScopedParametersProvider requestScopedParametersProvider; @InjectMocks private SetRequestScopedParametersTask sut; @Test public void testConfigure_HTML() { // Arrange final ReportFormat reportFormat = ReportFormat.HTML; RequestScopedParameters requestScopedParameters = mock(RequestScopedParameters.class); when(requestScopedParametersProvider.getRequestScopedParameters()).thenReturn(requestScopedParameters); Map<String, Object> parameters = new HashMap<>(); String key = "key"; String value = "value"; parameters.put(key, value); when(requestScopedParameters.getParameters()).thenReturn(parameters); // Act final Map<String, Object> configure = sut.configure(reportProps, reportFormat, datasource); // Assert assertEquals(parameters,configure); } @Test public void testConfigure_HTML_Throws_IllegalArgumentException_Parameters_Empty() { // Arrange thrown.expect(IllegalArgumentException.class); final ReportFormat reportFormat = ReportFormat.HTML; RequestScopedParameters requestScopedParameters = mock(RequestScopedParameters.class); when(requestScopedParametersProvider.getRequestScopedParameters()).thenReturn(requestScopedParameters); Map<String, Object> parameters = new HashMap<>(); when(requestScopedParameters.getParameters()).thenReturn(parameters); // Act sut.configure(reportProps, reportFormat, datasource); } @Test public void testConfigure_HTML_Throws_IllegalArgumentException_Parameters_Null() { // Arrange thrown.expect(IllegalArgumentException.class); final ReportFormat reportFormat = ReportFormat.HTML; RequestScopedParameters requestScopedParameters = mock(RequestScopedParameters.class); when(requestScopedParametersProvider.getRequestScopedParameters()).thenReturn(requestScopedParameters); when(requestScopedParameters.getParameters()).thenReturn(null); // Act sut.configure(reportProps, reportFormat, datasource); } }