This is an automated email from the git hooks/post-receive script. New commit to branch feature/7458-4 in repository observe. See http://git.codelutin.com/observe.git commit 0e303154f3d596f9aa06d67b988bbab539326f00 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Aug 25 08:40:32 2015 +0200 ajout d'un DTO stub pour les tripSeine et modification des service + ajout du test du delete (refs #7458). --- .../entities/constants/ReferenceLocale.java | 35 ++++++++++ .../services/service/seine/TripSeineService.java | 6 +- .../src/main/xmi/observe-services-dto-seine.zargo | Bin 54397 -> 55301 bytes .../ird/observe/services/ObserveServiceTopia.java | 2 +- .../services/dto/ObserveDtosInitializer.java | 5 ++ .../service/seine/TripSeineServiceTopia.java | 25 ++++--- .../ird/observe/services/DataSourceResource.java | 12 ++++ .../services/builder/DtoToEntityBuilderTest.java | 3 +- .../service/seine/TripSeineServiceTopiaTest.java | 72 +++++++++++++++++---- 9 files changed, 132 insertions(+), 28 deletions(-) diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java b/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java index b3f053f..6c55be8 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/constants/ReferenceLocale.java @@ -123,4 +123,39 @@ public enum ReferenceLocale { } } + + public <E extends I18nReferenceEntity> String getLabel(E i18nEntity) { + + String result = null; + + switch (ordinal() + 1) { + case 1: + result = i18nEntity.getLabel1(); + break; + case 2: + result = i18nEntity.getLabel1(); + break; + case 3: + result = i18nEntity.getLabel1(); + break; + case 4: + result = i18nEntity.getLabel1(); + break; + case 5: + result = i18nEntity.getLabel1(); + break; + case 6: + result = i18nEntity.getLabel1(); + break; + case 7: + result = i18nEntity.getLabel1(); + break; + case 8: + result = i18nEntity.getLabel1(); + break; + } + + return result; + + } } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java index 6920d78..7de268c 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java @@ -2,16 +2,18 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineStubDto; import fr.ird.observe.services.spi.Write; +import java.util.List; + /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ public interface TripSeineService extends ObserveService { - ReferenceSetDto<TripSeineDto> getTripSeineByProgram(String programId); + List<TripSeineStubDto> getTripSeineByProgram(String programId); FormDto<TripSeineDto> loadToRead(String tripSeineId); diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index 8e9c65e..e36346a 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo differ diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java index 464a606..404a192 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java @@ -126,7 +126,7 @@ public class ObserveServiceTopia implements ObserveService { return entity; } - protected <D extends ReferentialDto, E extends TopiaEntity> void deleteEntity(Class<D> dtoType, Class<E> entityType, Iterable<String> ids) { + protected <D extends IdDto, E extends TopiaEntity> void deleteEntity(Class<D> dtoType, Class<E> entityType, Iterable<String> ids) { ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); TopiaDao<E> dao = persistenceContext.getDao(entityType); for (String id : ids) { diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index e39ad63..f1b1019 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -1522,6 +1522,11 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { TripSeineDto.PROPERTY_VESSEL); } + @Override + public void initTripSeineStubDto() { + // la logique de copie est à ecrire directement dans le service + } + protected <R extends IdDto, E extends TopiaEntity> void registerDtoType(Class<R> dtoType, Class<E> entityType) { Class<? extends TopiaEntity> entityImplementationType = ObserveEntityEnum.valueOf(entityType).getImplementation(); DTO_TO_ENTITY_TYPE_BUILDER.put(dtoType, entityType); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java index a3476d7..8b74739 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineServiceTopia.java @@ -1,17 +1,18 @@ package fr.ird.observe.services.service.seine; +import com.google.common.collect.Lists; import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.entities.seine.TripSeineTopiaDao; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineStubDto; import org.nuiton.util.DateUtil; +import java.util.Collections; import java.util.Date; import java.util.List; @@ -25,22 +26,28 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe } @Override - public ReferenceSetDto<TripSeineDto> getTripSeineByProgram(String programId) { + public List<TripSeineStubDto> getTripSeineByProgram(String programId) { ReferenceLocale referenceLocale = getReferenceLocale(); List<TripSeine> tripSeines = getDao().findAllStubByProgramId(programId, referenceLocale); - ReferenceSetDto<TripSeineDto> result = new ReferenceSetDto<>(TripSeineDto.class); + List<TripSeineStubDto> stubs = Lists.newLinkedList(); for (TripSeine tripSeine : tripSeines) { - ReferenceDto<TripSeineDto> referenceDto = entityToReferenceDto(TripSeineDto.class, tripSeine); - result.addReference(referenceDto); + TripSeineStubDto stub = new TripSeineStubDto(); + stub.setId(tripSeine.getTopiaId()); + stub.setStartDate(tripSeine.getStartDate()); + stub.setEndDate(tripSeine.getEndDate()); + stub.setVesselLabel(referenceLocale.getLabel(tripSeine.getVessel())); + stub.setObserverLabel(tripSeine.getObserverLabel()); + + stubs.add(stub); } - return result; + return stubs; } @Override @@ -103,9 +110,7 @@ public class TripSeineServiceTopia extends ObserveServiceTopia implements TripSe @Override public void delete(String tripSeineId) { - TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); - - getDao().delete(tripSeine); + deleteEntity(TripSeineDto.class, TripSeine.class, Collections.singleton(tripSeineId)); } } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java b/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java index 0a9b351..30e774b 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java @@ -96,6 +96,18 @@ public class DataSourceResource implements TestRule { } + public <E extends TopiaEntity> boolean exists(Class<E> entityType, String id) { + + TopiaPersistenceContext persistenceContext = newPersistenceContext(); + + TopiaDao<E> dao = persistenceContext.getDao(entityType); + + boolean exist = dao.forTopiaIdEquals(id).exists(); + + return exist; + + } + @Override public Statement apply(final Statement base, final Description description) { return new Statement() { diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java index 6dbf900..031cce4 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java @@ -1,6 +1,7 @@ package fr.ird.observe.services.builder; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.referentiel.Organism; import fr.ird.observe.entities.referentiel.Program; @@ -159,7 +160,7 @@ public class DtoToEntityBuilderTest { Assert.assertEquals(featuresDto.getUsedInTrip(), features.getUsedInTrip()); Assert.assertEquals(featuresDto.sizeGearUseFeaturesMeasurement(), features.sizeGearUseFeaturesMeasurement()); - GearUseFeaturesMeasurementSeine measurement = features.getGearUseFeaturesMeasurement().get(0); + GearUseFeaturesMeasurementSeine measurement = Iterables.get(features.getGearUseFeaturesMeasurement(), 0); Assert.assertEquals(measurementDto.getId(), measurement.getTopiaId()); Assert.assertEquals(measurementDto.getMeasurementValue(), measurement.getMeasurementValue()); Assert.assertNotNull(measurement.getGearCaracteristic()); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java index 760bc99..657422e 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java @@ -18,6 +18,7 @@ import fr.ird.observe.services.dto.referential.PersonDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.referential.VesselDto; import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineStubDto; import fr.ird.observe.services.service.ReferentialService; import org.junit.Assert; import org.junit.Before; @@ -28,6 +29,7 @@ import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.DateUtil; import java.util.Collection; +import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com @@ -37,11 +39,16 @@ public class TripSeineServiceTopiaTest { @ClassRule public static final ApplicationContextResource applicationContextResource = new ApplicationContextResource(); - public static final String TRIP_SEINE_ID = "fr.ird.observe.entities.seine.TripSeine#1359167789871#0.6765335978809843"; + public static final String TRIP_SEINE_ID_1 = "fr.ird.observe.entities.seine.TripSeine#1359167789871#0.6765335978809843"; + public static final String TRIP_SEINE_ID_2 = "fr.ird.observe.entities.seine.TripSeine#1360156698296#0.6097793743126777"; + public static final String TRIP_SEINE_ID_3 = "fr.ird.observe.entities.seine.TripSeine#1359280279156#0.41771067982188215"; public static final String PROGRAM_ID = "fr.ird.observe.entities.referentiel.Program#1239832686262#0.31033946454061234"; - public static final ImmutableList<String> TEST_NAMES_CHANGE_DATA_BASE = ImmutableList.of("saveCreateTest", "saveUpdateTest"); + public static final ImmutableList<String> TEST_NAMES_CHANGE_DATA_BASE = ImmutableList.of( + "saveCreateTest", + "saveUpdateTest", + "deleteTest"); @Rule public final DataSourceResource dataSourceResource = new DataSourceResource(applicationContextResource, TEST_NAMES_CHANGE_DATA_BASE); @@ -70,22 +77,46 @@ public class TripSeineServiceTopiaTest { @Test public void getTripSeineByProgramTest() { - ReferenceSetDto<TripSeineDto> tripSeineDtos = service.getTripSeineByProgram(PROGRAM_ID); + List<TripSeineStubDto> stubDtos = service.getTripSeineByProgram(PROGRAM_ID); - Assert.assertNotNull(tripSeineDtos); + Assert.assertNotNull(stubDtos); - //FIXME A mieux tester, j'ai déjà fait des corrections, mais il reste des choses à revoir - //FIXME Mais surtout je pense qu'il faut un autre objet qui reflete exactement le besoin - //FIXME L'idée c'est de ne pas avoir des objets creux, ceux-là le sont bien... - Assert.assertEquals(3, tripSeineDtos.sizeReference()); + Assert.assertEquals(3, stubDtos.size()); + + TripSeineStubDto tripSeineStubDto = stubDtos.get(0); + TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_1); + + Assert.assertEquals(tripSeine.getTopiaId(), tripSeineStubDto.getId()); + Assert.assertEquals(tripSeine.getStartDate(), tripSeineStubDto.getStartDate()); + Assert.assertEquals(tripSeine.getEndDate(), tripSeineStubDto.getEndDate()); + Assert.assertEquals(tripSeine.getVessel().getLabel2(), tripSeineStubDto.getVesselLabel()); + Assert.assertEquals(tripSeine.getObserverLabel(), tripSeineStubDto.getObserverLabel()); + + tripSeineStubDto = stubDtos.get(1); + tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_2); + + Assert.assertEquals(tripSeine.getTopiaId(), tripSeineStubDto.getId()); + Assert.assertEquals(tripSeine.getStartDate(), tripSeineStubDto.getStartDate()); + Assert.assertEquals(tripSeine.getEndDate(), tripSeineStubDto.getEndDate()); + Assert.assertEquals(tripSeine.getVessel().getLabel2(), tripSeineStubDto.getVesselLabel()); + Assert.assertEquals(tripSeine.getObserverLabel(), tripSeineStubDto.getObserverLabel()); + + tripSeineStubDto = stubDtos.get(2); + tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_3); + + Assert.assertEquals(tripSeine.getTopiaId(), tripSeineStubDto.getId()); + Assert.assertEquals(tripSeine.getStartDate(), tripSeineStubDto.getStartDate()); + Assert.assertEquals(tripSeine.getEndDate(), tripSeineStubDto.getEndDate()); + Assert.assertEquals(tripSeine.getVessel().getLabel2(), tripSeineStubDto.getVesselLabel()); + Assert.assertEquals(tripSeine.getObserverLabel(), tripSeineStubDto.getObserverLabel()); } @Test public void loadToReadTest() throws Exception { - TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID); - FormDto<TripSeineDto> formDto = service.loadToRead(TRIP_SEINE_ID); + TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_1); + FormDto<TripSeineDto> formDto = service.loadToRead(TRIP_SEINE_ID_1); Assert.assertNotNull(formDto); TripSeineDto tripSeineDto = formDto.getForm(); @@ -124,8 +155,8 @@ public class TripSeineServiceTopiaTest { @Test public void loadToEditTest() throws Exception { - TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID); - FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID); + TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_1); + FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); Assert.assertNotNull(formDto); TripSeineDto tripSeineDto = formDto.getForm(); @@ -257,7 +288,7 @@ public class TripSeineServiceTopiaTest { @Test public void saveUpdateTest() { - FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID); + FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); TripSeineDto tripSeineDto = formDto.getForm(); @@ -285,7 +316,7 @@ public class TripSeineServiceTopiaTest { service.save(formDto); - TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID); + TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_1); assertReferenceDtoEqualsEntity(tripSeineDto.getCaptain(), tripSeine.getCaptain()); assertReferenceDtoEqualsEntity(tripSeineDto.getObserver(), tripSeine.getObserver()); @@ -303,6 +334,19 @@ public class TripSeineServiceTopiaTest { } + @Test + public void deleteTest() { + + service.delete(TRIP_SEINE_ID_1); + + List<TripSeineStubDto> tripSeineByProgram = service.getTripSeineByProgram(PROGRAM_ID); + + Assert.assertEquals(2, tripSeineByProgram.size()); + + Assert.assertFalse(dataSourceResource.exists(TripSeine.class, TRIP_SEINE_ID_1)); + + } + protected void assertEntityEqualsReferenceDto(TopiaEntity entity, ReferenceDto referenceDto) { if (entity == null) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.