Author: chatellier Date: 2010-10-22 16:49:10 +0000 (Fri, 22 Oct 2010) New Revision: 91 Log: Add test on resources test csv files Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/CoserTestAbstract.java trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/CoserTestAbstract.java =================================================================== --- trunk/coser-business/src/test/java/fr/ifremer/coser/services/CoserTestAbstract.java 2010-10-22 16:48:03 UTC (rev 90) +++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/CoserTestAbstract.java 2010-10-22 16:49:10 UTC (rev 91) @@ -26,10 +26,18 @@ package fr.ifremer.coser.services; import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.io.FileUtils; +import org.junit.AfterClass; import org.junit.BeforeClass; import fr.ifremer.coser.CoserBusinessConfig; +import fr.ifremer.coser.CoserBusinessException; +import fr.ifremer.coser.CoserConstants.Category; +import fr.ifremer.coser.bean.Project; /** * Common coser test code. @@ -44,14 +52,43 @@ protected static CoserBusinessConfig config; + protected static File testDirectory; + @BeforeClass public static void initConfig() { String tmpDir = System.getProperty("java.io.tmpdir"); - File tmpDirFile = new File(tmpDir); - if (tmpDirFile.isDirectory()) { - tmpDirFile.mkdirs(); + testDirectory = new File(tmpDir, "coser"); + if (testDirectory.isDirectory()) { + testDirectory.mkdirs(); } config = new CoserBusinessConfig(); - config.setDatabaseDirectory(tmpDir); + config.setDatabaseDirectory(testDirectory.getAbsolutePath()); } + + @AfterClass + public static void cleanDirectory() throws IOException { + FileUtils.deleteDirectory(testDirectory); + } + + protected Project createTestProject(ProjectService service) throws CoserBusinessException { + + Project project = new Project(); + project.setName("Project-" + System.nanoTime()); + + File testCatch = new File(CoserTestAbstract.class.getResource("/csv/correct/testcatch.csv").getFile()); + File testHaul = new File(CoserTestAbstract.class.getResource("/csv/correct/testhaul.csv").getFile()); + File testLength = new File(CoserTestAbstract.class.getResource("/csv/correct/testlength.csv").getFile()); + File testStrata = new File(CoserTestAbstract.class.getResource("/csv/correct/teststrata.csv").getFile()); + File testReftax = new File(CoserTestAbstract.class.getResource("/csv/correct/testreftax.csv").getFile()); + + Map<Category, File> categoriesAndFile = new HashMap<Category, File>(); + categoriesAndFile.put(Category.CATCH, testCatch); + categoriesAndFile.put(Category.HAUL, testHaul); + categoriesAndFile.put(Category.LENGTH, testLength); + categoriesAndFile.put(Category.STRATA, testStrata); + categoriesAndFile.put(Category.REFTAX_SPECIES, testReftax); + + project = service.createProject(project, categoriesAndFile); + return project; + } } Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java =================================================================== --- trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2010-10-22 16:48:03 UTC (rev 90) +++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2010-10-22 16:49:10 UTC (rev 91) @@ -27,13 +27,16 @@ import java.io.File; import java.util.HashMap; +import java.util.List; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; import fr.ifremer.coser.CoserBusinessException; import fr.ifremer.coser.CoserConstants; import fr.ifremer.coser.bean.Project; +import fr.ifremer.coser.bean.Specy; /** * Project service tests. @@ -45,9 +48,9 @@ * By : $Author$ */ public class ProjectServiceTest extends CoserTestAbstract { - + protected ProjectService service; - + @Before public void initService() { service = new ProjectService(config); @@ -65,4 +68,109 @@ service.createProject(p, new HashMap<CoserConstants.Category, File>()); service.createProject(p, new HashMap<CoserConstants.Category, File>()); } + + /** + * Test que le project est correctement créer (à partir des données + * dans /src/test/resources. + * + * @throws CoserBusinessException + */ + @Test + public void testCreateProject() throws CoserBusinessException { + Project project = createTestProject(service); + + Assert.assertTrue(new File(config.getProjectsDirectory(), + project.getName() + File.separator + "original" + File.separator + "catch.csv").exists()); + Assert.assertTrue(new File(config.getProjectsDirectory(), + project.getName() + File.separator + "original" + File.separator + "haul.csv").exists()); + Assert.assertTrue(new File(config.getProjectsDirectory(), + project.getName() + File.separator + "original" + File.separator + "strata.csv").exists()); + Assert.assertTrue(new File(config.getProjectsDirectory(), + project.getName() + File.separator + "original" + File.separator + "length.csv").exists()); + Assert.assertTrue(new File(config.getProjectsDirectory(), + project.getName() + File.separator + "reftaxSpecies.csv").exists()); + } + + /** + * Test qu'une espece exite bien dans le projet de test. + * + * @throws CoserBusinessException + */ + @Test + public void testSpeciesExistence() throws CoserBusinessException { + Project project = createTestProject(service); + Assert.assertFalse(service.isSpecyNameExist(project, "Coser_invalid")); + Assert.assertTrue(service.isSpecyNameExist(project, "COSER_SPECIES1")); + Assert.assertTrue(service.isSpecyNameExist(project, "COSER_SPECIES2")); + } + + /** + * Test l'obtention de la liste des annee d'un projet. + * + * @throws CoserBusinessException + */ + @Test + public void testProjectYear() throws CoserBusinessException { + Project project = createTestProject(service); + + List<Integer> years = service.getProjectYears(project); + Assert.assertEquals(2, years.size()); + Assert.assertEquals(Integer.valueOf(2010), years.get(0)); + Assert.assertEquals(Integer.valueOf(2011), years.get(1)); + } + + /** + * Test l'obtention de la liste des zones d'un projet. + * + * @throws CoserBusinessException + */ + @Test + public void testProjectZone() throws CoserBusinessException { + Project project = createTestProject(service); + + List<String> zones = service.getProjectZone(project, 2010, 2011); + Assert.assertEquals(6, zones.size()); + + zones = service.getProjectZone(project, 2011, 2011); + Assert.assertEquals(3, zones.size()); + + zones = service.getProjectZone(project, 2009, 2009); + Assert.assertEquals(0, zones.size()); + } + + /** + * Test l'obtention de la liste des especes d'un projet. + * + * @throws CoserBusinessException + */ + @Test + public void testProjectSpecies() throws CoserBusinessException { + Project project = createTestProject(service); + + List<Specy> species = service.getProjectSpecies(project, 2010, 2011); + Assert.assertEquals(4, species.size()); + + species = service.getProjectSpecies(project, 2011, 2011); + Assert.assertEquals(4, species.size()); + + species = service.getProjectSpecies(project, 2009, 2009); + Assert.assertEquals(0, species.size()); + } + + /** + * Test le merge de deux especes dans les données. + * + * @throws CoserBusinessException + */ + @Test + public void testMergeSpecies() throws CoserBusinessException { + Project project = createTestProject(service); + + Assert.assertTrue(service.isSpecyNameExist(project, "COSER_SPECIES_MERGE")); + Assert.assertEquals(25, project.getCatch().size()); + + project = service.mergeSpecies(project, "COSER_SPECIES_MERGE", "COSER_SPECIES1", "COSER_SPECIES2"); + + Assert.assertEquals(19, project.getCatch().size()); + } }