This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit ee7543240510bc2ed51d064527f565b6fee4d7cb Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 17 13:39:16 2016 +0200 ajout méthode utile et utilisation --- .../ird/observe/services/binder/BinderEngine.java | 5 ++ .../services/service/DataSourceServiceTopia.java | 3 +- .../UnidirectionalSynchronizeReferentialTest.java | 89 ++++++++++++---------- 3 files changed, 56 insertions(+), 41 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/binder/BinderEngine.java b/observe-services-topia/src/main/java/fr/ird/observe/services/binder/BinderEngine.java index 3542685..4a4117c 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/binder/BinderEngine.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/binder/BinderEngine.java @@ -24,6 +24,7 @@ package fr.ird.observe.services.binder; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.ObserveDataEntity; import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; import fr.ird.observe.services.binder.data.DataBinderSupport; @@ -113,6 +114,10 @@ public class BinderEngine implements ReferenceBinderEngine { } + public <D extends ReferentialDto> Class<D> getReferentialDtoType(ObserveEntityEnum entityEnum) { + Class<D> dtoType = BinderEngine.get().getReferentialDtoType((Class) entityEnum.getContract()); + return dtoType ; + } public <D extends ReferentialDto, E extends ObserveReferentialEntity> Class<D> getReferentialDtoType(Class<E> entityType) { Class<D> result = (Class<D>) referentialEntityToDtoTypes.get(entityType); if (result == null) { diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java index 1e2382a..fce5c37 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java @@ -683,8 +683,7 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS String type = propertyType.getType(); ObserveEntityEnum observeEntityEnum = ObserveEntityEnum.valueOf(type); - Class entityType = observeEntityEnum.getContract(); - Class<? extends ReferentialDto> dtoType = BinderEngine.get().getReferentialDtoType(entityType); + Class<? extends ReferentialDto> dtoType = BinderEngine.get().getReferentialDtoType(observeEntityEnum); typesInShellBuilder.add(dtoType); if (log.isInfoEnabled()) { log.info("For container type:" + parentObserveEntityEnum + ", add to shell: " + observeEntityEnum); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalSynchronizeReferentialTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalSynchronizeReferentialTest.java index 5d1cbe2..d1408e4 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalSynchronizeReferentialTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/synchro/UnidirectionalSynchronizeReferentialTest.java @@ -26,12 +26,19 @@ import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.Entities; import fr.ird.observe.services.ApplicationContextResource; import fr.ird.observe.services.DataSourceResource; +import fr.ird.observe.services.binder.BinderEngine; +import fr.ird.observe.services.dto.referential.PersonDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.referential.VesselDto; +import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; import fr.ird.observe.services.service.AbstractServiceTopiaTest; +import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffService; +import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffsEngine; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeCallbackResults; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeContext; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeEngine; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeLocalService; -import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeRemoteService; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeResult; import fr.ird.observe.test.DatabaseName; import fr.ird.observe.test.ObserveFixtures; @@ -63,12 +70,14 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop public final DataSourceResource dataSourceResourceCentral = new DataSourceResource(applicationContextResourceCentral); private UnidirectionalReferentialSynchronizeLocalService localService; - private UnidirectionalReferentialSynchronizeRemoteService remoteService; + private ReferentialSynchronizeDiffsEngine diffsEngine; @Before public void setUp() throws Exception { localService = dataSourceResource.newService(UnidirectionalReferentialSynchronizeLocalService.class); - remoteService = dataSourceResourceCentral.newService(UnidirectionalReferentialSynchronizeRemoteService.class); + diffsEngine = new ReferentialSynchronizeDiffsEngine( + dataSourceResource.newService(ReferentialSynchronizeDiffService.class), + dataSourceResourceCentral.newService(ReferentialSynchronizeDiffService.class)); } @DatabaseNameConfiguration(DatabaseName.empty_h2) @@ -78,13 +87,13 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop @Test public void testSynchronizeFromEmptyDatabase() { - UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(localService, remoteService); + UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(diffsEngine, localService); UnidirectionalReferentialSynchronizeContext unidirectionalReferentialSynchronizeContext = referentialSynchronizeEngine.prepareContext(); UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.prepareResult(unidirectionalReferentialSynchronizeContext, null); referentialSynchronizeEngine.finish(unidirectionalReferentialSynchronizeContext); Assert.assertNotNull(result); - Set<String> referentialNames = result.getReferentialNames(); + Set<Class<? extends ReferentialDto>> referentialNames = result.getReferentialNames(); Assert.assertNotNull(referentialNames); Assert.assertFalse(referentialNames.isEmpty()); @@ -93,11 +102,12 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop if (ObserveEntityEnum.LastUpdateDate.equals(referenceEntity)) { continue; } - Assert.assertTrue(referentialNames.contains(referenceEntity.name())); - Assert.assertTrue(result.getReferentialUpdated(referenceEntity.name()).isEmpty()); - Assert.assertTrue(result.getReferentialRemoved(referenceEntity.name()).isEmpty()); - Assert.assertTrue(result.getReferentialReplaced(referenceEntity.name()).isEmpty()); - Assert.assertFalse(result.getReferentialAdded(referenceEntity.name()).isEmpty()); + Class<? extends ReferentialDto> dtoType = BinderEngine.get().getReferentialDtoType(referenceEntity); + Assert.assertTrue(referentialNames.contains(dtoType)); + Assert.assertTrue(result.getReferentialUpdated(dtoType).isEmpty()); + Assert.assertTrue(result.getReferentialRemoved(dtoType).isEmpty()); + Assert.assertTrue(result.getReferentialReplaced(dtoType).isEmpty()); + Assert.assertFalse(result.getReferentialAdded(dtoType).isEmpty()); } } @@ -109,13 +119,13 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop @Test public void testSynchronizeWithNochange() { - UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(localService, remoteService); + UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(diffsEngine, localService); UnidirectionalReferentialSynchronizeContext unidirectionalReferentialSynchronizeContext = referentialSynchronizeEngine.prepareContext(); UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.prepareResult(unidirectionalReferentialSynchronizeContext, null); referentialSynchronizeEngine.finish(unidirectionalReferentialSynchronizeContext); Assert.assertNotNull(result); - Set<String> referentialNames = result.getReferentialNames(); + Set<Class<? extends ReferentialDto>> referentialNames = result.getReferentialNames(); Assert.assertNotNull(referentialNames); Assert.assertTrue(referentialNames.isEmpty()); @@ -123,10 +133,11 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop if (ObserveEntityEnum.LastUpdateDate.equals(referenceEntity)) { continue; } - Assert.assertTrue(result.getReferentialUpdated(referenceEntity.name()).isEmpty()); - Assert.assertTrue(result.getReferentialRemoved(referenceEntity.name()).isEmpty()); - Assert.assertTrue(result.getReferentialReplaced(referenceEntity.name()).isEmpty()); - Assert.assertTrue(result.getReferentialAdded(referenceEntity.name()).isEmpty()); + Class<? extends ReferentialDto> dtoType = BinderEngine.get().getReferentialDtoType(referenceEntity); + Assert.assertTrue(result.getReferentialUpdated(dtoType).isEmpty()); + Assert.assertTrue(result.getReferentialRemoved(dtoType).isEmpty()); + Assert.assertTrue(result.getReferentialReplaced(dtoType).isEmpty()); + Assert.assertTrue(result.getReferentialAdded(dtoType).isEmpty()); } } @@ -139,65 +150,65 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop public void testSynchronizeWithAllChanges() { - UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(localService, remoteService); + UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(diffsEngine, localService); UnidirectionalReferentialSynchronizeContext unidirectionalReferentialSynchronizeContext = referentialSynchronizeEngine.prepareContext(); UnidirectionalReferentialSynchronizeCallbackResults results = new UnidirectionalReferentialSynchronizeCallbackResults(); - results.addCallbackResult(ObserveEntityEnum.Person.name(), "fr.ird.observe.entities.referentiel.Person#1355399844272#0.32586441962131485", "fr.ird.observe.entities.referentiel.Person#1429515754659#0.322074382333085"); + results.addCallbackResult(PersonDto.class, "fr.ird.observe.entities.referentiel.Person#1355399844272#0.32586441962131485", "fr.ird.observe.entities.referentiel.Person#1429515754659#0.322074382333085"); UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.prepareResult(unidirectionalReferentialSynchronizeContext, results); referentialSynchronizeEngine.finish(unidirectionalReferentialSynchronizeContext); Assert.assertNotNull(result); - Set<String> referentialNames = result.getReferentialNames(); + Set<Class<? extends ReferentialDto>> referentialNames = result.getReferentialNames(); Assert.assertNotNull(referentialNames); Assert.assertFalse(referentialNames.isEmpty()); { - Assert.assertTrue(referentialNames.contains(ObserveEntityEnum.VesselActivitySeine.name())); - Assert.assertTrue(result.getReferentialAdded(ObserveEntityEnum.VesselActivitySeine.name()).isEmpty()); - Collection<String> referentialUpdated = result.getReferentialUpdated(ObserveEntityEnum.VesselActivitySeine.name()); + Assert.assertTrue(referentialNames.contains(VesselActivitySeineDto.class)); + Assert.assertTrue(result.getReferentialAdded(VesselActivitySeineDto.class).isEmpty()); + Collection<String> referentialUpdated = result.getReferentialUpdated(VesselActivitySeineDto.class); Assert.assertFalse(referentialUpdated.isEmpty()); Assert.assertEquals(1, referentialUpdated.size()); Assert.assertTrue(referentialUpdated.contains("fr.ird.observe.entities.referentiel.seine.VesselActivitySeine#1239832675369#0.12552908048322586")); - Assert.assertTrue(result.getReferentialRemoved(ObserveEntityEnum.VesselActivitySeine.name()).isEmpty()); - Assert.assertTrue(result.getReferentialReplaced(ObserveEntityEnum.VesselActivitySeine.name()).isEmpty()); + Assert.assertTrue(result.getReferentialRemoved(VesselActivitySeineDto.class).isEmpty()); + Assert.assertTrue(result.getReferentialReplaced(VesselActivitySeineDto.class).isEmpty()); } { - Assert.assertTrue(referentialNames.contains(ObserveEntityEnum.Species.name())); + Assert.assertTrue(referentialNames.contains(SpeciesDto.class)); - Assert.assertTrue(result.getReferentialAdded(ObserveEntityEnum.Species.name()).isEmpty()); - Collection<String> referentialUpdated = result.getReferentialUpdated(ObserveEntityEnum.Species.name()); + Assert.assertTrue(result.getReferentialAdded(SpeciesDto.class).isEmpty()); + Collection<String> referentialUpdated = result.getReferentialUpdated(SpeciesDto.class); Assert.assertFalse(referentialUpdated.isEmpty()); Assert.assertEquals(1, referentialUpdated.size()); Assert.assertTrue(referentialUpdated.contains("fr.ird.observe.entities.referentiel.Species#1239832685474#0.8943253454598569")); - Assert.assertTrue(result.getReferentialRemoved(ObserveEntityEnum.Species.name()).isEmpty()); - Assert.assertTrue(result.getReferentialReplaced(ObserveEntityEnum.Species.name()).isEmpty()); + Assert.assertTrue(result.getReferentialRemoved(SpeciesDto.class).isEmpty()); + Assert.assertTrue(result.getReferentialReplaced(SpeciesDto.class).isEmpty()); } { - Assert.assertTrue(referentialNames.contains(ObserveEntityEnum.Person.name())); - Assert.assertTrue(result.getReferentialAdded(ObserveEntityEnum.Person.name()).isEmpty()); - Assert.assertTrue(result.getReferentialUpdated(ObserveEntityEnum.Person.name()).isEmpty()); - Collection<String> referentialRemoved = result.getReferentialRemoved(ObserveEntityEnum.Person.name()); + Assert.assertTrue(referentialNames.contains(PersonDto.class)); + Assert.assertTrue(result.getReferentialAdded(PersonDto.class).isEmpty()); + Assert.assertTrue(result.getReferentialUpdated(PersonDto.class).isEmpty()); + Collection<String> referentialRemoved = result.getReferentialRemoved(PersonDto.class); Assert.assertFalse(referentialRemoved.isEmpty()); Assert.assertEquals(1, referentialRemoved.size()); Assert.assertTrue(referentialRemoved.contains("fr.ird.observe.entities.referentiel.Person#1355399844272#0.32586441962131485")); - Collection<Pair<String, String>> referentialReplaced = result.getReferentialReplaced(ObserveEntityEnum.Person.name()); + Collection<Pair<String, String>> referentialReplaced = result.getReferentialReplaced(PersonDto.class); Assert.assertFalse(referentialReplaced.isEmpty()); Assert.assertEquals(1, referentialReplaced.size()); Assert.assertTrue(referentialReplaced.contains(Pair.of("fr.ird.observe.entities.referentiel.Person#1355399844272#0.32586441962131485", "fr.ird.observe.entities.referentiel.Person#1429515754659#0.322074382333085"))); } { - Assert.assertTrue(referentialNames.contains(ObserveEntityEnum.Vessel.name())); - Assert.assertTrue(result.getReferentialAdded(ObserveEntityEnum.Vessel.name()).isEmpty()); - Collection<String> referentialUpdated = result.getReferentialUpdated(ObserveEntityEnum.Vessel.name()); + Assert.assertTrue(referentialNames.contains(VesselDto.class)); + Assert.assertTrue(result.getReferentialAdded(VesselDto.class).isEmpty()); + Collection<String> referentialUpdated = result.getReferentialUpdated(VesselDto.class); Assert.assertFalse(referentialUpdated.isEmpty()); Assert.assertEquals(1, referentialUpdated.size()); Assert.assertTrue(referentialUpdated.contains("fr.ird.observe.entities.referentiel.Vessel#1306847717532#0.7435948873477364")); - Assert.assertTrue(result.getReferentialRemoved(ObserveEntityEnum.Vessel.name()).isEmpty()); - Assert.assertTrue(result.getReferentialReplaced(ObserveEntityEnum.Vessel.name()).isEmpty()); + Assert.assertTrue(result.getReferentialRemoved(VesselDto.class).isEmpty()); + Assert.assertTrue(result.getReferentialReplaced(VesselDto.class).isEmpty()); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.