package br.uff.ic.oceano.core.util; import br.uff.ic.oceano.core.dao.controle.JPAUtil; import br.uff.ic.oceano.core.model.Metric; import br.uff.ic.oceano.core.tools.metrics.service.MetricService; import br.uff.ic.oceano.util.file.CSVUtils; import br.uff.ic.oceano.util.test.AbstractNGTest; import java.io.File; import java.util.List; import static org.testng.Assert.*; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; /** * * @author Dancastellani */ public class DefaultDatabaseLoaderNGTest extends AbstractNGTest{ @BeforeClass public static void setUpClass() throws Exception { JPAUtil.startUp(); } @Test public void insertDefaultData() { println("Inserting default data into DB"); try { if (!DefaultDatabaseLoader.isDefaultDataInserted()) { DefaultDatabaseLoader.insertDefaultData(); } } catch (Exception ex) { fail(ex.getMessage(),ex); } } /** * Check if metrics are created at the same order. * The database initialization must be a stable process. * WARNING: This does not means that hard coded ID values should be used. */ @Test public void metricsTableCOnsistency() { try { final File file = getTestFile("CSV/TABLE metric values.csv"); final String expectedResultsPath = file.getAbsolutePath(); final char delimiter = ';'; final List<Metric> expectedMetrics = CSVUtils.getAll(expectedResultsPath, delimiter, new CSVUtils.Builder<Metric>() { public Metric newInstance(String[] line) { Metric metric = new Metric(); //order is fixed int i = 0; metric.setId(Long.decode(line[0])); metric.setAcronym(line[1]); metric.setName(line[7]); return metric; } }); MetricService service = new MetricService(); service.setup(); List<Metric> resultMetrics = service.getAll(); for (Metric resultMetric : resultMetrics) { for (Metric expectedMetric : expectedMetrics) { if(resultMetric.getId() != expectedMetric.getId()){ continue; } assertEquals(resultMetric.getName(), expectedMetric.getName()); } } } catch (Exception ex) { } } }