This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 07f81e08f92b57457f539866370d255c1380c656 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Jul 5 16:15:24 2016 +0200 Test de syncrhonisation mise en place + correction nom de base de test --- .../UnidirectionalSynchronizeReferentialTest.java | 129 +++++++++++++++++++-- .../java/fr/ird/observe/test/DatabaseName.java | 2 +- .../resources/db/4.903/dataForTestSeine.sql.gz | Bin 440721 -> 441224 bytes ...taForTestUnidirectionalReferentialSyncho.sql.gz | Bin 441281 -> 0 bytes ...aForTestUnidirectionalReferentialSynchro.sql.gz | Bin 0 -> 441247 bytes 5 files changed, 118 insertions(+), 13 deletions(-) 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 d81e72c..6a00f78 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 @@ -1,6 +1,8 @@ package fr.ird.observe.services.service.actions.synchro; import com.google.common.collect.ImmutableMap; +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.dto.referential.ReferentialDto; @@ -11,12 +13,16 @@ import fr.ird.observe.test.spi.CopyDatabaseConfiguration; import fr.ird.observe.test.spi.DatabaseClassifier; import fr.ird.observe.test.spi.DatabaseNameConfiguration; import fr.ird.observe.test.spi.DatabaseVersionConfiguration; +import org.apache.commons.lang3.tuple.Pair; +import org.junit.Assert; import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; +import java.util.Collection; import java.util.Map; +import java.util.Set; /** * Created on 04/07/16. @@ -31,13 +37,13 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop @Rule public final DataSourceResource dataSourceResourceCentral = new DataSourceResource(applicationContextResourceCentral); - private UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine; + private UnidirectionalReferentialSynchronizeLocalService localService; + private UnidirectionalReferentialSynchronizeRemoteService remoteService; @Before public void setUp() throws Exception { - UnidirectionalReferentialSynchronizeLocalService localService = dataSourceResource.newService(UnidirectionalReferentialSynchronizeLocalService.class); - UnidirectionalReferentialSynchronizeRemoteService remoteService = dataSourceResourceCentral.newService(UnidirectionalReferentialSynchronizeRemoteService.class); - referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(localService, remoteService); + localService = dataSourceResource.newService(UnidirectionalReferentialSynchronizeLocalService.class); + remoteService = dataSourceResourceCentral.newService(UnidirectionalReferentialSynchronizeRemoteService.class); } @DatabaseNameConfiguration(DatabaseName.empty_h2) @@ -47,7 +53,7 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop @Test public void testSynchronizeFromEmptyDatabase() { - referentialSynchronizeEngine.run(new UnidirectionalReferentialSynchronizeEngine.Callback() { + UnidirectionalReferentialSynchronizeEngine.Callback callback = new UnidirectionalReferentialSynchronizeEngine.Callback() { @Override public Map<String, String> askUserToReplaceRemovedReferentials(UnidirectionalReferentialSynchronizeEngine.CallbackRequest request) { @@ -59,7 +65,27 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop throw new IllegalStateException(); } - }); + }; + UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(localService, remoteService, callback); + UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.call(); + + Assert.assertNotNull(result); + Set<String> referentialNames = result.getReferentialNames(); + + Assert.assertNotNull(referentialNames); + Assert.assertFalse(referentialNames.isEmpty()); + + for (ObserveEntityEnum referenceEntity : Entities.REFERENCE_ENTITIES) { + 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()); + } + } @DatabaseNameConfiguration(DatabaseName.dataForTestSeine) @@ -69,7 +95,7 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop @Test public void testSynchronizeWithNochange() { - referentialSynchronizeEngine.run(new UnidirectionalReferentialSynchronizeEngine.Callback() { + UnidirectionalReferentialSynchronizeEngine.Callback callback = new UnidirectionalReferentialSynchronizeEngine.Callback() { @Override public Map<String, String> askUserToReplaceRemovedReferentials(UnidirectionalReferentialSynchronizeEngine.CallbackRequest request) { @@ -81,17 +107,35 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop throw new IllegalStateException(); } - }); + }; + UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(localService, remoteService, callback); + UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.call(); + + Assert.assertNotNull(result); + Set<String> referentialNames = result.getReferentialNames(); + Assert.assertNotNull(referentialNames); + Assert.assertTrue(referentialNames.isEmpty()); + + for (ObserveEntityEnum referenceEntity : Entities.REFERENCE_ENTITIES) { + 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()); + } + } @DatabaseNameConfiguration(DatabaseName.dataForTestSeine) @CopyDatabaseConfiguration - @DatabaseNameConfiguration(value = DatabaseName.dataForTestUnidirectionalReferentialSyncho, classifier = DatabaseClassifier.CENTRAL) + @DatabaseNameConfiguration(value = DatabaseName.dataForTestUnidirectionalReferentialSynchro, classifier = DatabaseClassifier.CENTRAL) @DatabaseVersionConfiguration(value = ObserveFixtures.DEFAULT_VERSION, classifier = DatabaseClassifier.CENTRAL) @Test public void testSynchronizeWithAllChanges() { - referentialSynchronizeEngine.run(new UnidirectionalReferentialSynchronizeEngine.Callback() { + UnidirectionalReferentialSynchronizeEngine.Callback callback = new UnidirectionalReferentialSynchronizeEngine.Callback() { @Override public <R extends ReferentialDto> Map<String, String> askUserToReplaceRemovedReferentials(UnidirectionalReferentialSynchronizeEngine.CallbackRequest<R> request) { @@ -108,11 +152,72 @@ public class UnidirectionalSynchronizeReferentialTest extends AbstractServiceTop String referentialName = request.getReferentialName(); switch (referentialName) { case "Vessel": - return ImmutableMap.<String, String>builder().put("fr.ird.observe.entities.referentiel.Vessel#1429515781110#0.833177504362538", "fr.ird.observe.entities.referentiel.Vessel#1429515780436#0.000696399947628379").build(); + return ImmutableMap.<String, String>builder().put("fr.ird.observe.entities.referentiel.Vessel#1306847717532#0.7435948873477364", "fr.ird.observe.entities.referentiel.Vessel#1429515781110#0.833177504362538").build(); } throw new IllegalStateException(); } - }); + }; + + UnidirectionalReferentialSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalReferentialSynchronizeEngine(localService, remoteService, callback); + UnidirectionalReferentialSynchronizeResult result = referentialSynchronizeEngine.call(); + + Assert.assertNotNull(result); + Set<String> 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.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(referentialNames.contains(ObserveEntityEnum.Species.name())); + + Assert.assertTrue(result.getReferentialAdded(ObserveEntityEnum.Species.name()).isEmpty()); + Collection<String> referentialUpdated = result.getReferentialUpdated(ObserveEntityEnum.Species.name()); + 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(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.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()); + 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.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()); + Collection<Pair<String, String>> referentialReplaced = result.getReferentialReplaced(ObserveEntityEnum.Vessel.name()); + Assert.assertFalse(referentialReplaced.isEmpty()); + Assert.assertEquals(1, referentialReplaced.size()); + Assert.assertTrue(referentialReplaced.contains(Pair.of("fr.ird.observe.entities.referentiel.Vessel#1306847717532#0.7435948873477364", "fr.ird.observe.entities.referentiel.Vessel#1429515781110#0.833177504362538"))); + } + } } diff --git a/observe-test-data/src/main/java/fr/ird/observe/test/DatabaseName.java b/observe-test-data/src/main/java/fr/ird/observe/test/DatabaseName.java index 568d3a5..b31bef4 100644 --- a/observe-test-data/src/main/java/fr/ird/observe/test/DatabaseName.java +++ b/observe-test-data/src/main/java/fr/ird/observe/test/DatabaseName.java @@ -12,5 +12,5 @@ public enum DatabaseName { dataForTestLongline, dataSourceTest, dataForTestSeine, - dataForTestUnidirectionalReferentialSyncho + dataForTestUnidirectionalReferentialSynchro } diff --git a/observe-test-data/src/main/resources/db/4.903/dataForTestSeine.sql.gz b/observe-test-data/src/main/resources/db/4.903/dataForTestSeine.sql.gz index c4a0979..d6749b7 100644 Binary files a/observe-test-data/src/main/resources/db/4.903/dataForTestSeine.sql.gz and b/observe-test-data/src/main/resources/db/4.903/dataForTestSeine.sql.gz differ diff --git a/observe-test-data/src/main/resources/db/4.903/dataForTestUnidirectionalReferentialSyncho.sql.gz b/observe-test-data/src/main/resources/db/4.903/dataForTestUnidirectionalReferentialSyncho.sql.gz deleted file mode 100644 index 1ab852d..0000000 Binary files a/observe-test-data/src/main/resources/db/4.903/dataForTestUnidirectionalReferentialSyncho.sql.gz and /dev/null differ diff --git a/observe-test-data/src/main/resources/db/4.903/dataForTestUnidirectionalReferentialSynchro.sql.gz b/observe-test-data/src/main/resources/db/4.903/dataForTestUnidirectionalReferentialSynchro.sql.gz new file mode 100644 index 0000000..3989582 Binary files /dev/null and b/observe-test-data/src/main/resources/db/4.903/dataForTestUnidirectionalReferentialSynchro.sql.gz differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.