branch feature/7463 updated (c884bd5 -> e042916)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7463 in repository observe. See http://git.codelutin.com/observe.git from c884bd5 Changement de l'API de DataSourceService pour quelle renvoie le résultat de la connexion à la source de données new e042916 test + correction de la communication entre le client REST et le serveur Web (refs #7463) 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 e0429166b47d40d585ab0b612de708189f46a6db Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Sep 4 17:59:25 2015 +0200 test + correction de la communication entre le client REST et le serveur Web (refs #7463) Summary of changes: .../application/web/ObserveWebMotionFilter.java | 6 +- .../java/fr/ird/observe/services/dto/FormDto.java | 12 +- .../fr/ird/observe/services/dto/ReferenceDto.java | 14 +- .../services/dto/gson/ImmutableListAdapter.java | 25 ++ .../services/dto/gson/ObserveDtoGsonSupplier.java | 8 +- .../services/dto/gson/ReferenceDtoAdapter.java | 84 ++++++ .../dto/gson/ReferentialReferenceDtoAdapter.java | 27 ++ .../dto/referential/ReferentialReferenceDtos.java | 8 + .../src/main/xmi/observe-services-dto-common.zargo | Bin 34074 -> 33879 bytes .../services/ObserveServiceFactoryRest.java | 12 +- .../fr/ird/observe/services/TestClassResource.java | 4 +- .../service/seine/TripSeineServiceTest.java | 329 +++++++++++++++++++++ 12 files changed, 514 insertions(+), 15 deletions(-) create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ImmutableListAdapter.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferenceDtoAdapter.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferentialReferenceDtoAdapter.java create mode 100644 observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTest.java -- 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/7463 in repository observe. See http://git.codelutin.com/observe.git commit e0429166b47d40d585ab0b612de708189f46a6db Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Sep 4 17:59:25 2015 +0200 test + correction de la communication entre le client REST et le serveur Web (refs #7463) --- .../application/web/ObserveWebMotionFilter.java | 6 +- .../java/fr/ird/observe/services/dto/FormDto.java | 12 +- .../fr/ird/observe/services/dto/ReferenceDto.java | 14 +- .../services/dto/gson/ImmutableListAdapter.java | 25 ++ .../services/dto/gson/ObserveDtoGsonSupplier.java | 8 +- .../services/dto/gson/ReferenceDtoAdapter.java | 84 ++++++ .../dto/gson/ReferentialReferenceDtoAdapter.java | 27 ++ .../dto/referential/ReferentialReferenceDtos.java | 8 + .../src/main/xmi/observe-services-dto-common.zargo | Bin 34074 -> 33879 bytes .../services/ObserveServiceFactoryRest.java | 12 +- .../fr/ird/observe/services/TestClassResource.java | 4 +- .../service/seine/TripSeineServiceTest.java | 329 +++++++++++++++++++++ 12 files changed, 514 insertions(+), 15 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java index e823654..4590091 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/ObserveWebMotionFilter.java @@ -90,9 +90,9 @@ public class ObserveWebMotionFilter extends WebMotionFilter implements ObserveDa // Cas où on l'utilisateur n'est pas connecté - String userLogin = getRequestParameterValueOrNull(request, REQUEST_USER_LOGIN); - String userPassword = getRequestParameterValueOrNull(request, REQUEST_USER_PASSWORD); - String userDatabaseName = getRequestParameterValueOrNull(request, REQUEST_USER_DATABASE_NAME); + String userLogin = getRequestHeaderOrParameterValueOrNull(request, REQUEST_USER_LOGIN); + String userPassword = getRequestHeaderOrParameterValueOrNull(request, REQUEST_USER_PASSWORD); + String userDatabaseName = getRequestHeaderOrParameterValueOrNull(request, REQUEST_USER_DATABASE_NAME); if (!(userLogin == null && userPassword == null)) { diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java index 9eec082..949f00a 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java @@ -1,6 +1,5 @@ package fr.ird.observe.services.dto; -import com.google.common.base.Preconditions; import com.google.common.collect.Iterables; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; @@ -11,19 +10,18 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { protected final Class<R> type; + protected R form; + public FormDto(Class<R> type) { this.type = type; } - @Override - public void setForm(IdDto form) { - Preconditions.checkArgument(form.getClass().isAssignableFrom(type), "Bad form type, should be " + type.getName()); - super.setForm(form); + public void setForm(R form) { + this.form = form; } - @Override public R getForm() { - return (R) super.getForm(); + return form; } public Class<R> getType() { diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java index a9431ea..2c46d65 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java @@ -7,6 +7,14 @@ import java.io.Serializable; public class ReferenceDto<D extends IdDto> extends AbstractReferenceDto { + public static final String PROPERTY_TYPE = "type"; + + public static final String PROPERTY_LABEL_PROPERTY_NAMES = "labelPropertyNames"; + + public static final String PROPERTY_LABEL_PROPERTY_VALUES = "labelPropertyValues"; + + public static final String PROPERTY_LABEL_PROPERTY_TYPES = "labelPropertyTypes"; + private static final long serialVersionUID = 1L; protected Class<D> type; @@ -15,14 +23,17 @@ public class ReferenceDto<D extends IdDto> extends AbstractReferenceDto { protected Serializable[] labelPropertyValues; + protected Class[] labelPropertyTypes; + public Class<D> getType() { return type; } - protected void init(Class<D> type, Iterable<String> labelPropertyNames) { + public void init(Class<D> type, Iterable<String> labelPropertyNames) { this.type = type; this.labelPropertyNames = ImmutableList.copyOf(labelPropertyNames); this.labelPropertyValues = new Serializable[this.labelPropertyNames.size()]; + this.labelPropertyTypes = new Class[this.labelPropertyNames.size()]; } public Serializable getPropertyValue(String propertyName) { @@ -38,6 +49,7 @@ public class ReferenceDto<D extends IdDto> extends AbstractReferenceDto { Preconditions.checkNotNull(propertyName, "propertyName parameter can't be null"); int propertyIndex = getPropertyIndex(propertyName); labelPropertyValues[propertyIndex] = propertyValue; + labelPropertyTypes[propertyIndex] = propertyValue.getClass(); } protected int getPropertyIndex(String propertyName) { diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ImmutableListAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ImmutableListAdapter.java new file mode 100644 index 0000000..12ee4a8 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ImmutableListAdapter.java @@ -0,0 +1,25 @@ +package fr.ird.observe.services.dto.gson; + +import com.google.common.collect.ImmutableList; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; +import sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl; + +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.List; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ImmutableListAdapter implements JsonDeserializer<ImmutableList<?>> { + + @Override + public ImmutableList<?> deserialize(JsonElement json, Type type, JsonDeserializationContext context) throws JsonParseException { + final Type type2 = ParameterizedTypeImpl.make(List.class, ((ParameterizedType) type).getActualTypeArguments(), null); + final List<?> list = context.deserialize(json, type2); + return ImmutableList.copyOf(list); + } +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java index 2e29717..5fc0b5e 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java @@ -1,8 +1,11 @@ package fr.ird.observe.services.dto.gson; import com.google.common.base.Supplier; +import com.google.common.collect.ImmutableList; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import java.sql.Timestamp; import java.util.Date; @@ -51,7 +54,10 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { gsonBuilder.registerTypeAdapter(Timestamp.class, new DateAdapter()); gsonBuilder.registerTypeAdapter(java.sql.Date.class, new DateAdapter()); gsonBuilder.registerTypeAdapter(Class.class, new ClassAdapter()); - +// gsonBuilder.registerTypeAdapter(IdDto.class, new IdDtoAdapter()); + gsonBuilder.registerTypeAdapter(ImmutableList.class, new ImmutableListAdapter()); + gsonBuilder.registerTypeAdapter(ReferenceDto.class, new ReferenceDtoAdapter()); + gsonBuilder.registerTypeAdapter(ReferentialReferenceDto.class, new ReferentialReferenceDtoAdapter()); } return gsonBuilder; diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferenceDtoAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferenceDtoAdapter.java new file mode 100644 index 0000000..2574992 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferenceDtoAdapter.java @@ -0,0 +1,84 @@ +package fr.ird.observe.services.dto.gson; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceDtos; +import fr.ird.observe.services.dto.constants.ReferenceStatus; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDtos; + +import java.io.Serializable; +import java.lang.reflect.Type; +import java.util.List; +import java.util.Map; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ReferenceDtoAdapter implements JsonDeserializer<ReferenceDto<?>> { + + @Override + public ReferenceDto<?> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + JsonObject jsonObject = json.getAsJsonObject(); + + Class dtoType = context.deserialize(jsonObject.get(ReferenceDto.PROPERTY_TYPE), Class.class); + String id = context.deserialize(jsonObject.get(ReferenceDto.PROPERTY_ID), String.class); + + JsonArray jsonLabelPropertyNames = jsonObject.get(ReferenceDto.PROPERTY_LABEL_PROPERTY_NAMES).getAsJsonArray(); + JsonArray jsonLabelPropertyValues = jsonObject.get(ReferenceDto.PROPERTY_LABEL_PROPERTY_VALUES).getAsJsonArray(); + JsonArray JsonLabelPropertyTypes = jsonObject.get(ReferenceDto.PROPERTY_LABEL_PROPERTY_TYPES).getAsJsonArray(); + + List<String> labelPropertyNames = Lists.newArrayList(); + Map<String, Serializable> valuesByName = Maps.newHashMap(); + + for (int i = 0; i < jsonLabelPropertyNames.size(); i++) { + String name = jsonLabelPropertyNames.get(i).getAsString(); + Class type = context.deserialize(JsonLabelPropertyTypes.get(i), Class.class); + Serializable value = context.deserialize(jsonLabelPropertyValues.get(i), type); + + labelPropertyNames.add(name); + valuesByName.put(name, value); + } + + ReferenceDto<?> referenceDto; + + if (ReferentialDto.class.isAssignableFrom(dtoType)) { + ReferentialReferenceDto referentialReferenceDto = ReferentialReferenceDtos.newReferentialReferenceDto(dtoType, labelPropertyNames); + + JsonElement jsonElement = jsonObject.get(ReferentialReferenceDto.PROPERTY_NEED_COMMENT); + boolean needComment = jsonElement.getAsBoolean(); + referentialReferenceDto.setNeedComment(needComment); + + ReferenceStatus status = context.deserialize(jsonObject.get(ReferentialReferenceDto.PROPERTY_STATUS), ReferenceStatus.class); + referentialReferenceDto.setStatus(status); + + referenceDto = referentialReferenceDto; + + } else { + referenceDto = ReferenceDtos.newReferenceDto(dtoType, labelPropertyNames); + } + + referenceDto.setId(id); + + for (Map.Entry<String, Serializable> entry : valuesByName.entrySet()) { + referenceDto.setPropertyValue(entry.getKey(), entry.getValue()); + } + + return referenceDto; + } + + protected ReferenceDto<?> newReferenceDto(Class type, Iterable<String> propertyNames) { + return ReferenceDtos.newReferenceDto(type, propertyNames); + } + + + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferentialReferenceDtoAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferentialReferenceDtoAdapter.java new file mode 100644 index 0000000..9b7cff4 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferentialReferenceDtoAdapter.java @@ -0,0 +1,27 @@ +package fr.ird.observe.services.dto.gson; + +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; + +import java.lang.reflect.Type; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ReferentialReferenceDtoAdapter implements JsonDeserializer<ReferentialReferenceDto<?>> { + + ReferenceDtoAdapter referenceDtoAdapter = new ReferenceDtoAdapter(); + + @Override + public ReferentialReferenceDto<?> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + + ReferentialReferenceDto<?> referentialReferenceDto = (ReferentialReferenceDto) referenceDtoAdapter.deserialize(json, typeOfT, context); + + return referentialReferenceDto; + + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java index 5e4dfb8..17a39c5 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java @@ -15,4 +15,12 @@ public class ReferentialReferenceDtos extends AbstractReferentialReferenceDtos { return dto; } + public static <R extends ReferentialDto> ReferentialReferenceDto<R> newReferentialReferenceDto(Class<R> type, + Iterable<String> propertyNames) { + + ReferentialReferenceDto<R> dto = new ReferentialReferenceDto<>(); + dto.init(type, propertyNames); + return dto; + } + } diff --git a/observe-services-model/src/main/xmi/observe-services-dto-common.zargo b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo index ae48f49..e6653f3 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-common.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo differ diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java index be71661..bff5f14 100644 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java @@ -14,6 +14,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRestN import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRestSupport; import fr.ird.observe.services.dto.gson.ObserveDtoGsonSupplier; import fr.ird.observe.services.http.RequestBuilder; +import fr.ird.observe.services.service.DataSourceService; import fr.ird.observe.services.spi.Write; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -34,6 +35,8 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl /** Logger. */ private static final Log log = LogFactory.getLog(ObserveServiceFactoryRest.class); + protected static final Package ROOT_SERVICES_PACKAGE = DataSourceService.class.getPackage(); + protected final CachingParanamer paranamer = new CachingParanamer(); protected final Supplier<Gson> gsonSupplier = new ObserveDtoGsonSupplier(); @@ -98,10 +101,15 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl this.serviceClass = serviceClass; this.dataSourceConfiguration = (ObserveDataSourceConfigurationRestSupport) observeServiceInitializer.getDataSourceConfiguration(); - this.serviceUrl = dataSourceConfiguration.getServerUrl() + "/" + serviceClass.getSimpleName(); + + String locateService = serviceClass.getCanonicalName().replace(ROOT_SERVICES_PACKAGE.getName(), ""); + locateService = locateService.replace(".", "/"); + + + this.serviceUrl = dataSourceConfiguration.getServerUrl() + locateService; this.gsonSupplier = gsonSupplier; this.applicationLocale = observeServiceInitializer.getApplicationLocale().toString(); - this.referentialLocale = observeServiceInitializer.getReferentialLocale().toString(); + this.referentialLocale = observeServiceInitializer.getReferentialLocale().getLocale().toString(); } diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java b/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java index 8639cf2..82165c4 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/TestClassResource.java @@ -1,5 +1,6 @@ package fr.ird.observe.services; +import com.google.common.base.Optional; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRestNotAuthenticated; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRestSupport; @@ -36,7 +37,7 @@ public class TestClassResource implements TestRule { protected final URL serverUrl; public TestClassResource() { - this("http://localhost:8080/observeweb/v1/api"); + this("http://localhost:8080/observeweb/api/v1"); } public TestClassResource(String serverUrl) { @@ -128,6 +129,7 @@ public class TestClassResource implements TestRule { configurationRest.setServerUrl(serverUrl); configurationRest.setLogin(login); configurationRest.setPassword(password); + configurationRest.setOptionalDatabaseName(Optional.<String>absent()); return configurationRest; diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTest.java new file mode 100644 index 0000000..6e25e91 --- /dev/null +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTest.java @@ -0,0 +1,329 @@ +package fr.ird.observe.services.service.seine; + +import com.google.common.collect.Collections2; +import com.google.common.collect.Iterables; +import fr.ird.observe.services.TestClassResource; +import fr.ird.observe.services.TestMethodResource; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRestSupport; +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.HarbourDto; +import fr.ird.observe.services.dto.referential.OceanDto; +import fr.ird.observe.services.dto.referential.PersonDto; +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 org.junit.Assert; +import org.junit.Before; +import org.junit.ClassRule; +import org.junit.Ignore; +import org.junit.Rule; +import org.junit.Test; +import org.nuiton.util.DateUtil; + +import java.util.Collection; +import java.util.List; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +@Ignore +public class TripSeineServiceTest { + + 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#1359280279156#0.41771067982188215"; + public static final String TRIP_SEINE_ID_3 = "fr.ird.observe.entities.seine.TripSeine#1360156698296#0.6097793743126777"; + + public static final String PROGRAM_ID = "fr.ird.observe.entities.referentiel.Program#1239832686262#0.31033946454061234"; + + @ClassRule + public static final TestClassResource testClassResource = new TestClassResource(); + + @Rule + public final TestMethodResource testMethodResource = new TestMethodResource(testClassResource); + + protected TripSeineService service; + + @Before + public void setUp() throws Exception { + + ObserveDataSourceConfigurationRestSupport dataSourceConfiguration = testMethodResource.getDataSourceConfiguration(); + service = testClassResource.newService(dataSourceConfiguration, TripSeineService.class); + + } + + @Test + public void getTripSeineByProgramTest() { + + List<TripSeineStubDto> stubDtos = service.getTripSeineByProgram(PROGRAM_ID); + + Assert.assertNotNull(stubDtos); + + Assert.assertEquals(135, stubDtos.size()); + + TripSeineStubDto tripSeineStub1Dto = Iterables.find(stubDtos, IdDtos.newIdPredicate(TRIP_SEINE_ID_1)); + + Assert.assertEquals(TRIP_SEINE_ID_1, tripSeineStub1Dto.getId()); + Assert.assertEquals(DateUtil.createDate(25, 1, 2013), tripSeineStub1Dto.getStartDate()); + Assert.assertEquals(DateUtil.createDate(27, 2, 2013), tripSeineStub1Dto.getEndDate()); + Assert.assertEquals("BERNICA", tripSeineStub1Dto.getVesselLabel()); + Assert.assertEquals("Varenne Fanchon", tripSeineStub1Dto.getObserverLabel()); + + + TripSeineStubDto tripSeineStu2Dto = Iterables.find(stubDtos, IdDtos.newIdPredicate(TRIP_SEINE_ID_2)); + + Assert.assertEquals(TRIP_SEINE_ID_2, tripSeineStu2Dto.getId()); + Assert.assertEquals(DateUtil.createDate(26, 1, 2013), tripSeineStu2Dto.getStartDate()); + Assert.assertEquals(DateUtil.createDate(12, 3, 2013), tripSeineStu2Dto.getEndDate()); + Assert.assertEquals("VIA EUROS", tripSeineStu2Dto.getVesselLabel()); + Assert.assertEquals("Protat Martin", tripSeineStu2Dto.getObserverLabel()); + + + TripSeineStubDto tripSeineStub3Dto = Iterables.find(stubDtos, IdDtos.newIdPredicate(TRIP_SEINE_ID_3)); + + Assert.assertEquals(TRIP_SEINE_ID_3, tripSeineStub3Dto.getId()); + Assert.assertEquals(DateUtil.createDate(1, 2, 2013), tripSeineStub3Dto.getStartDate()); + Assert.assertEquals(DateUtil.createDate(17, 3, 2013), tripSeineStub3Dto.getEndDate()); + Assert.assertEquals("GUERIDEN", tripSeineStub3Dto.getVesselLabel()); + Assert.assertEquals("Le Bourdonnec Pierre", tripSeineStub3Dto.getObserverLabel()); + + } + + @Test + public void loadToReadTest() throws Exception { + + FormDto<TripSeineDto> formDto = service.loadToRead(TRIP_SEINE_ID_1); + + Assert.assertNotNull(formDto); + TripSeineDto tripSeineDto = formDto.getForm(); + + Assert.assertNull(tripSeineDto.getCaptain()); + + Assert.assertEquals("fr.ird.observe.entities.referentiel.Person#1355399844272#0.32586441962131485", tripSeineDto.getObserver().getId()); + Assert.assertEquals("Fanchon", tripSeineDto.getObserver().getPropertyValue(PersonDto.PROPERTY_FIRST_NAME)); + Assert.assertEquals("Varenne", tripSeineDto.getObserver().getPropertyValue(PersonDto.PROPERTY_LAST_NAME)); + Assert.assertNull(tripSeineDto.getDataEntryOperator()); + Assert.assertEquals("fr.ird.observe.entities.referentiel.Vessel#1306847717532#0.7435948873477364", tripSeineDto.getVessel().getId()); + Assert.assertEquals("835", tripSeineDto.getVessel().getPropertyValue(VesselDto.PROPERTY_CODE)); + Assert.assertEquals("BERNICA", tripSeineDto.getVessel().getPropertyValue("label")); + Assert.assertEquals("fr.ird.observe.entities.referentiel.Ocean#1239832686152#0.8325731048817705", tripSeineDto.getOcean().getId()); + Assert.assertEquals("2", tripSeineDto.getOcean().getPropertyValue(OceanDto.PROPERTY_CODE)); + Assert.assertEquals("Indien", tripSeineDto.getOcean().getPropertyValue("label")); + Assert.assertNull(tripSeineDto.getDepartureHarbour()); + Assert.assertNull(tripSeineDto.getLandingHarbour()); + Assert.assertNull(tripSeineDto.getErsId()); + Assert.assertEquals(DateUtil.createDate(25, 1, 2013), tripSeineDto.getStartDate()); + Assert.assertEquals(DateUtil.createDate(27, 2, 2013), tripSeineDto.getEndDate()); + Assert.assertNull(tripSeineDto.getFormsUrl()); + Assert.assertNull(tripSeineDto.getReportsUrl()); + Assert.assertTrue(tripSeineDto.getComment().startsWith("Caractéristiques de la senne")); + + Assert.assertNotNull(formDto.getLabels()); + + Collection<Class> types = Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction()); + Assert.assertTrue(types.contains(PersonDto.class)); + Assert.assertTrue(types.contains(VesselDto.class)); + Assert.assertTrue(types.contains(OceanDto.class)); + Assert.assertTrue(types.contains(HarbourDto.class)); + Assert.assertEquals(formDto.sizeLabels(), 4); + + for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { + + Assert.assertEquals(0, referenceSetDto.sizeReference()); + + } + + } + + @Test + public void loadToEditTest() throws Exception { + + FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); + + Assert.assertNotNull(formDto); + TripSeineDto tripSeineDto = formDto.getForm(); + + Assert.assertNull(tripSeineDto.getCaptain()); + + Assert.assertEquals("fr.ird.observe.entities.referentiel.Person#1355399844272#0.32586441962131485", tripSeineDto.getObserver().getId()); + Assert.assertEquals("Fanchon", tripSeineDto.getObserver().getPropertyValue(PersonDto.PROPERTY_FIRST_NAME)); + Assert.assertEquals("Varenne", tripSeineDto.getObserver().getPropertyValue(PersonDto.PROPERTY_LAST_NAME)); + Assert.assertNull(tripSeineDto.getDataEntryOperator()); + Assert.assertEquals("fr.ird.observe.entities.referentiel.Vessel#1306847717532#0.7435948873477364", tripSeineDto.getVessel().getId()); + Assert.assertEquals("835", tripSeineDto.getVessel().getPropertyValue(VesselDto.PROPERTY_CODE)); + Assert.assertEquals("BERNICA", tripSeineDto.getVessel().getPropertyValue("label")); + Assert.assertEquals("fr.ird.observe.entities.referentiel.Ocean#1239832686152#0.8325731048817705", tripSeineDto.getOcean().getId()); + Assert.assertEquals("2", tripSeineDto.getOcean().getPropertyValue(OceanDto.PROPERTY_CODE)); + Assert.assertEquals("Indien", tripSeineDto.getOcean().getPropertyValue("label")); + Assert.assertNull(tripSeineDto.getDepartureHarbour()); + Assert.assertNull(tripSeineDto.getLandingHarbour()); + Assert.assertNull(tripSeineDto.getErsId()); + Assert.assertEquals(DateUtil.createDate(25, 1, 2013), tripSeineDto.getStartDate()); + Assert.assertEquals(DateUtil.createDate(27, 2, 2013), tripSeineDto.getEndDate()); + Assert.assertNull(tripSeineDto.getFormsUrl()); + Assert.assertNull(tripSeineDto.getReportsUrl()); + Assert.assertTrue(tripSeineDto.getComment().startsWith("Caractéristiques de la senne")); + + Assert.assertNotNull(formDto.getLabels()); + + Collection<Class> types = Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction()); + Assert.assertTrue(types.contains(PersonDto.class)); + Assert.assertTrue(types.contains(VesselDto.class)); + Assert.assertTrue(types.contains(OceanDto.class)); + Assert.assertTrue(types.contains(HarbourDto.class)); + Assert.assertEquals(formDto.sizeLabels(), 4); + + for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { + + Assert.assertTrue(referenceSetDto.sizeReference() > 0); + + } + + } + + @Test + public void preCreateTest() { + FormDto<TripSeineDto> formDto = service.preCreate(PROGRAM_ID); + + Assert.assertNotNull(formDto); + TripSeineDto tripSeineDto = formDto.getForm(); + + Assert.assertNull(tripSeineDto.getCaptain()); + Assert.assertNull(tripSeineDto.getObserver()); + Assert.assertNull(tripSeineDto.getDataEntryOperator()); + Assert.assertNull(tripSeineDto.getVessel()); + Assert.assertNull(tripSeineDto.getOcean()); + Assert.assertNull(tripSeineDto.getDepartureHarbour()); + Assert.assertNull(tripSeineDto.getLandingHarbour()); + Assert.assertNull(tripSeineDto.getErsId()); + //Assert.assertEquals(DateUtil.getDay(ObserveServiceContextTopiaTaiste.DATE), tripSeineDto.getStartDate()); + //Assert.assertEquals(DateUtil.getDay(ObserveServiceContextTopiaTaiste.DATE), tripSeineDto.getEndDate()); + Assert.assertNull(tripSeineDto.getFormsUrl()); + Assert.assertNull(tripSeineDto.getReportsUrl()); + Assert.assertNull(tripSeineDto.getComment()); + + Assert.assertNotNull(formDto.getLabels()); + + Collection<Class> types = Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction()); + Assert.assertTrue(types.contains(PersonDto.class)); + Assert.assertTrue(types.contains(VesselDto.class)); + Assert.assertTrue(types.contains(OceanDto.class)); + Assert.assertTrue(types.contains(HarbourDto.class)); + Assert.assertEquals(formDto.sizeLabels(), 4); + + for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { + + Assert.assertTrue(referenceSetDto.sizeReference() > 0); + + } + + } + +// @Test +// public void saveCreateTest() { +// +// FormDto<TripSeineDto> formDto = service.preCreate(PROGRAM_ID); +// +// TripSeineDto tripSeineDto = formDto.getForm(); +// +// ReferenceSetDto<PersonDto> personRefs = formDto.getReferenceSetDto(PersonDto.class); +// ReferenceSetDto<VesselDto> vesselRefs = formDto.getReferenceSetDto(VesselDto.class); +// ReferenceSetDto<OceanDto> oceanRefs = formDto.getReferenceSetDto(OceanDto.class); +// ReferenceSetDto<HarbourDto> harbourRefs = formDto.getReferenceSetDto(HarbourDto.class); +// +// tripSeineDto.setCaptain((ReferentialReferenceDto<PersonDto>) personRefs.getReference(0)); +// tripSeineDto.setObserver((ReferentialReferenceDto<PersonDto>) personRefs.getReference(1)); +// tripSeineDto.setDataEntryOperator((ReferentialReferenceDto<PersonDto>) personRefs.getReference(2)); +// +// tripSeineDto.setVessel((ReferentialReferenceDto<VesselDto>) vesselRefs.getReference(0)); +// +// tripSeineDto.setOcean((ReferentialReferenceDto<OceanDto>) oceanRefs.getReference(0)); +// +// tripSeineDto.setDepartureHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(0)); +// tripSeineDto.setLandingHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(1)); +// +// tripSeineDto.setErsId("ersid"); +// +// tripSeineDto.setStartDate(DateUtil.createDate(24, 8, 2015)); +// tripSeineDto.setEndDate(DateUtil.createDate(24, 9, 2015)); +// +// tripSeineDto.setFormsUrl("http://une.url.com/formulaire"); +// tripSeineDto.setReportsUrl("http://une.url.com/rapport"); +// +// tripSeineDto.setComment("Un commentaire"); +// +// String tripSeineId = service.save(formDto); +// +// TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, tripSeineId); +// +// assertReferenceDtoEqualsEntity(tripSeineDto.getCaptain(), tripSeine.getCaptain()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getObserver(), tripSeine.getObserver()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getDataEntryOperator(), tripSeine.getDataEntryOperator()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getVessel(), tripSeine.getVessel()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getOcean(), tripSeine.getOcean()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getDepartureHarbour(), tripSeine.getDepartureHarbour()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getLandingHarbour(), tripSeine.getLandingHarbour()); +// Assert.assertEquals(tripSeineDto.getErsId(), tripSeine.getErsId()); +// Assert.assertEquals(tripSeineDto.getStartDate(), tripSeine.getStartDate()); +// Assert.assertEquals(tripSeineDto.getEndDate(), tripSeine.getEndDate()); +// Assert.assertEquals(tripSeineDto.getFormsUrl(), tripSeine.getFormsUrl()); +// Assert.assertEquals(tripSeineDto.getReportsUrl(), tripSeine.getReportsUrl()); +// Assert.assertEquals(tripSeineDto.getComment(), tripSeine.getComment()); +// +// } +// +// +// @Ignore +// @Test +// public void saveUpdateTest() { +// +// FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); +// +// TripSeineDto tripSeineDto = formDto.getForm(); +// +// ReferenceSetDto<PersonDto> personRefs = formDto.getReferenceSetDto(PersonDto.class); +// ReferenceSetDto<OceanDto> oceanRefs = formDto.getReferenceSetDto(OceanDto.class); +// ReferenceSetDto<HarbourDto> harbourRefs = formDto.getReferenceSetDto(HarbourDto.class); +// +// tripSeineDto.setCaptain((ReferentialReferenceDto<PersonDto>) personRefs.getReference(0)); +// tripSeineDto.setDataEntryOperator((ReferentialReferenceDto<PersonDto>) personRefs.getReference(2)); +// +// tripSeineDto.setOcean((ReferentialReferenceDto<OceanDto>) oceanRefs.getReference(0)); +// +// tripSeineDto.setDepartureHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(0)); +// tripSeineDto.setLandingHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(1)); +// +// tripSeineDto.setErsId("ersid"); +// +// tripSeineDto.setStartDate(DateUtil.createDate(24, 8, 2015)); +// tripSeineDto.setEndDate(DateUtil.createDate(24, 9, 2015)); +// +// tripSeineDto.setFormsUrl("http://une.url.com/formulaire"); +// tripSeineDto.setReportsUrl("http://une.url.com/rapport"); +// +// tripSeineDto.setComment("Un commentaire"); +// +// service.save(formDto); +// +// TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_1); +// +// assertReferenceDtoEqualsEntity(tripSeineDto.getCaptain(), tripSeine.getCaptain()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getObserver(), tripSeine.getObserver()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getDataEntryOperator(), tripSeine.getDataEntryOperator()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getVessel(), tripSeine.getVessel()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getOcean(), tripSeine.getOcean()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getDepartureHarbour(), tripSeine.getDepartureHarbour()); +// assertReferenceDtoEqualsEntity(tripSeineDto.getLandingHarbour(), tripSeine.getLandingHarbour()); +// Assert.assertEquals(tripSeineDto.getErsId(), tripSeine.getErsId()); +// Assert.assertEquals(tripSeineDto.getStartDate(), tripSeine.getStartDate()); +// Assert.assertEquals(tripSeineDto.getEndDate(), tripSeine.getEndDate()); +// Assert.assertEquals(tripSeineDto.getFormsUrl(), tripSeine.getFormsUrl()); +// Assert.assertEquals(tripSeineDto.getReportsUrl(), tripSeine.getReportsUrl()); +// Assert.assertEquals(tripSeineDto.getComment(), tripSeine.getComment()); +// +// } + + +} -- 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