package org.openmrs.module.reporting.report.service;
import java.util.List;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.openmrs.api.context.Context;
import org.openmrs.module.reporting.dataset.definition.DataSetDefinition;
import org.openmrs.module.reporting.dataset.definition.LogicDataSetDefinition;
import org.openmrs.module.reporting.dataset.definition.service.DataSetDefinitionService;
import org.openmrs.module.reporting.evaluation.parameter.Mapped;
import org.openmrs.module.reporting.report.ReportRequest;
import org.openmrs.module.reporting.report.ReportRequest.Priority;
import org.openmrs.module.reporting.report.definition.ReportDefinition;
import org.openmrs.module.reporting.report.definition.service.ReportDefinitionService;
import org.openmrs.module.reporting.report.renderer.CsvReportRenderer;
import org.openmrs.module.reporting.report.renderer.RenderingMode;
import org.openmrs.test.BaseModuleContextSensitiveTest;
import org.openmrs.test.SkipBaseSetup;
import org.openmrs.test.Verifies;
@SkipBaseSetup
@Ignore
public class MysqlReportServiceTest extends BaseModuleContextSensitiveTest {
@Override
public Boolean useInMemoryDatabase() {
return false;
}
@Test
@Verifies(value = "should retrieve report requests by definition", method = "getReportRequests(ReportDefinition, Date, Date, Status)")
public void compareTo_shouldDeleteReportRequestsWhenReportDefintionIsDeleted() throws Exception {
authenticate();
ReportService rs = Context.getService(ReportService.class);
LogicDataSetDefinition dsd = new LogicDataSetDefinition();
dsd.setName("Gender DSD");
dsd.addColumn("gender", "Gender", "gender", null);
dsd = Context.getService(DataSetDefinitionService.class).saveDefinition(dsd);
ReportDefinition rd = new ReportDefinition();
rd.setName("Test Report");
rd.addDataSetDefinition("genders", new Mapped<DataSetDefinition>(dsd, null));
rd = Context.getService(ReportDefinitionService.class).saveDefinition(rd);
RenderingMode mode = new RenderingMode(new CsvReportRenderer(), "CSV", "csv", 100);
ReportRequest request = new ReportRequest(new Mapped<ReportDefinition>(rd, null), null, mode, Priority.HIGHEST, null);
rs.runReport(request);
List<ReportRequest> requests = rs.getReportRequests(rd, null, null);
Assert.assertEquals(1, requests.size());
}
}