branch feature/7458-GearUseFeaturesSeineService created (now ed94d2c)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7458-GearUseFeaturesSeineService in repository observe. See http://git.codelutin.com/observe.git at ed94d2c GearUseFeaturesSeineService (impl + test) (refs #7458). This branch includes the following new commits: new ed94d2c GearUseFeaturesSeineService (impl + test) (refs #7458). The 1 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 ed94d2cf927c49aa01f59972976ca63fda2da783 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 26 09:19:44 2015 +0200 GearUseFeaturesSeineService (impl + test) (refs #7458). -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7458-GearUseFeaturesSeineService in repository observe. See http://git.codelutin.com/observe.git commit ed94d2cf927c49aa01f59972976ca63fda2da783 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Aug 26 09:19:44 2015 +0200 GearUseFeaturesSeineService (impl + test) (refs #7458). --- .../service/seine/GearUseFeaturesSeineService.java | 4 +- .../ird/observe/services/ObserveServiceTopia.java | 23 +- .../services/builder/DtoToEntityBuilder.java | 14 +- .../services/builder/EntityToDtoBuilder.java | 3 + .../seine/GearUseFeaturesSeineServiceTopia.java | 125 ++++++++ .../ird/observe/services/DataSourceResource.java | 6 +- .../services/builder/DtoToEntityBuilderTest.java | 2 +- .../services/builder/EntityToDtoBuilderTest.java | 3 +- .../services/service/AbstractServiceTopiaTest.java | 4 +- .../service/DataSourceServiceTopiaTest.java | 4 +- .../service/ReferentialServiceTopiaTest.java | 8 +- .../GearUseFeaturesSeineServiceTopiaTest.java | 317 +++++++++++++++++++++ .../service/seine/TripSeineServiceTopiaTest.java | 7 +- .../resources/db/4.0.1/dataForTestSeine.sql.gz | Bin 430098 -> 430383 bytes 14 files changed, 498 insertions(+), 22 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java index b69e076..7d56797 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java @@ -18,10 +18,10 @@ public interface GearUseFeaturesSeineService extends ObserveService { FormDto<GearUseFeaturesSeineDto> loadToEdit(String gearUseFeaturesSeineId); - FormDto<GearUseFeaturesSeineDto> preCreate(String tripSeineId); + FormDto<GearUseFeaturesSeineDto> preCreate(); @Write - String save(FormDto<GearUseFeaturesSeineDto> form); + String save(FormDto<GearUseFeaturesSeineDto> form, String tripSeineId); @Write void delete(String tripSeineId, String gearUseFeaturesSeineId); 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 404a192..76cbb97 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 @@ -4,6 +4,7 @@ import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Sets; import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.entities.referentiel.ReferenceEntity; @@ -31,6 +32,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Set; /** * Created on 16/08/15. @@ -102,7 +104,7 @@ public class ObserveServiceTopia implements ObserveService { return entities; } - protected <D extends IdDto, E extends TopiaEntity> E loadEntity(Class<D> dtoType, Class<E> entityType, String id) { + public <D extends IdDto, E extends TopiaEntity> E loadEntity(Class<D> dtoType, Class<E> entityType, String id) { ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); TopiaDao<E> dao = persistenceContext.getDao(entityType); Optional<E> entity = dao.forTopiaIdEquals(id).tryFindUnique(); @@ -159,16 +161,31 @@ public class ObserveServiceTopia implements ObserveService { } } + protected <E extends TopiaEntity, D extends IdDto> D entityToDto(Class<D> dtoType, Class<E> entityType, E entity) { + try (EntityToDtoBuilder<E, D> dtoBuilder = EntityToDtoBuilder.create(entityType, dtoType)) { + + // copy entity + D dto = dtoBuilder.build(serviceContext.getReferentialLocale(), entity); + + return dto; + + } + } + protected <E extends TopiaEntity, D extends IdDto> FormDto<D> entityToEditFormDto(Class<D> dtoType, Class<E> entityType, E entity) { + return entityToEditFormDto(dtoType, entityType, entity, Sets.<Class<? extends IdDto>>newHashSet()); + } + + protected <E extends TopiaEntity, D extends IdDto> FormDto<D> entityToEditFormDto(Class<D> dtoType, Class<E> entityType, E entity, Set<Class<? extends IdDto>> referenceDtoTypes) { try (EntityToDtoBuilder<E, D> dtoBuilder = EntityToDtoBuilder.create(entityType, dtoType)) { // copy entity D dto = dtoBuilder.build(serviceContext.getReferentialLocale(), entity); // build label sets detected while copy - ImmutableSet<Class<? extends IdDto>> referentialDtoTypes = dtoBuilder.getReferenceTypes(); + referenceDtoTypes.addAll(dtoBuilder.getReferenceTypes()); ImmutableSet.Builder<ReferenceSetDto> labels = new ImmutableSet.Builder<>(); - for (Class<? extends IdDto> referenceDtoType : referentialDtoTypes) { + for (Class<? extends IdDto> referenceDtoType : referenceDtoTypes) { ReferenceSetDto referenceSet = getReferenceSet((Class<ReferentialDto>) referenceDtoType); labels.add(referenceSet); } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java index 0ac4103..a3cc4e1 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java @@ -7,6 +7,7 @@ import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ObserveDtoBinders; import fr.ird.observe.services.dto.ReferenceDto; +import org.apache.commons.lang3.StringUtils; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; @@ -163,7 +164,18 @@ public class DtoToEntityBuilder<D extends IdDto, E extends TopiaEntity> implemen Class<DD> dtoType = (Class<DD>) idDto.getClass(); // Class<TopiaEntity> entityType = ObserveServiceTopia.getEntityType(aClass); - EE entity = serviceTopia.newEntity(entityType); + + EE entity; + + if (StringUtils.isBlank(idDto.getId())) { + + entity = serviceTopia.newEntity(entityType); + + } else { + + entity = serviceTopia.loadEntity(dtoType, entityType, idDto.getId()); + + } DtoToEntityBuilder<DD, EE> builder = create(dtoType, entityType, serviceTopia); builder.build(idDto, entity); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java index 20e9ca9..172460b 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java @@ -84,6 +84,9 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen dtoType = (Class) type.getActualTypeArguments()[0]; referenceTypesBuilder.add(dtoType); + } else if (IdDto.class.isAssignableFrom(dtoType)) { + + } } } else { diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopia.java new file mode 100644 index 0000000..d0c07a1 --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopia.java @@ -0,0 +1,125 @@ +package fr.ird.observe.services.service.seine; + +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import fr.ird.observe.entities.seine.GearUseFeaturesSeine; +import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.referential.GearCaracteristicDto; +import fr.ird.observe.services.dto.referential.GearDto; +import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.service.DataNotFoundException; +import org.apache.commons.lang3.StringUtils; + +import java.util.Collections; +import java.util.List; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class GearUseFeaturesSeineServiceTopia extends ObserveServiceTopia implements GearUseFeaturesSeineService { + + @Override + public List<GearUseFeaturesSeineDto> getGearUseFeaturesSeineByTripSeine(String tripSeineId) { + + TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); + + List<GearUseFeaturesSeineDto> dtos = Lists.newLinkedList(); + + for (GearUseFeaturesSeine features : tripSeine.getGearUseFeaturesSeine()) { + + GearUseFeaturesSeineDto dto = entityToDto(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, features); + + dtos.add(dto); + } + + return dtos; + } + + @Override + public FormDto<GearUseFeaturesSeineDto> loadToRead(String gearUseFeaturesSeineId) { + + GearUseFeaturesSeine featuresSeine = loadEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, gearUseFeaturesSeineId); + + FormDto<GearUseFeaturesSeineDto> form = entityToReadFormDto(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, featuresSeine); + + return form; + } + + @Override + public FormDto<GearUseFeaturesSeineDto> loadToEdit(String gearUseFeaturesSeineId) { + + GearUseFeaturesSeine featuresSeine = loadEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, gearUseFeaturesSeineId); + + FormDto<GearUseFeaturesSeineDto> form = entityToEditFormDto( + GearUseFeaturesSeineDto.class, + GearUseFeaturesSeine.class, + featuresSeine, + Sets.<Class<? extends IdDto>>newHashSet(GearDto.class, GearCaracteristicDto.class)); + + return form; + } + + @Override + public FormDto<GearUseFeaturesSeineDto> preCreate() { + + GearUseFeaturesSeine featuresSeine = newEntity(GearUseFeaturesSeine.class); + + FormDto<GearUseFeaturesSeineDto> form = entityToEditFormDto( + GearUseFeaturesSeineDto.class, + GearUseFeaturesSeine.class, + featuresSeine, + Sets.<Class<? extends IdDto>>newHashSet(GearDto.class, GearCaracteristicDto.class)); + + return form; + } + + @Override + public String save(FormDto<GearUseFeaturesSeineDto> form, String tripSeineId) { + + TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); + + GearUseFeaturesSeineDto featuresSeineDto = form.getForm(); + + GearUseFeaturesSeine featuresSeine = dtoToEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, featuresSeineDto); + +// for (GearUseFeaturesMeasurementSeine measurementSeine : featuresSeine.getGearUseFeaturesMeasurement()) { +// +// saveEntity(GearUseFeaturesMeasurementSeine.class, measurementSeine); +// +// } + + featuresSeine = saveEntity(GearUseFeaturesSeine.class, featuresSeine); + + if (StringUtils.isBlank(featuresSeineDto.getId())) { + + tripSeine.addGearUseFeaturesSeine(featuresSeine); + + saveEntity(TripSeine.class, tripSeine); + + } + + return featuresSeine.getTopiaId(); + } + + @Override + public void delete(String tripSeineId, String gearUseFeaturesSeineId) { + + TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); + + GearUseFeaturesSeine featuresSeine = loadEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, gearUseFeaturesSeineId); + + if (! tripSeine.containsGearUseFeaturesSeine(featuresSeine)) { + throw new DataNotFoundException(GearUseFeaturesSeineDto.class, gearUseFeaturesSeineId); + } + + deleteEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, Collections.singleton(gearUseFeaturesSeineId)); + + tripSeine.removeGearUseFeaturesSeine(featuresSeine); + + + } +} 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 30e774b..95511b0 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 @@ -26,7 +26,7 @@ import java.io.InputStream; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; -import java.util.List; +import java.util.Set; /** * Created on 18/08/15. @@ -42,9 +42,9 @@ public class DataSourceResource implements TestRule { protected ObserveDataSourceConfigurationTopiaH2 dataSourceConfiguration; - protected List<String> testNamesChangeDataBase; + protected Set<String> testNamesChangeDataBase; - public DataSourceResource(ApplicationContextResource applicationContextResource, List<String> testNamesChangeDataBase) { + public DataSourceResource(ApplicationContextResource applicationContextResource, Set<String> testNamesChangeDataBase) { this.applicationContextResource = applicationContextResource; this.testNamesChangeDataBase = testNamesChangeDataBase; } 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 031cce4..5c63036 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 @@ -171,7 +171,7 @@ public class DtoToEntityBuilderTest { class ObserveServiceTopiaMock extends ObserveServiceTopia { @Override - protected <D extends IdDto, E extends TopiaEntity> E loadEntity(Class<D> dtoType, Class<E> entityType, String id) { + public <D extends IdDto, E extends TopiaEntity> E loadEntity(Class<D> dtoType, Class<E> entityType, String id) { E e = newEntity(entityType); e.setTopiaId(id); return e; diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java index 80ac7de..3d3a8b4 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.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.entities.constants.GearType; import fr.ird.observe.entities.constants.ReferenceStatus; import fr.ird.observe.entities.referentiel.Gear; @@ -207,7 +208,7 @@ public class EntityToDtoBuilderTest { Assert.assertEquals(features.getUsedInTrip(), featuresDto.getUsedInTrip()); Assert.assertEquals(features.sizeGearUseFeaturesMeasurement(), featuresDto.sizeGearUseFeaturesMeasurement()); - GearUseFeaturesMeasurementSeineDto measurementDto = featuresDto.getGearUseFeaturesMeasurement().get(0); + GearUseFeaturesMeasurementSeineDto measurementDto = Iterables.get(featuresDto.getGearUseFeaturesMeasurement(), 0); Assert.assertEquals(measurement.getTopiaId(), measurementDto.getId()); Assert.assertEquals(measurement.getMeasurementValue(), measurementDto.getMeasurementValue()); Assert.assertNotNull(measurementDto.getGearCaracteristic()); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java index 98b0784..b93c444 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java @@ -12,7 +12,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.nuiton.topia.persistence.TopiaEntity; -import java.util.List; +import java.util.Set; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com @@ -28,7 +28,7 @@ public abstract class AbstractServiceTopiaTest { @ClassRule public static final ApplicationContextResource applicationContextResource = new ApplicationContextResource(); - public abstract List<String> getTestNamesChangeDataBase(); + public abstract Set<String> getTestNamesChangeDataBase(); public abstract String getScriptName(); @Rule diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/DataSourceServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/DataSourceServiceTopiaTest.java index 377e976..4361709 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/DataSourceServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/DataSourceServiceTopiaTest.java @@ -1,6 +1,6 @@ package fr.ird.observe.services.service; -import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveTopiaApplicationContext; import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.migration.H2DataSourceMigration; @@ -29,7 +29,7 @@ public class DataSourceServiceTopiaTest { @ClassRule public static final ApplicationContextResource applicationContextResource = new ApplicationContextResource(); - public static final ImmutableList<String> TEST_NAMES_CHANGE_DATA_BASE = ImmutableList.of( + public static final ImmutableSet<String> TEST_NAMES_CHANGE_DATA_BASE = ImmutableSet.of( "testOpenNotExistingDatabase", "testOpen", "testCreateEmptyDataSource", diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java index e509db0..9a7f764 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java @@ -1,6 +1,6 @@ package fr.ird.observe.services.service; -import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.referentiel.LengthWeightParameter; import fr.ird.observe.entities.referentiel.Program; @@ -17,8 +17,8 @@ import org.junit.Test; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; -import java.util.List; import java.util.Map; +import java.util.Set; /** * Created on 16/08/15. @@ -33,8 +33,8 @@ public class ReferentialServiceTopiaTest extends AbstractServiceTopiaTest { protected ReferentialService service; @Override - public List<String> getTestNamesChangeDataBase() { - return ImmutableList.of("testDelete"); + public Set<String> getTestNamesChangeDataBase() { + return ImmutableSet.of("testDelete"); } @Override diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopiaTest.java new file mode 100644 index 0000000..bffe986 --- /dev/null +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopiaTest.java @@ -0,0 +1,317 @@ +package fr.ird.observe.services.service.seine; + +import com.google.common.base.Predicate; +import com.google.common.collect.Collections2; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; +import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine; +import fr.ird.observe.entities.seine.GearUseFeaturesSeine; +import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.IdDtos; +import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.ReferenceSetDtos; +import fr.ird.observe.services.dto.referential.GearCaracteristicDto; +import fr.ird.observe.services.dto.referential.GearDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; +import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; +import fr.ird.observe.services.service.AbstractServiceTopiaTest; +import fr.ird.observe.services.service.ReferentialService; +import org.junit.Assert; +import org.junit.Test; +import org.nuiton.topia.persistence.TopiaEntities; + +import java.util.Collection; +import java.util.List; +import java.util.Set; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTest { + + protected GearUseFeaturesSeineService service; + + protected ReferentialService referentialService; + + public static final String GEAR_USE_FEATURES_SEINE_ID = "fr.ird.observe.entities.seine.GearUseFeaturesSeine#1440486230661#0.42614931015885216"; + + @Override + public Set<String> getTestNamesChangeDataBase() { + return ImmutableSet.of( + "saveCreateTest", + "saveUpdateTest", + "deleteTest"); + } + + @Override + public String getScriptName() { + return "dataForTestSeine"; + } + + @Override + public void setUp() throws Exception { + + super.setUp(); + + service = newService(GearUseFeaturesSeineService.class); + + referentialService = newService(ReferentialService.class); + + } + + @Test + public void getGearUseFeaturesSeineByTripSeine() { + + List<GearUseFeaturesSeineDto> featuresSeineDtos = service.getGearUseFeaturesSeineByTripSeine(TRIP_SEINE_ID_1); + + TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_1); + + Assert.assertEquals(tripSeine.sizeGearUseFeaturesSeine(), featuresSeineDtos.size()); + + for (GearUseFeaturesSeineDto featuresSeineDto : featuresSeineDtos) { + GearUseFeaturesSeine features = Iterables.find( + tripSeine.getGearUseFeaturesSeine(), + TopiaEntities.entityHasId(featuresSeineDto.getId())); + + assertEntityEqualsReferenceDto(features.getGear(), featuresSeineDto.getGear()); + Assert.assertEquals(features.getNumber(), featuresSeineDto.getNumber()); + Assert.assertEquals(features.getUsedInTrip(), featuresSeineDto.getUsedInTrip()); + Assert.assertEquals(features.getComment(), featuresSeineDto.getComment()); + + Assert.assertEquals(features.sizeGearUseFeaturesMeasurement(), featuresSeineDto.sizeGearUseFeaturesMeasurement()); + + for (GearUseFeaturesMeasurementSeineDto measurementSeineDto : featuresSeineDto.getGearUseFeaturesMeasurement()) { + GearUseFeaturesMeasurementSeine measurementSeine = Iterables.find( + features.getGearUseFeaturesMeasurement(), + TopiaEntities.entityHasId(measurementSeineDto.getId())); + + assertEntityEqualsReferenceDto(measurementSeine.getGearCaracteristic(), measurementSeineDto.getGearCaracteristic()); + Assert.assertEquals(measurementSeine.getMeasurementValue(), measurementSeineDto.getMeasurementValue()); + } + + } + } + + + @Test + public void loadToReadTest() { + + GearUseFeaturesSeine featuresSeine = dataSourceResource.findById(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID); + + FormDto<GearUseFeaturesSeineDto> formDto = service.loadToRead(GEAR_USE_FEATURES_SEINE_ID); + + Assert.assertNotNull(formDto); + GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); + + Assert.assertEquals(featuresSeine.getTopiaId(), featuresSeineDto.getId()); + assertEntityEqualsReferenceDto(featuresSeine.getGear(), featuresSeineDto.getGear()); + Assert.assertEquals(featuresSeine.getNumber(), featuresSeineDto.getNumber()); + Assert.assertEquals(featuresSeine.getUsedInTrip(), featuresSeineDto.getUsedInTrip()); + Assert.assertEquals(featuresSeine.getComment(), featuresSeineDto.getComment()); + + Assert.assertEquals(featuresSeine.sizeGearUseFeaturesMeasurement(), featuresSeineDto.sizeGearUseFeaturesMeasurement()); + + for (GearUseFeaturesMeasurementSeineDto measurementSeineDto : featuresSeineDto.getGearUseFeaturesMeasurement()) { + GearUseFeaturesMeasurementSeine measurementSeine = Iterables.find( + featuresSeine.getGearUseFeaturesMeasurement(), + TopiaEntities.entityHasId(measurementSeineDto.getId())); + + assertEntityEqualsReferenceDto(measurementSeine.getGearCaracteristic(), measurementSeineDto.getGearCaracteristic()); + Assert.assertEquals(measurementSeine.getMeasurementValue(), measurementSeineDto.getMeasurementValue()); + } + + Assert.assertNotNull(formDto.getLabels()); + + Collection<Class> types = Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction()); + Assert.assertTrue(types.contains(GearDto.class)); + Assert.assertTrue(types.contains(GearCaracteristicDto.class)); + Assert.assertEquals(2, formDto.sizeLabels()); + + for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { + + Assert.assertEquals(0, referenceSetDto.sizeReference()); + + } + } + + @Test + public void loadToEditTest() { + + GearUseFeaturesSeine featuresSeine = dataSourceResource.findById(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID); + + FormDto<GearUseFeaturesSeineDto> formDto = service.loadToEdit(GEAR_USE_FEATURES_SEINE_ID); + + Assert.assertNotNull(formDto); + GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); + + Assert.assertEquals(featuresSeine.getTopiaId(), featuresSeineDto.getId()); + assertEntityEqualsReferenceDto(featuresSeine.getGear(), featuresSeineDto.getGear()); + Assert.assertEquals(featuresSeine.getNumber(), featuresSeineDto.getNumber()); + Assert.assertEquals(featuresSeine.getUsedInTrip(), featuresSeineDto.getUsedInTrip()); + Assert.assertEquals(featuresSeine.getComment(), featuresSeineDto.getComment()); + + Assert.assertEquals(featuresSeine.sizeGearUseFeaturesMeasurement(), featuresSeineDto.sizeGearUseFeaturesMeasurement()); + + for (GearUseFeaturesMeasurementSeineDto measurementSeineDto : featuresSeineDto.getGearUseFeaturesMeasurement()) { + GearUseFeaturesMeasurementSeine measurementSeine = Iterables.find( + featuresSeine.getGearUseFeaturesMeasurement(), + TopiaEntities.entityHasId(measurementSeineDto.getId())); + + assertEntityEqualsReferenceDto(measurementSeine.getGearCaracteristic(), measurementSeineDto.getGearCaracteristic()); + Assert.assertEquals(measurementSeine.getMeasurementValue(), measurementSeineDto.getMeasurementValue()); + } + + Assert.assertNotNull(formDto.getLabels()); + + Collection<Class> types = Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction()); + Assert.assertTrue(types.contains(GearDto.class)); + Assert.assertTrue(types.contains(GearCaracteristicDto.class)); + Assert.assertEquals(2, formDto.sizeLabels()); + + for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { + + Assert.assertTrue(referenceSetDto.sizeReference() > 0); + + } + } + + @Test + public void preCreateTest() { + FormDto<GearUseFeaturesSeineDto> formDto = service.preCreate(); + + Assert.assertNotNull(formDto); + GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); + + Assert.assertNull(featuresSeineDto.getId()); + Assert.assertNull(featuresSeineDto.getNumber()); + Assert.assertNull(featuresSeineDto.getUsedInTrip()); + Assert.assertNull(featuresSeineDto.getComment()); + Assert.assertEquals(0, featuresSeineDto.sizeGearUseFeaturesMeasurement()); + + Assert.assertNotNull(formDto.getLabels()); + + Collection<Class> types = Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction()); + Assert.assertTrue(types.contains(GearDto.class)); + Assert.assertTrue(types.contains(GearCaracteristicDto.class)); + Assert.assertEquals(2, formDto.sizeLabels()); + + for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { + + Assert.assertTrue(referenceSetDto.sizeReference() > 0); + + } + + } + + @Test + public void saveUpdateTest() { + FormDto<GearUseFeaturesSeineDto> formDto = service.loadToEdit(GEAR_USE_FEATURES_SEINE_ID); + + GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); + + featuresSeineDto.setNumber(12); + featuresSeineDto.setComment("Un Commentaire"); + for (GearUseFeaturesMeasurementSeineDto measurementSeineDto : featuresSeineDto.getGearUseFeaturesMeasurement()) { + if ("fr.ird.observe.entities.referentiel.GearCaracteristic#1239832686124#0.20".equals(measurementSeineDto.getGearCaracteristic().getId())) { + measurementSeineDto.setMeasurementValue("4"); + } else if ("fr.ird.observe.entities.referentiel.GearCaracteristic#1239832686124#0.21".equals(measurementSeineDto.getGearCaracteristic().getId())) { + measurementSeineDto.setMeasurementValue("false"); + } else if ("fr.ird.observe.entities.referentiel.GearCaracteristic#1239832686124#0.22".equals(measurementSeineDto.getGearCaracteristic().getId())) { + measurementSeineDto.setMeasurementValue("true"); + } + } + + service.save(formDto, TRIP_SEINE_ID_1); + + GearUseFeaturesSeine featuresSeine = dataSourceResource.findById(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID); + + Assert.assertEquals(featuresSeineDto.getId(), featuresSeine.getTopiaId()); + assertReferenceDtoEqualsEntity(featuresSeineDto.getGear(), featuresSeine.getGear()); + Assert.assertEquals(featuresSeineDto.getNumber(), featuresSeine.getNumber()); + Assert.assertEquals(featuresSeineDto.getUsedInTrip(), featuresSeine.getUsedInTrip()); + Assert.assertEquals(featuresSeineDto.getComment(), featuresSeine.getComment()); + + Assert.assertEquals(featuresSeineDto.sizeGearUseFeaturesMeasurement(), featuresSeine.sizeGearUseFeaturesMeasurement()); + + for (GearUseFeaturesMeasurementSeineDto measurementSeineDto : featuresSeineDto.getGearUseFeaturesMeasurement()) { + GearUseFeaturesMeasurementSeine measurementSeine = Iterables.find( + featuresSeine.getGearUseFeaturesMeasurement(), + TopiaEntities.entityHasId(measurementSeineDto.getId())); + + assertReferenceDtoEqualsEntity(measurementSeineDto.getGearCaracteristic(), measurementSeine.getGearCaracteristic()); + Assert.assertEquals(measurementSeineDto.getMeasurementValue(), measurementSeine.getMeasurementValue()); + } + + } + + @Test + public void saveCreateTest() { + FormDto<GearUseFeaturesSeineDto> formDto = service.preCreate(); + + GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); + + ReferentialReferenceDto<GearDto> radarRefDto = (ReferentialReferenceDto<GearDto>) Iterables.find( + formDto.getReferenceSetDto(GearDto.class).getReference(), + IdDtos.newIdPredicate("fr.ird.observe.entities.referentiel.Gear#1239832686125#0.4")); + + featuresSeineDto.setGear(radarRefDto); + featuresSeineDto.setNumber(1); + featuresSeineDto.setComment("Un autre Commentaire"); + + GearUseFeaturesMeasurementSeineDto measurementSeineDto1 = new GearUseFeaturesMeasurementSeineDto(); + + ReferentialReferenceDto<GearCaracteristicDto> rangeRefDto = (ReferentialReferenceDto<GearCaracteristicDto>) Iterables.find( + formDto.getReferenceSetDto(GearCaracteristicDto.class).getReference(), + IdDtos.newIdPredicate("fr.ird.observe.entities.referentiel.GearCaracteristic#1239832686124#0.1")); + + measurementSeineDto1.setGearCaracteristic(rangeRefDto); + measurementSeineDto1.setMeasurementValue("50"); + + featuresSeineDto.addGearUseFeaturesMeasurement(measurementSeineDto1); + + + String featuresSeineId = service.save(formDto, TRIP_SEINE_ID_1); + + GearUseFeaturesSeine featuresSeine = dataSourceResource.findById(GearUseFeaturesSeine.class, featuresSeineId); + + assertReferenceDtoEqualsEntity(featuresSeineDto.getGear(), featuresSeine.getGear()); + Assert.assertEquals(featuresSeineDto.getNumber(), featuresSeine.getNumber()); + Assert.assertEquals(featuresSeineDto.getUsedInTrip(), featuresSeine.getUsedInTrip()); + Assert.assertEquals(featuresSeineDto.getComment(), featuresSeine.getComment()); + + Assert.assertEquals(featuresSeineDto.sizeGearUseFeaturesMeasurement(), featuresSeine.sizeGearUseFeaturesMeasurement()); + + for (final GearUseFeaturesMeasurementSeineDto measurementSeineDto : featuresSeineDto.getGearUseFeaturesMeasurement()) { + GearUseFeaturesMeasurementSeine measurementSeine = Iterables.find( + featuresSeine.getGearUseFeaturesMeasurement(), + new Predicate<GearUseFeaturesMeasurementSeine>() { + @Override + public boolean apply(GearUseFeaturesMeasurementSeine gearUseFeaturesMeasurementSeine) { + return measurementSeineDto.getGearCaracteristic().getId().equals(gearUseFeaturesMeasurementSeine.getGearCaracteristic().getTopiaId()); + } + }); + + assertReferenceDtoEqualsEntity(measurementSeineDto.getGearCaracteristic(), measurementSeine.getGearCaracteristic()); + Assert.assertEquals(measurementSeineDto.getMeasurementValue(), measurementSeine.getMeasurementValue()); + } + + } + + @Test + public void deleteTest() { + + service.delete(TRIP_SEINE_ID_1, GEAR_USE_FEATURES_SEINE_ID); + + List<GearUseFeaturesSeineDto> featuresSeineDtos = service.getGearUseFeaturesSeineByTripSeine(TRIP_SEINE_ID_1); + + Assert.assertEquals(1, featuresSeineDtos.size()); + + Assert.assertFalse(dataSourceResource.exists(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID)); + + + } + + +} 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 6ebaf5a..9b86140 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 @@ -1,7 +1,7 @@ package fr.ird.observe.services.service.seine; import com.google.common.collect.Collections2; -import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.ObserveServiceContextTopiaTaiste; import fr.ird.observe.services.dto.FormDto; @@ -22,6 +22,7 @@ import org.nuiton.util.DateUtil; import java.util.Collection; import java.util.List; +import java.util.Set; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com @@ -33,8 +34,8 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { protected ReferentialService referentialService; @Override - public List<String> getTestNamesChangeDataBase() { - return ImmutableList.of( + public Set<String> getTestNamesChangeDataBase() { + return ImmutableSet.of( "saveCreateTest", "saveUpdateTest", "deleteTest"); diff --git a/observe-test-data/src/main/resources/db/4.0.1/dataForTestSeine.sql.gz b/observe-test-data/src/main/resources/db/4.0.1/dataForTestSeine.sql.gz index f61fb10..e8f5cfa 100644 Binary files a/observe-test-data/src/main/resources/db/4.0.1/dataForTestSeine.sql.gz and b/observe-test-data/src/main/resources/db/4.0.1/dataForTestSeine.sql.gz differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm