branch feature/6688 updated (903b37d -> fe19de0)
This is an automated email from the git hooks/post-receive script. New change to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git from 903b37d fix i18n new d4b1000 introduce a import configuration object new c1635ba fix get linked species code new e0a945a improve test API new 25823e4 improve how to lanche generic format import test new be49961 fix NPE when no test descirption register new 5791b0d fix referential entity id parser new ed69b29 add gears and vessels temporary entities to import new fe19de0 test involution when importing temporary referentials The 8 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit fe19de09cc87488fa8c72c2d6a47ec095ca1d06b Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:33:58 2015 +0100 test involution when importing temporary referentials commit ed69b29b1befaf2359cc501f703256d20d46addf Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:33:36 2015 +0100 add gears and vessels temporary entities to import commit 5791b0dccd1c0437bc8251f5cc6396bc37e13bcd Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:33:09 2015 +0100 fix referential entity id parser commit be49961a797145d42a0846538912d378d8117762 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:32:46 2015 +0100 fix NPE when no test descirption register commit 25823e4455aab5be221d42fd652ac5adea584f13 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:13:48 2015 +0100 improve how to lanche generic format import test commit e0a945a07da0851b45eb473527f6dfbb222cb01e Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:12:42 2015 +0100 improve test API commit c1635ba4e9deb9b1cfcab30d3526528880fdee26 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 16:21:36 2015 +0100 fix get linked species code commit d4b1000705a0e45d1c9564d0c7fbfab3576ebf7a Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 12:06:47 2015 +0100 introduce a import configuration object Summary of changes: .../referential/SpeciesPersistenceServiceImpl.java | 6 +- .../tutti/persistence/test/CleanResourcesRule.java | 89 ++++++++++++++++++++++ .../tutti/persistence/test/DatabaseResource.java | 57 ++++++++------ .../tutti/persistence/test/TuttiRunListener.java | 31 ++++++++ .../tutti/persistence/test/TuttiTestSupport.java | 27 +++++++ .../GenericFormatImportConfiguration.java | 62 +++++++++++++++ .../genericformat/GenericFormatImportRequest.java | 20 ++++- .../genericformat/GenericFormatImportService.java | 61 ++++++++++----- .../csv/TemporaryReferentialEntityIdParser.java | 6 -- .../ifremer/tutti/service/ServiceDbResource.java | 10 +-- .../GenericFormatExportServiceTest.java | 3 +- .../GenericFormatImportServiceTest.java | 80 ++++++++++++++++++- .../GenericFormatImportServiceTestSupport.java | 57 ++++++-------- .../genericFormat/empty/accidentalCatch.csv | 1 + .../test/resources/genericFormat/empty/catch.csv | 1 + .../genericFormat/empty/gearCaracteristics.csv | 1 + .../genericFormat/empty/individualObservation.csv | 1 + .../resources/genericFormat/empty/marineLitter.csv | 1 + .../genericFormat/{default => empty}/operation.csv | 2 - .../resources/genericFormat/empty/parameter.csv | 1 + .../genericFormat/{default => empty}/survey.csv | 1 - .../genericFormat/empty/temporaryVessels.csv | 1 - .../{empty => protocol}/protocol.tuttiProtocol | 0 .../{default => technical}/sampleCategory.csv | 0 .../genericFormat/technical/temporaryGears.csv | 5 ++ .../{empty => technical}/temporaryPersons.csv | 0 .../{empty => technical}/temporarySpecies.csv | 0 .../genericFormat/technical/temporaryVessels.csv | 5 ++ .../ImportGenericFormatProgramCruisesAction.java | 12 ++- 29 files changed, 436 insertions(+), 105 deletions(-) create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/CleanResourcesRule.java create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/TuttiTestSupport.java create mode 100644 tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportConfiguration.java create mode 100644 tutti-service/src/test/resources/genericFormat/empty/accidentalCatch.csv create mode 100644 tutti-service/src/test/resources/genericFormat/empty/catch.csv create mode 100644 tutti-service/src/test/resources/genericFormat/empty/gearCaracteristics.csv create mode 100644 tutti-service/src/test/resources/genericFormat/empty/individualObservation.csv create mode 100644 tutti-service/src/test/resources/genericFormat/empty/marineLitter.csv copy tutti-service/src/test/resources/genericFormat/{default => empty}/operation.csv (70%) create mode 100644 tutti-service/src/test/resources/genericFormat/empty/parameter.csv copy tutti-service/src/test/resources/genericFormat/{default => empty}/survey.csv (51%) delete mode 100644 tutti-service/src/test/resources/genericFormat/empty/temporaryVessels.csv rename tutti-service/src/test/resources/genericFormat/{empty => protocol}/protocol.tuttiProtocol (100%) rename tutti-service/src/test/resources/genericFormat/{default => technical}/sampleCategory.csv (100%) create mode 100644 tutti-service/src/test/resources/genericFormat/technical/temporaryGears.csv rename tutti-service/src/test/resources/genericFormat/{empty => technical}/temporaryPersons.csv (100%) rename tutti-service/src/test/resources/genericFormat/{empty => technical}/temporarySpecies.csv (100%) create mode 100644 tutti-service/src/test/resources/genericFormat/technical/temporaryVessels.csv -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit d4b1000705a0e45d1c9564d0c7fbfab3576ebf7a Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 12:06:47 2015 +0100 introduce a import configuration object --- .../GenericFormatImportConfiguration.java | 62 ++++++++++++++++++++++ .../genericformat/GenericFormatImportRequest.java | 20 +++++-- .../genericformat/GenericFormatImportService.java | 61 +++++++++++++++------ .../GenericFormatImportServiceTest.java | 8 ++- .../ImportGenericFormatProgramCruisesAction.java | 12 ++++- 5 files changed, 139 insertions(+), 24 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportConfiguration.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportConfiguration.java new file mode 100644 index 0000000..89b7428 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportConfiguration.java @@ -0,0 +1,62 @@ +package fr.ifremer.tutti.service.genericformat; + +import java.io.File; + +/** + * Created on 2/23/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14 + */ +public class GenericFormatImportConfiguration { + + private String programId; + + private File importFile; + + private boolean cleanWeights; + + private boolean checkWeights; + + private boolean overrideData; + + public String getProgramId() { + return programId; + } + + public void setProgramId(String programId) { + this.programId = programId; + } + + public File getImportFile() { + return importFile; + } + + public void setImportFile(File importFile) { + this.importFile = importFile; + } + + public boolean isCleanWeights() { + return cleanWeights; + } + + public void setCleanWeights(boolean cleanWeights) { + this.cleanWeights = cleanWeights; + } + + public boolean isCheckWeights() { + return checkWeights; + } + + public void setCheckWeights(boolean checkWeights) { + this.checkWeights = checkWeights; + } + + public boolean isOverrideData() { + return overrideData; + } + + public void setOverrideData(boolean overrideData) { + this.overrideData = overrideData; + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportRequest.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportRequest.java index 92f06f5..9b06b87 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportRequest.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportRequest.java @@ -16,6 +16,8 @@ import java.util.Set; */ public class GenericFormatImportRequest { + private final GenericFormatImportConfiguration importConfiguration; + private final GenericFormatArchive archive; private final char csvSeparator; @@ -28,13 +30,14 @@ public class GenericFormatImportRequest { private final Program program; - public GenericFormatImportRequest(GenericFormatArchive archive, + public GenericFormatImportRequest(GenericFormatImportConfiguration importConfiguration, + GenericFormatArchive archive, char csvSeparator, Program program, SampleCategoryModel sampleCategoryModel, Set<Cruise> cruises, - TuttiProtocol oldProtocol - ) { + TuttiProtocol oldProtocol) { + this.importConfiguration = importConfiguration; this.archive = archive; this.csvSeparator = csvSeparator; this.sampleCategoryModel = sampleCategoryModel; @@ -84,4 +87,15 @@ public class GenericFormatImportRequest { } + public boolean isCleanWeights() { + return importConfiguration.isCleanWeights(); + } + + public boolean isCheckWeights() { + return importConfiguration.isCheckWeights(); + } + + public boolean isOverrideData() { + return importConfiguration.isOverrideData(); + } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportService.java index 51fd6c8..16b049b 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportService.java @@ -79,7 +79,13 @@ public class GenericFormatImportService extends GenericFormatServiceSupport { } - public int getImportProgramNbSteps(File importFile) { + public int getImportProgramNbSteps(GenericFormatImportConfiguration importConfiguration) { + + Preconditions.checkNotNull(importConfiguration); + + File importFile = importConfiguration.getImportFile(); + Preconditions.checkNotNull(importFile); + Preconditions.checkState(importFile.exists()); GenericFormatArchive archive = GenericFormatArchive.forImport(importFile, context.getConfig().getTmpDirectory()); @@ -91,6 +97,10 @@ public class GenericFormatImportService extends GenericFormatServiceSupport { if (log.isInfoEnabled()) { log.info("Count " + nbOperations + " operations to import."); } + + boolean checkWeights = importConfiguration.isCheckWeights(); + boolean cleanWeights = importConfiguration.isCleanWeights(); + int result = 6 // check sampleCategoryModel + import ( gear + person + species + vessel + protocol ) + 1 + nbCruises // load cruises + nbCruise * persist cruise + 1 + nbCruises // load gear caracteristics + nbCruise * persist gear caracteristics @@ -100,30 +110,23 @@ public class GenericFormatImportService extends GenericFormatServiceSupport { + 1 + nbOperations // load marine litters + nbOperations * persist marine litters + 1 + nbOperations // load individualObservations + nbOperations * persist individualObservations + 1 + nbOperations // load accidental catches + nbOperations * persist accidental catches - + nbOperations // nbOperations * cleanWeights - + nbOperations // nbOperations * checkWeights + + (cleanWeights ? nbOperations : 0) // nbOperations * cleanWeights + + (checkWeights ? nbOperations : 0) // nbOperations * checkWeights + 1; // compute report return result; } - public GenericFormatImportResult importProgram(String programId, File importFile, ProgressionModel progressionModel) { + public GenericFormatImportResult importProgram(GenericFormatImportConfiguration importConfiguration, ProgressionModel progressionModel) { - Preconditions.checkNotNull(programId); - Preconditions.checkNotNull(importFile); - Preconditions.checkNotNull(progressionModel); + Preconditions.checkNotNull(importConfiguration); - Program program = persistenceService.getProgram(programId); - Preconditions.checkNotNull(program); - - if (log.isDebugEnabled()) { - log.debug("Will import into program: " + programId); - } + Preconditions.checkNotNull(progressionModel); - GenericFormatArchive archive = GenericFormatArchive.forImport(importFile, context.getConfig().getTmpDirectory()); + GenericFormatImportRequest importRequest = createImportRequest(importConfiguration); - GenericFormatImportResult result = doImport(archive, program, progressionModel); + GenericFormatImportResult result = doImport(importRequest, progressionModel); computeReport(result, progressionModel); @@ -131,17 +134,41 @@ public class GenericFormatImportService extends GenericFormatServiceSupport { } - protected GenericFormatImportResult doImport(GenericFormatArchive archive, Program program, ProgressionModel progressionModel) { + protected GenericFormatImportRequest createImportRequest(GenericFormatImportConfiguration importConfiguration) { + + String programId = importConfiguration.getProgramId(); + Preconditions.checkNotNull(programId); + + Program program = persistenceService.getProgram(programId); + Preconditions.checkNotNull(program); + + if (log.isDebugEnabled()) { + log.debug("Will import into program: " + programId); + } + + File importFile = importConfiguration.getImportFile(); + Preconditions.checkNotNull(importFile); + Preconditions.checkState(importFile.exists()); Set<Cruise> cruises = ImmutableSet.copyOf(persistenceService.getAllCruise(program.getId())); TuttiProtocol protocol = persistenceService.getProtocol(); - GenericFormatImportRequest request = new GenericFormatImportRequest(archive, + + GenericFormatArchive archive = GenericFormatArchive.forImport(importFile, context.getConfig().getTmpDirectory()); + + GenericFormatImportRequest request = new GenericFormatImportRequest(importConfiguration, + archive, ';', program, context.getSampleCategoryModel(), cruises, protocol); + return request; + + } + + protected GenericFormatImportResult doImport(GenericFormatImportRequest request, ProgressionModel progressionModel) { + try (GenericFormatImportContext importContext = new GenericFormatImportContext(request, progressionModel, persistenceService, cruiseDecorator, fishingOperationDecorator)) { GenericformatImportPersitenceHelper persitenceHelper = new GenericformatImportPersitenceHelper(importContext, persistenceService, cruiseDecorator, fishingOperationDecorator); diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java index 7261a4e..0d4f7d9 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java @@ -22,13 +22,17 @@ public class GenericFormatImportServiceTest extends GenericFormatImportServiceTe File archiveFile = createArchive("empty", "empty.zip"); - int nbSteps = service.getImportProgramNbSteps(archiveFile); + GenericFormatImportConfiguration importConfiguration = new GenericFormatImportConfiguration(); + importConfiguration.setImportFile(archiveFile); + importConfiguration.setProgramId(dataContext.program.getId()); + + int nbSteps = service.getImportProgramNbSteps(importConfiguration); progressionModel.adaptTotal(nbSteps); if (log.isInfoEnabled()) { log.info("Will do import in " + nbSteps + " steps"); } - service.importProgram(dataContext.program.getId(), archiveFile, progressionModel); + service.importProgram(importConfiguration, progressionModel); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportGenericFormatProgramCruisesAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportGenericFormatProgramCruisesAction.java index 2608764..73ba1c6 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportGenericFormatProgramCruisesAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportGenericFormatProgramCruisesAction.java @@ -2,6 +2,7 @@ package fr.ifremer.tutti.ui.swing.action; import com.google.common.base.Preconditions; import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.service.genericformat.GenericFormatImportConfiguration; import fr.ifremer.tutti.service.genericformat.GenericFormatImportService; import fr.ifremer.tutti.ui.swing.content.home.SelectCruiseUI; import fr.ifremer.tutti.ui.swing.content.home.SelectCruiseUIHandler; @@ -52,8 +53,11 @@ public class ImportGenericFormatProgramCruisesAction extends AbstractTuttiAction // compute number of steps (will also check archive format) + GenericFormatImportConfiguration importConfiguration = new GenericFormatImportConfiguration(); + importConfiguration.setImportFile(file); + GenericFormatImportService service = getContext().getGenericFormatImportService(); - int nbSteps = service.getImportProgramNbSteps(file); + int nbSteps = service.getImportProgramNbSteps(importConfiguration); createProgressionModelIfRequired(nbSteps); } @@ -77,8 +81,12 @@ public class ImportGenericFormatProgramCruisesAction extends AbstractTuttiAction ApplicationBusinessException importError = null; + GenericFormatImportConfiguration importConfiguration = new GenericFormatImportConfiguration(); + importConfiguration.setImportFile(file); + importConfiguration.setProgramId(program.getId()); + try { - service.importProgram(program.getId(), file, getProgressionModel()); + service.importProgram(importConfiguration, getProgressionModel()); } catch (ApplicationBusinessException e) { String errorMessage; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit c1635ba4e9deb9b1cfcab30d3526528880fdee26 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 16:21:36 2015 +0100 fix get linked species code --- .../service/referential/SpeciesPersistenceServiceImpl.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java index f41db68..1b93da6 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/SpeciesPersistenceServiceImpl.java @@ -330,15 +330,13 @@ public class SpeciesPersistenceServiceImpl extends ReferentialPersistenceService Preconditions.checkNotNull(source); Preconditions.checkNotNull(source.getName()); Preconditions.checkNotNull(source.getId()); - Preconditions.checkNotNull(source.getReferenceTaxonId()); Preconditions.checkArgument(Speciess.isTemporaryId(source.getIdAsInt())); - String taxonName =TemporaryDataHelper.TEMPORARY_NAME_PREFIX + source.getName(); - Object[] row = queryUnique( + String taxonName = TemporaryDataHelper.TEMPORARY_NAME_PREFIX + source.getName(); + Integer referenceTaxonId = queryUniqueTyped( "taxonNameReferenceTaxonIdByName", "taxonName", StringType.INSTANCE, taxonName); - Integer referenceTaxonId = (Integer) row[0]; Species result = getSpeciesByReferenceTaxonId(referenceTaxonId); return result; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit e0a945a07da0851b45eb473527f6dfbb222cb01e Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:12:42 2015 +0100 improve test API --- .../tutti/persistence/test/CleanResourcesRule.java | 84 ++++++++++++++++++++++ .../tutti/persistence/test/DatabaseResource.java | 57 +++++++++------ .../tutti/persistence/test/TuttiRunListener.java | 31 ++++++++ .../tutti/persistence/test/TuttiTestSupport.java | 27 +++++++ .../ifremer/tutti/service/ServiceDbResource.java | 10 +-- 5 files changed, 179 insertions(+), 30 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/CleanResourcesRule.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/CleanResourcesRule.java new file mode 100644 index 0000000..1f5abd6 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/CleanResourcesRule.java @@ -0,0 +1,84 @@ +package fr.ifremer.tutti.persistence.test; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.rules.TestRule; +import org.junit.runner.Description; +import org.junit.runner.notification.Failure; +import org.junit.runners.model.Statement; + +import java.util.HashMap; +import java.util.Map; + +/** + * Created on 2/23/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14 + */ +public class CleanResourcesRule implements TestRule { + + /** Logger. */ + private static final Log log = LogFactory.getLog(CleanResourcesRule.class); + + private static final Map<Description, DatabaseResource> RESSOURCES_BY_DESCRIPTIONS = new HashMap<>(); + + public static void registerDescription(Description description, DatabaseResource databaseResource) { + RESSOURCES_BY_DESCRIPTIONS.put(description, databaseResource); + } + + public static void cleanResources(Description description) { + + if (log.isInfoEnabled()) { + log.info("Try to clean resources for test: " + description); + } + + Failure failure = TuttiRunListener.getFailureForDescription(description); + + DatabaseResource databaseResource = RESSOURCES_BY_DESCRIPTIONS.get(description); + + if (failure == null) { + + if (log.isInfoEnabled()) { + log.info("Clean resources (no failure found) for test: " + description); + } + databaseResource.cleanResources(description); + + } else { + + if (log.isWarnEnabled()) { + log.warn("Keep resources ((found failure) for test: " + description); + } + + } + + } + + @Override + public Statement apply(final Statement base, final Description description) { + + return new Statement() { + @Override + public void evaluate() throws Throwable { + try { + base.evaluate(); + } finally { + after(description); + } + } + }; + } + + protected void after(Description description) { + + cleanResources(description); + + for (Description childDescription : description.getChildren()) { + + cleanResources(childDescription); + + } + + } + +} diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java index 4b447b5..1b5ee80 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java @@ -40,7 +40,6 @@ import org.apache.commons.logging.LogFactory; import org.junit.Assume; import org.junit.rules.TestRule; import org.junit.runner.Description; -import org.junit.runner.notification.Failure; import org.junit.runners.model.Statement; import org.nuiton.config.ApplicationConfig; import org.nuiton.converter.ConverterUtil; @@ -127,6 +126,7 @@ public class DatabaseResource implements TestRule { this.beanFactoryReferenceLocation = beanFactoryReferenceLocation; this.beanRefFactoryReferenceId = beanRefFactoryReferenceId; this.writeDb = writeDb; + this.destroyResources = true; } public TuttiConfiguration getConfig() { @@ -214,7 +214,7 @@ public class DatabaseResource implements TestRule { protected void before(Description description) throws Throwable { - TuttiRunListener.beforeClass(description); + TuttiTestSupport.registerDescriptionAndResource(description, this); testClass = description.getTestClass(); @@ -230,7 +230,8 @@ public class DatabaseResource implements TestRule { fixtures = new DatabaseFixtures(); - resourceDirectory = FileUtil.getTestSpecificDirectory(testClass, "", null, BUILD_TIMESTAMP); + resourceDirectory = FileUtil.getTestSpecificDirectory(testClass, "", description.getMethodName(), BUILD_TIMESTAMP); + addToDestroy(resourceDirectory); ConverterUtil.deregister(); ConverterUtil.initConverters(); @@ -289,7 +290,7 @@ public class DatabaseResource implements TestRule { copyDb(config.getDbDirectory(), false, null); } - toDetroy.add(config.getDbAttachmentDirectory()); + addToDestroy(config.getDbAttachmentDirectory()); // load db config File dbConfig = new File(config.getDbDirectory(), config.getDbName() + ".properties"); @@ -348,7 +349,7 @@ public class DatabaseResource implements TestRule { } Assume.assumeTrue(false); } - toDetroy.add(target); + addToDestroy(target); FileUtils.copyDirectory(db, target); if (p != null) { Jdbcs.fillConnectionProperties( @@ -373,18 +374,13 @@ public class DatabaseResource implements TestRule { } - protected void after(Description description) throws IOException { - if (log.isInfoEnabled()) { - log.info("After test " + testClass); - } + public void cleanResources(Description description) { - closeSpring(); - TuttiConfiguration.setInstance(null); - - Set<Failure> failures = TuttiRunListener.getFailuresForClass( - description.getClassName()); + if (log.isDebugEnabled()) { + log.debug("Clean resources for test: " + description); + } - if (destroyResources && failures.isEmpty()) { + if (destroyResources) { // can destroy directories for (File file : toDetroy) { @@ -402,15 +398,30 @@ public class DatabaseResource implements TestRule { } } } else { - if (!destroyResources) { - if (log.isWarnEnabled()) { - log.warn("Won't destroy directories (destroyResources flag was false)."); - } - } else { - if (log.isWarnEnabled()) { - log.warn("Won't destroy directories cause of failures in test."); - } + + if (log.isWarnEnabled()) { + log.warn("Won't destroy directories (destroyResources flag was false)."); } + + } + + toDetroy.clear(); + + } + + protected void after(Description description) { + if (log.isInfoEnabled()) { + log.info("After test " + description); + } + + closeSpring(); + TuttiConfiguration.setInstance(null); + + if (description.getMethodName() == null) { + + // rule used on a class + CleanResourcesRule.cleanResources(description); + } } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/TuttiRunListener.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/TuttiRunListener.java index 38851a1..1b200de 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/TuttiRunListener.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/TuttiRunListener.java @@ -30,6 +30,7 @@ import org.junit.runner.notification.Failure; import org.junit.runner.notification.RunListener; import java.util.Iterator; +import java.util.Objects; import java.util.Set; /** @@ -62,6 +63,25 @@ public final class TuttiRunListener extends RunListener { } } + public static synchronized void register(Description description) { + + if (log.isInfoEnabled()) { + log.info("Start to listen test " + description); + } + + Iterator<Failure> iterator = failures.iterator(); + String className = description.getClassName(); + String methodName = description.getMethodName(); + while (iterator.hasNext()) { + Failure failure = iterator.next(); + if (Objects.equals(className, failure.getDescription().getClassName()) + && Objects.equals(methodName, failure.getDescription().getMethodName())) { + iterator.remove(); + } + } + + } + public static synchronized Set<Failure> getFailuresForClass(String className) { Set<Failure> result = Sets.newHashSet(); for (Failure failure : failures) { @@ -72,6 +92,17 @@ public final class TuttiRunListener extends RunListener { return result; } + public static synchronized Failure getFailureForDescription(Description description) { + Failure result = null; + for (Failure failure : failures) { + if (description.equals(failure.getDescription())) { + result = failure; + break; + } + } + return result; + } + @Override public void testFailure(Failure failure) throws Exception { if (log.isDebugEnabled()) { diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/TuttiTestSupport.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/TuttiTestSupport.java new file mode 100644 index 0000000..b2c0d92 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/TuttiTestSupport.java @@ -0,0 +1,27 @@ +package fr.ifremer.tutti.persistence.test; + +import org.junit.ClassRule; +import org.junit.runner.Description; +import org.junit.runner.RunWith; + +/** + * Created on 2/23/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14 + */ +@RunWith(TuttiRunner.class) +public class TuttiTestSupport { + + @ClassRule + public static final CleanResourcesRule cleanResources = new CleanResourcesRule(); + + public static void registerDescriptionAndResource(Description description, DatabaseResource databaseResource) { + + CleanResourcesRule.registerDescription(description, databaseResource); + + TuttiRunListener.register(description); + + } + +} diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java index 5bf4c3b..e2e0d5f 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java @@ -206,12 +206,7 @@ public class ServiceDbResource extends DatabaseResource { public void loadInternalProtocolFile() throws IOException { - loadInternalProtocolFile(null,"tuttiProtocol"); - -// File protocolFile = FileUtil.getFileFromPaths(new File("src"), "test", "data", getDbName(), "protocol.tuttiProtocol"); -// -// getConfig().getApplicationConfig().setOption(TuttiConfigurationOption.DB_PROTOCOL_DIRECTORY.getKey(), protocolFile.getParentFile().getAbsolutePath()); -// serviceContext.getDataContext().setProtocolId("protocol"); + loadInternalProtocolFile(null, "tuttiProtocol"); } @@ -244,13 +239,14 @@ public class ServiceDbResource extends DatabaseResource { @Override protected void before(Description description) throws Throwable { + super.before(description); -// serviceContext = createServiceContext(loader, getConfig()); serviceContext = createServiceContext(getConfig()); I18n.init(null, Locale.FRANCE); serviceContext.getConfig().setCsvSeparator(';'); + } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit 25823e4455aab5be221d42fd652ac5adea584f13 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:13:48 2015 +0100 improve how to lanche generic format import test --- .../GenericFormatExportServiceTest.java | 3 +- .../GenericFormatImportServiceTest.java | 47 +++++++++++++++++- .../GenericFormatImportServiceTestSupport.java | 57 +++++++++------------- .../genericFormat/empty/accidentalCatch.csv | 1 + .../test/resources/genericFormat/empty/catch.csv | 1 + .../genericFormat/empty/gearCaracteristics.csv | 1 + .../genericFormat/empty/individualObservation.csv | 1 + .../resources/genericFormat/empty/marineLitter.csv | 1 + .../resources/genericFormat/empty/operation.csv | 1 + .../resources/genericFormat/empty/parameter.csv | 1 + .../test/resources/genericFormat/empty/survey.csv | 1 + .../{empty => protocol}/protocol.tuttiProtocol | 0 .../{default => technical}/sampleCategory.csv | 0 .../{empty => technical}/temporaryPersons.csv | 0 .../{empty => technical}/temporarySpecies.csv | 0 .../{empty => technical}/temporaryVessels.csv | 0 16 files changed, 78 insertions(+), 37 deletions(-) diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportServiceTest.java index 538e8fe..791d855 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatExportServiceTest.java @@ -48,8 +48,7 @@ import java.util.Map; public class GenericFormatExportServiceTest { @ClassRule - public static final ServiceDbResource dbResource = - ServiceDbResource.readDb("dbCGFS"); + public static final ServiceDbResource dbResource = ServiceDbResource.readDb("dbCGFS"); public static final String PROGRAM_ID = "CAM-CGFS"; diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java index 0d4f7d9..0e3ef0e 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java @@ -1,7 +1,11 @@ package fr.ifremer.tutti.service.genericformat; +import fr.ifremer.tutti.persistence.ProgressionModel; +import fr.ifremer.tutti.service.ServiceDbResource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.junit.Rule; +import org.junit.Test; import java.io.File; import java.io.IOException; @@ -17,22 +21,63 @@ public class GenericFormatImportServiceTest extends GenericFormatImportServiceTe /** Logger. */ private static final Log log = LogFactory.getLog(GenericFormatImportServiceTest.class); + @Rule + public final ServiceDbResource dbResource = ServiceDbResource.writeDb("dbGenericFormatImport"); + @Override + protected ServiceDbResource getServiceDbResource() { + return dbResource; + } + + @Test public void testImport() throws IOException { - File archiveFile = createArchive("empty", "empty.zip"); + ServiceDbResource.DataContext dataContext = getServiceDbResource().loadContext(PROGRAM_ID); + + File archiveFile = createArchive("empty.zip", "technical", "protocol", "default"); + + GenericFormatImportConfiguration importConfiguration = new GenericFormatImportConfiguration(); + importConfiguration.setImportFile(archiveFile); + importConfiguration.setProgramId(dataContext.program.getId()); + + int nbSteps = service.getImportProgramNbSteps(importConfiguration); + + ProgressionModel progressionModel = new ProgressionModel(); + progressionModel.adaptTotal(nbSteps); + + if (log.isInfoEnabled()) { + log.info("Will do import in " + nbSteps + " steps"); + } + + service.importProgram(importConfiguration, progressionModel); + + } + + @Test + public void testImportOnlyReferentials() throws IOException { + + dbResource.setDestroyResources(true); + + ServiceDbResource.DataContext dataContext = getServiceDbResource().loadContext(PROGRAM_ID); + + File archiveFile = createArchive("empty.zip", "technical", "empty"); GenericFormatImportConfiguration importConfiguration = new GenericFormatImportConfiguration(); importConfiguration.setImportFile(archiveFile); importConfiguration.setProgramId(dataContext.program.getId()); int nbSteps = service.getImportProgramNbSteps(importConfiguration); + + ProgressionModel progressionModel = new ProgressionModel(); progressionModel.adaptTotal(nbSteps); + if (log.isInfoEnabled()) { log.info("Will do import in " + nbSteps + " steps"); } service.importProgram(importConfiguration, progressionModel); + service.importProgram(importConfiguration, progressionModel); + } } diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTestSupport.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTestSupport.java index 5c5b29f..30f5cb2 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTestSupport.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTestSupport.java @@ -1,6 +1,6 @@ package fr.ifremer.tutti.service.genericformat; -import fr.ifremer.tutti.persistence.ProgressionModel; +import fr.ifremer.tutti.persistence.test.TuttiTestSupport; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.ServiceDbResource; import fr.ifremer.tutti.service.TuttiServiceContext; @@ -8,8 +8,6 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; import org.nuiton.util.FileUtil; import java.io.File; @@ -21,66 +19,60 @@ import java.io.IOException; * @author Tony Chemit - chemit@codelutin.com * @since 3.14 */ -public abstract class GenericFormatImportServiceTestSupport { +public abstract class GenericFormatImportServiceTestSupport extends TuttiTestSupport { /** Logger. */ private static final Log log = LogFactory.getLog(GenericFormatImportServiceTestSupport.class); - @ClassRule - public static final ServiceDbResource dbResource = ServiceDbResource.writeDb("dbGenericFormatImport"); - public static final String PROGRAM_ID = "CAM-EVHOE"; protected GenericFormatImportService service; protected PersistenceService persistenceService; - protected ServiceDbResource.DataContext dataContext; - - protected ProgressionModel progressionModel; + protected abstract ServiceDbResource getServiceDbResource(); @Before public void setUp() throws Exception { - TuttiServiceContext serviceContext = dbResource.getServiceContext(); + ServiceDbResource serviceDbResource = getServiceDbResource(); + + TuttiServiceContext serviceContext = serviceDbResource.getServiceContext(); persistenceService = serviceContext.getService(PersistenceService.class); - dbResource.setCountryInConfig("12"); - dbResource.openDataContext(); + serviceDbResource.setCountryInConfig("12"); + serviceDbResource.openDataContext(); service = serviceContext.getService(GenericFormatImportService.class); - dataContext = dbResource.loadContext(PROGRAM_ID); - - progressionModel = new ProgressionModel(); - } - protected File createArchive(String directoryName, String archiveFileName) throws IOException { + protected File createArchive(String archiveFileName, String... directoryNames) throws IOException { - File tmpDirectory = dbResource.getConfig().getTmpDirectory(); + File tmpDirectory = getServiceDbResource().getConfig().getTmpDirectory(); - File explodedDirectory = new File(tmpDirectory, directoryName); + File explodedDirectory = new File(tmpDirectory, archiveFileName); if (log.isInfoEnabled()) { log.info("Exploded directory of archive: " + explodedDirectory); } - File defaultDirectory = FileUtil.getFileFromPaths(new File("src"), "test", "resources", "genericFormat", "default"); - if (log.isInfoEnabled()) { - log.info("Copy default archive files from " + defaultDirectory); - } - FileUtils.copyDirectory(defaultDirectory, explodedDirectory); + for (String directoryName : directoryNames) { + + File directory = FileUtil.getFileFromPaths(new File("src"), "test", "resources", "genericFormat", directoryName); + + if (directory.exists()) { + + if (log.isInfoEnabled()) { + log.info("Copy into archive files from " + directory); + } + FileUtils.copyDirectory(directory, explodedDirectory); - File overrideDirectory = FileUtil.getFileFromPaths(new File("src"), "test", "resources", "genericFormat", directoryName); - if (overrideDirectory.exists()) { - if (log.isInfoEnabled()) { - log.info("Copy overriden archive files from " + overrideDirectory); } - FileUtils.copyDirectory(overrideDirectory, explodedDirectory); + } - File dataDirectory = dbResource.getConfig().getDataDirectory(); + File dataDirectory = getServiceDbResource().getConfig().getDataDirectory(); File archiveFile = new File(dataDirectory, archiveFileName); if (log.isInfoEnabled()) { log.info("Build import archive: " + archiveFile); @@ -94,7 +86,4 @@ public abstract class GenericFormatImportServiceTestSupport { } - @Test - public abstract void testImport() throws IOException; - } diff --git a/tutti-service/src/test/resources/genericFormat/empty/accidentalCatch.csv b/tutti-service/src/test/resources/genericFormat/empty/accidentalCatch.csv new file mode 100644 index 0000000..d013e00 --- /dev/null +++ b/tutti-service/src/test/resources/genericFormat/empty/accidentalCatch.csv @@ -0,0 +1 @@ +Annee;Serie;Serie_Partielle;Code_Station;Id_Operation;Poche;Engin;Rang_Engin;Id_Lot;Code_Taxon;Nom_Scientifique;Commentaire;Code_PMFM;Libelle_PMFM;Valeur;Serie_Id;Valeur_Id diff --git a/tutti-service/src/test/resources/genericFormat/empty/catch.csv b/tutti-service/src/test/resources/genericFormat/empty/catch.csv new file mode 100644 index 0000000..0a20be7 --- /dev/null +++ b/tutti-service/src/test/resources/genericFormat/empty/catch.csv @@ -0,0 +1 @@ +Annee;Serie;Serie_Partielle;Code_Station;Id_Operation;Poche;Engin;Rang_Engin;Code_Taxon;Code_Espece_Campagne;Nom_Scientifique;Benthos;Commentaire;V_HV;Num_Ordre_V_HV_H2;Tot_V_HV;Ech_V_HV;Type_Volume_Poids_V_HV;Unite_Volume_Poids_V_HV;Class_Tri;Num_Ordre_Class_Tri_H2;Tot_Class_Tri;Ech_Class_Tri;Type_Volume_Poids_Class_Tri;Unite_Volume_Poids_Class_Tri;Sexe;Num_Ordre_Sexe_H2;Tot_Sexe;Ech_Sexe;Type_Volume_Poids_Sexe;Unite_Volume_Poids_Sexe;Maturite;Num_Ordre_Maturite_H2;Tot_Maturite;Ech_Matu [...] diff --git a/tutti-service/src/test/resources/genericFormat/empty/gearCaracteristics.csv b/tutti-service/src/test/resources/genericFormat/empty/gearCaracteristics.csv new file mode 100644 index 0000000..3256fe9 --- /dev/null +++ b/tutti-service/src/test/resources/genericFormat/empty/gearCaracteristics.csv @@ -0,0 +1 @@ +Annee;Serie;Serie_Partielle;Engin;Rang_Engin;Code_PMFM;Libelle_PMFM;Valeur;Serie_Id;Engin_Id;Valeur_Id diff --git a/tutti-service/src/test/resources/genericFormat/empty/individualObservation.csv b/tutti-service/src/test/resources/genericFormat/empty/individualObservation.csv new file mode 100644 index 0000000..d013e00 --- /dev/null +++ b/tutti-service/src/test/resources/genericFormat/empty/individualObservation.csv @@ -0,0 +1 @@ +Annee;Serie;Serie_Partielle;Code_Station;Id_Operation;Poche;Engin;Rang_Engin;Id_Lot;Code_Taxon;Nom_Scientifique;Commentaire;Code_PMFM;Libelle_PMFM;Valeur;Serie_Id;Valeur_Id diff --git a/tutti-service/src/test/resources/genericFormat/empty/marineLitter.csv b/tutti-service/src/test/resources/genericFormat/empty/marineLitter.csv new file mode 100644 index 0000000..e39c419 --- /dev/null +++ b/tutti-service/src/test/resources/genericFormat/empty/marineLitter.csv @@ -0,0 +1 @@ +Annee;Serie;Serie_Partielle;Code_Station;Id_Operation;Poche;Engin;Rang_Engin;Categorie;Categorie_Taille;Nombre;Poids;Commentaire;Serie_Id;Categorie_Id;Categorie_Taille_Id diff --git a/tutti-service/src/test/resources/genericFormat/empty/operation.csv b/tutti-service/src/test/resources/genericFormat/empty/operation.csv new file mode 100644 index 0000000..1f909ab --- /dev/null +++ b/tutti-service/src/test/resources/genericFormat/empty/operation.csv @@ -0,0 +1 @@ +Annee;Serie;Serie_Partielle;Code_Station;Id_Operation;Poche;Engin;Rang_Engin;Navire;DateDeb;LatDeb;LongDeb;DateFin;LatFin;LongFin;Duree;Strate;Sous_Strate;Localite;Validite_OP;Rectiligne;Distance;Saisisseur;Navire_Associe;Commentaire;Poids_Total;Poids_Total_Calcule;Poids_Total_Vrac;Poids_Total_Vrac_Calcule;Poids_Total_HorsVrac;Poids_Total_HorsVrac_Calcule;Poids_Total_Non_Trie;Poids_Total_Non_Trie_Calcule;Poids_Total_Tremis;Poids_Total_Tremis_Calcule;Poids_Total_Carroussel;Poids_Total_Car [...] diff --git a/tutti-service/src/test/resources/genericFormat/empty/parameter.csv b/tutti-service/src/test/resources/genericFormat/empty/parameter.csv new file mode 100644 index 0000000..32c61e5 --- /dev/null +++ b/tutti-service/src/test/resources/genericFormat/empty/parameter.csv @@ -0,0 +1 @@ +Annee;Serie;Serie_Partielle;Code_Station;Id_Operation;Poche;Code_PMFM;Libelle_PMFM;Valeur;Type;Serie_Id;Valeur_Id diff --git a/tutti-service/src/test/resources/genericFormat/empty/survey.csv b/tutti-service/src/test/resources/genericFormat/empty/survey.csv new file mode 100644 index 0000000..4537d3b --- /dev/null +++ b/tutti-service/src/test/resources/genericFormat/empty/survey.csv @@ -0,0 +1 @@ +Annee;Serie;Serie_Partielle;Navire;Nombre_Poches;Pays;Zone_Etude;Campagne;Id_Sismer;Date_Deb_Campagne;Port_Deb_Campagne;Date_Fin_Campagne;Port_Fin_Campagne;Chef_Mission;Resp_Salle_Tri;Commentaire;Serie_Id;Navire_Id;Engin_Id;Port_Deb_Campagne_Id;Port_Fin_Campagne_Id;Chef_Mission_Id;Resp_Salle_Tri_Id diff --git a/tutti-service/src/test/resources/genericFormat/empty/protocol.tuttiProtocol b/tutti-service/src/test/resources/genericFormat/protocol/protocol.tuttiProtocol similarity index 100% rename from tutti-service/src/test/resources/genericFormat/empty/protocol.tuttiProtocol rename to tutti-service/src/test/resources/genericFormat/protocol/protocol.tuttiProtocol diff --git a/tutti-service/src/test/resources/genericFormat/default/sampleCategory.csv b/tutti-service/src/test/resources/genericFormat/technical/sampleCategory.csv similarity index 100% rename from tutti-service/src/test/resources/genericFormat/default/sampleCategory.csv rename to tutti-service/src/test/resources/genericFormat/technical/sampleCategory.csv diff --git a/tutti-service/src/test/resources/genericFormat/empty/temporaryPersons.csv b/tutti-service/src/test/resources/genericFormat/technical/temporaryPersons.csv similarity index 100% rename from tutti-service/src/test/resources/genericFormat/empty/temporaryPersons.csv rename to tutti-service/src/test/resources/genericFormat/technical/temporaryPersons.csv diff --git a/tutti-service/src/test/resources/genericFormat/empty/temporarySpecies.csv b/tutti-service/src/test/resources/genericFormat/technical/temporarySpecies.csv similarity index 100% rename from tutti-service/src/test/resources/genericFormat/empty/temporarySpecies.csv rename to tutti-service/src/test/resources/genericFormat/technical/temporarySpecies.csv diff --git a/tutti-service/src/test/resources/genericFormat/empty/temporaryVessels.csv b/tutti-service/src/test/resources/genericFormat/technical/temporaryVessels.csv similarity index 100% rename from tutti-service/src/test/resources/genericFormat/empty/temporaryVessels.csv rename to tutti-service/src/test/resources/genericFormat/technical/temporaryVessels.csv -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit be49961a797145d42a0846538912d378d8117762 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:32:46 2015 +0100 fix NPE when no test descirption register --- .../tutti/persistence/test/CleanResourcesRule.java | 29 +++++++++++++--------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/CleanResourcesRule.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/CleanResourcesRule.java index 1f5abd6..60a2635 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/CleanResourcesRule.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/CleanResourcesRule.java @@ -29,25 +29,30 @@ public class CleanResourcesRule implements TestRule { public static void cleanResources(Description description) { - if (log.isInfoEnabled()) { - log.info("Try to clean resources for test: " + description); - } - - Failure failure = TuttiRunListener.getFailureForDescription(description); - DatabaseResource databaseResource = RESSOURCES_BY_DESCRIPTIONS.get(description); - if (failure == null) { + if (databaseResource != null) { if (log.isInfoEnabled()) { - log.info("Clean resources (no failure found) for test: " + description); + log.info("Try to clean resources for test: " + description); } - databaseResource.cleanResources(description); - } else { + Failure failure = TuttiRunListener.getFailureForDescription(description); + + + if (failure == null) { + + if (log.isInfoEnabled()) { + log.info("Clean resources (no failure found) for test: " + description); + } + databaseResource.cleanResources(description); + + } else { + + if (log.isWarnEnabled()) { + log.warn("Keep resources ((found failure) for test: " + description); + } - if (log.isWarnEnabled()) { - log.warn("Keep resources ((found failure) for test: " + description); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit 5791b0dccd1c0437bc8251f5cc6396bc37e13bcd Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:33:09 2015 +0100 fix referential entity id parser --- .../service/referential/csv/TemporaryReferentialEntityIdParser.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/TemporaryReferentialEntityIdParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/TemporaryReferentialEntityIdParser.java index f934769..2c34806 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/TemporaryReferentialEntityIdParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/csv/TemporaryReferentialEntityIdParser.java @@ -29,8 +29,6 @@ import org.nuiton.csv.ValueParser; import java.text.ParseException; -import static org.nuiton.i18n.I18n.t; - /** * @author Kevin Morin (Code Lutin) * @since 3.8 @@ -53,10 +51,6 @@ public abstract class TemporaryReferentialEntityIdParser implements ValueParser< String message = String.format("%s : %s", errorMessage, value); throw new IllegalArgumentException(message); } - int id = Integer.parseInt(value); - if (id >= 0) { - throw new IllegalArgumentException(t(errorMessage, id)); - } } return value; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit ed69b29b1befaf2359cc501f703256d20d46addf Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:33:36 2015 +0100 add gears and vessels temporary entities to import --- .../src/test/resources/genericFormat/technical/temporaryGears.csv | 5 +++++ .../src/test/resources/genericFormat/technical/temporaryVessels.csv | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/tutti-service/src/test/resources/genericFormat/technical/temporaryGears.csv b/tutti-service/src/test/resources/genericFormat/technical/temporaryGears.csv new file mode 100644 index 0000000..c96756a --- /dev/null +++ b/tutti-service/src/test/resources/genericFormat/technical/temporaryGears.csv @@ -0,0 +1,5 @@ +id;name;label;scientificGear;toDelete +-1;Gear fishing name 1;Gear fishing label 1;N; +-2;Gear fishing name 2;Gear fishing label 2;N; +-3;Gear scientific name 3;Gear scientific label 3;Y; +-4;Gear scientific name 4;Gear scientific label 4;Y; diff --git a/tutti-service/src/test/resources/genericFormat/technical/temporaryVessels.csv b/tutti-service/src/test/resources/genericFormat/technical/temporaryVessels.csv index 850442a..b8bc7d0 100644 --- a/tutti-service/src/test/resources/genericFormat/technical/temporaryVessels.csv +++ b/tutti-service/src/test/resources/genericFormat/technical/temporaryVessels.csv @@ -1 +1,5 @@ id;name;internationalRegistrationCode;scientificVessel;toDelete +#TEMP¿-1;Temporary fishing vessel name 1;International registration code F1;N; +#TEMP¿-2;Temporary fishing vessel name 2;International registration code F2;N; +#TEMP¿-3;Temporary scientific vessel name 3;International registration code S3;Y; +#TEMP¿-4;Temporary scientific vessel name 4;International registration code S4;Y; \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit fe19de09cc87488fa8c72c2d6a47ec095ca1d06b Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Feb 23 19:33:58 2015 +0100 test involution when importing temporary referentials --- .../GenericFormatImportServiceTest.java | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java index 0e3ef0e..7024e1d 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportServiceTest.java @@ -2,8 +2,13 @@ package fr.ifremer.tutti.service.genericformat; import fr.ifremer.tutti.persistence.ProgressionModel; import fr.ifremer.tutti.service.ServiceDbResource; +import fr.ifremer.tutti.service.referential.ReferentialTemporaryGearService; +import fr.ifremer.tutti.service.referential.ReferentialTemporaryPersonService; +import fr.ifremer.tutti.service.referential.ReferentialTemporarySpeciesService; +import fr.ifremer.tutti.service.referential.ReferentialTemporaryVesselService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.junit.Assert; import org.junit.Rule; import org.junit.Test; @@ -75,9 +80,29 @@ public class GenericFormatImportServiceTest extends GenericFormatImportServiceTe log.info("Will do import in " + nbSteps + " steps"); } + ReferentialTemporaryGearService temporaryGearService = dbResource.getServiceContext().getService(ReferentialTemporaryGearService.class); + ReferentialTemporaryPersonService temporaryPersonService = dbResource.getServiceContext().getService(ReferentialTemporaryPersonService.class); + ReferentialTemporarySpeciesService temporarySpeciesService = dbResource.getServiceContext().getService(ReferentialTemporarySpeciesService.class); + ReferentialTemporaryVesselService temporaryVesselService = dbResource.getServiceContext().getService(ReferentialTemporaryVesselService.class); + + Assert.assertEquals(0, temporaryGearService.getTemporaryGears().size()); + Assert.assertEquals(0, temporaryPersonService.getTemporaryPersons().size()); + Assert.assertEquals(0, temporarySpeciesService.getTemporarySpeciess().size()); + Assert.assertEquals(0, temporaryVesselService.getTemporaryVessels().size()); + service.importProgram(importConfiguration, progressionModel); + Assert.assertEquals(4, temporaryGearService.getTemporaryGears().size()); + Assert.assertEquals(3, temporaryPersonService.getTemporaryPersons().size()); + Assert.assertEquals(8, temporarySpeciesService.getTemporarySpeciess().size()); + Assert.assertEquals(4, temporaryVesselService.getTemporaryVessels().size()); + service.importProgram(importConfiguration, progressionModel); + Assert.assertEquals(4, temporaryGearService.getTemporaryGears().size()); + Assert.assertEquals(3, temporaryPersonService.getTemporaryPersons().size()); + Assert.assertEquals(8, temporarySpeciesService.getTemporarySpeciess().size()); + Assert.assertEquals(4, temporaryVesselService.getTemporaryVessels().size()); + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm