Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
61a39193
by Tony Chemit at 2024-01-24T09:56:29+01:00
7 changed files:
- core/persistence/test/src/main/java/fr/ird/observe/persistence/test/ObservePersistenceFixtures.java
- core/persistence/test/src/test/java/fr/ird/observe/persistence/test/request/DeleteDataRequestTest.java
- core/persistence/test/src/test/java/fr/ird/observe/persistence/test/request/DeletePartialRequestTest.java
- core/persistence/test/src/test/java/fr/ird/observe/persistence/test/request/DeleteReferentialRequestTest.java
- core/persistence/test/src/test/java/fr/ird/observe/persistence/test/request/ReferentialExtraScriptsTest.java
- core/persistence/test/src/test/java/fr/ird/observe/persistence/test/request/ReplicatePartialRequestTest.java
- core/persistence/test/src/test/java/fr/ird/observe/persistence/test/request/ReplicateRequestTest.java
Changes:
| ... | ... | @@ -43,12 +43,16 @@ import java.util.Map; |
| 43 | 43 | public class ObservePersistenceFixtures extends ObserveFixtures {
|
| 44 | 44 | |
| 45 | 45 | public static Map<String, Long> getTablesCount(ObserveTopiaApplicationContext applicationContext, List<String> schemaAndTableNames) {
|
| 46 | - Map<String, Long> countBuilder = new LinkedHashMap<>();
|
|
| 47 | 46 | try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
| 48 | - for (String table : schemaAndTableNames) {
|
|
| 49 | - Long actualCount = persistenceContext.countTable(table);
|
|
| 50 | - countBuilder.put(table, actualCount);
|
|
| 51 | - }
|
|
| 47 | + return getTablesCount(persistenceContext, schemaAndTableNames);
|
|
| 48 | + }
|
|
| 49 | + }
|
|
| 50 | + |
|
| 51 | + public static Map<String, Long> getTablesCount(ObserveTopiaPersistenceContext persistenceContext, List<String> schemaAndTableNames) {
|
|
| 52 | + Map<String, Long> countBuilder = new LinkedHashMap<>();
|
|
| 53 | + for (String table : schemaAndTableNames) {
|
|
| 54 | + Long actualCount = persistenceContext.countTable(table);
|
|
| 55 | + countBuilder.put(table, actualCount);
|
|
| 52 | 56 | }
|
| 53 | 57 | return countBuilder;
|
| 54 | 58 | }
|
| ... | ... | @@ -31,6 +31,7 @@ import fr.ird.observe.entities.ObserveTopiaPersistenceContext; |
| 31 | 31 | import fr.ird.observe.entities.data.DataEntity;
|
| 32 | 32 | import fr.ird.observe.entities.data.RootOpenableEntity;
|
| 33 | 33 | import fr.ird.observe.persistence.test.ObservePersistenceFixtures;
|
| 34 | +import fr.ird.observe.persistence.test.PersistenceTestSupportRead;
|
|
| 34 | 35 | import fr.ird.observe.persistence.test.PersistenceTestSupportWrite;
|
| 35 | 36 | import fr.ird.observe.spi.ObservePersistenceBusinessProject;
|
| 36 | 37 | import fr.ird.observe.spi.context.DtoEntityContext;
|
| ... | ... | @@ -38,7 +39,6 @@ import fr.ird.observe.spi.context.OpenableDtoEntityContext; |
| 38 | 39 | import fr.ird.observe.spi.module.BusinessModule;
|
| 39 | 40 | import fr.ird.observe.spi.module.ObserveBusinessProject;
|
| 40 | 41 | import fr.ird.observe.test.IgnoreTestClassRule;
|
| 41 | -import fr.ird.observe.test.spi.CopyDatabaseConfiguration;
|
|
| 42 | 42 | import io.ultreia.java4all.util.sql.SqlScript;
|
| 43 | 43 | import org.apache.logging.log4j.LogManager;
|
| 44 | 44 | import org.apache.logging.log4j.Logger;
|
| ... | ... | @@ -49,6 +49,7 @@ import org.junit.runner.RunWith; |
| 49 | 49 | import org.junit.runners.Parameterized;
|
| 50 | 50 | import org.nuiton.topia.service.sql.model.TopiaEntitySqlDescriptors;
|
| 51 | 51 | |
| 52 | +import java.sql.SQLException;
|
|
| 52 | 53 | import java.util.Comparator;
|
| 53 | 54 | import java.util.List;
|
| 54 | 55 | import java.util.Map;
|
| ... | ... | @@ -64,7 +65,7 @@ import static fr.ird.observe.persistence.test.ObservePersistenceFixtures.getTabl |
| 64 | 65 | * @since 9.0.0
|
| 65 | 66 | */
|
| 66 | 67 | @RunWith(Parameterized.class)
|
| 67 | -public class DeleteDataRequestTest extends PersistenceTestSupportWrite {
|
|
| 68 | +public class DeleteDataRequestTest extends PersistenceTestSupportRead {
|
|
| 68 | 69 | |
| 69 | 70 | @ClassRule
|
| 70 | 71 | public static final IgnoreTestClassRule IGNORE2 = new IgnoreTestClassRule("Persistence Request", "persistence.request.test.skip");
|
| ... | ... | @@ -78,16 +79,15 @@ public class DeleteDataRequestTest extends PersistenceTestSupportWrite { |
| 78 | 79 | @Parameterized.Parameters(name = "{0}")
|
| 79 | 80 | public static Iterable<Object[]> data() {
|
| 80 | 81 | return ObservePersistenceBusinessProject.get().getEntityToDtoClassMapping().keySet().stream()
|
| 81 | - .filter(Class::isInterface)
|
|
| 82 | - .filter(DataEntity.class::isAssignableFrom)
|
|
| 83 | - .sorted(Comparator.comparing(Object::toString))
|
|
| 84 | - .map(t -> new Object[]{t})
|
|
| 85 | - .collect(Collectors.toList());
|
|
| 82 | + .filter(Class::isInterface)
|
|
| 83 | + .filter(DataEntity.class::isAssignableFrom)
|
|
| 84 | + .sorted(Comparator.comparing(Object::toString))
|
|
| 85 | + .map(t -> new Object[]{t})
|
|
| 86 | + .collect(Collectors.toList());
|
|
| 86 | 87 | }
|
| 87 | 88 | |
| 88 | 89 | @Test
|
| 89 | - @CopyDatabaseConfiguration
|
|
| 90 | - public void test() {
|
|
| 90 | + public void test() throws SQLException {
|
|
| 91 | 91 | |
| 92 | 92 | String variableName = ObservePersistenceFixtures.getEntityVariableName(entityType);
|
| 93 | 93 | String id = ObservePersistenceFixtures.getVariable(variableName);
|
| ... | ... | @@ -106,34 +106,41 @@ public class DeleteDataRequestTest extends PersistenceTestSupportWrite { |
| 106 | 106 | }
|
| 107 | 107 | DeleteRequest request = new DeleteRequest(false, entityType.getName(), parentId, id);
|
| 108 | 108 | |
| 109 | - try (ObserveTopiaApplicationContext applicationContext = localTestMethodResource.getTopiaApplicationContext()) {
|
|
| 110 | - |
|
| 111 | - SqlScript script = applicationContext.getSqlService().consume(request);
|
|
| 112 | - boolean entryPoint = RootOpenableEntity.class.isAssignableFrom(entityType);
|
|
| 113 | - List<String> schemaAndTableNames = null;
|
|
| 114 | - Map<String, Long> expectedCount = null;
|
|
| 115 | - if (entryPoint) {
|
|
| 116 | - BusinessModule businessModule = ObserveBusinessProject.get().getBusinessModuleByDtoType(spi.toDtoType());
|
|
| 117 | - String classifier = "data-" + businessModule.getName();
|
|
| 118 | - expectedCount = ObservePersistenceFixtures.loadFixturesMapCount("persistence/table_count/" + classifier);
|
|
| 119 | - TopiaEntitySqlDescriptors descriptors = PersistenceTestSupportWrite.descriptorForReplication(classifier).reverse();
|
|
| 120 | - schemaAndTableNames = descriptors.getSchemaAndTableNames();
|
|
| 121 | - }
|
|
| 109 | + ObserveTopiaApplicationContext applicationContext = localTestMethodResource.getTopiaApplicationContext();
|
|
| 110 | + |
|
| 111 | + SqlScript script = applicationContext.getSqlService().consume(request);
|
|
| 112 | + boolean entryPoint = RootOpenableEntity.class.isAssignableFrom(entityType);
|
|
| 113 | + List<String> schemaAndTableNames = null;
|
|
| 114 | + Map<String, Long> expectedCount = null;
|
|
| 115 | + if (entryPoint) {
|
|
| 116 | + BusinessModule businessModule = ObserveBusinessProject.get().getBusinessModuleByDtoType(spi.toDtoType());
|
|
| 117 | + String classifier = "data-" + businessModule.getName();
|
|
| 118 | + expectedCount = ObservePersistenceFixtures.loadFixturesMapCount("persistence/table_count/" + classifier);
|
|
| 119 | + TopiaEntitySqlDescriptors descriptors = PersistenceTestSupportWrite.descriptorForReplication(classifier).reverse();
|
|
| 120 | + schemaAndTableNames = descriptors.getSchemaAndTableNames();
|
|
| 121 | + }
|
|
| 122 | 122 | |
| 123 | - ObservePersistenceFixtures.assertDataExist(applicationContext, spi, id);
|
|
| 124 | - Map<String, Long> beforeTablesCount = null;
|
|
| 125 | - if (entryPoint) {
|
|
| 126 | - beforeTablesCount = getTablesCount(applicationContext, schemaAndTableNames);
|
|
| 127 | - }
|
|
| 128 | - if (!ObservePersistenceFixtures.WITH_ASSERT) {
|
|
| 129 | - String content = script.content();
|
|
| 130 | - System.out.println(content);
|
|
| 131 | - }
|
|
| 132 | - applicationContext.executeSqlStatements(script);
|
|
| 133 | - ObservePersistenceFixtures.assertDataNotExist(applicationContext, spi, id);
|
|
| 134 | - if (entryPoint) {
|
|
| 135 | - Map<String, Long> afterTablesCount = getTablesCount(applicationContext, schemaAndTableNames);
|
|
| 136 | - assertDeleteEntryPoint(beforeTablesCount, afterTablesCount, expectedCount);
|
|
| 123 | + ObservePersistenceFixtures.assertDataExist(applicationContext, spi, id);
|
|
| 124 | + Map<String, Long> beforeTablesCount = null;
|
|
| 125 | + if (entryPoint) {
|
|
| 126 | + beforeTablesCount = getTablesCount(applicationContext, schemaAndTableNames);
|
|
| 127 | + }
|
|
| 128 | + if (!ObservePersistenceFixtures.WITH_ASSERT) {
|
|
| 129 | + String content = script.content();
|
|
| 130 | + System.out.println(content);
|
|
| 131 | + }
|
|
| 132 | + try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 133 | + |
|
| 134 | + persistenceContext.executeSqlScript(script);
|
|
| 135 | + persistenceContext.flush();
|
|
| 136 | + try {
|
|
| 137 | + ObservePersistenceFixtures.assertDataNotExist(persistenceContext, spi, id);
|
|
| 138 | + if (entryPoint) {
|
|
| 139 | + Map<String, Long> afterTablesCount = getTablesCount(persistenceContext, schemaAndTableNames);
|
|
| 140 | + assertDeleteEntryPoint(beforeTablesCount, afterTablesCount, expectedCount);
|
|
| 141 | + }
|
|
| 142 | + } finally {
|
|
| 143 | + persistenceContext.rollback();
|
|
| 137 | 144 | }
|
| 138 | 145 | }
|
| 139 | 146 | }
|
| ... | ... | @@ -23,17 +23,14 @@ package fr.ird.observe.persistence.test.request; |
| 23 | 23 | */
|
| 24 | 24 | |
| 25 | 25 | import fr.ird.observe.datasource.request.DeletePartialRequest;
|
| 26 | -import fr.ird.observe.datasource.request.ReplicatePartialRequest;
|
|
| 27 | 26 | import fr.ird.observe.dto.data.DataDto;
|
| 28 | 27 | import fr.ird.observe.entities.ObserveTopiaApplicationContext;
|
| 29 | 28 | import fr.ird.observe.entities.ObserveTopiaPersistenceContext;
|
| 30 | 29 | import fr.ird.observe.entities.data.ps.common.Trip;
|
| 31 | 30 | import fr.ird.observe.persistence.test.ObservePersistenceFixtures;
|
| 32 | -import fr.ird.observe.persistence.test.PersistenceTestSupportWrite;
|
|
| 31 | +import fr.ird.observe.persistence.test.PersistenceTestSupportRead;
|
|
| 33 | 32 | import fr.ird.observe.services.service.data.DeleteLayoutRequest;
|
| 34 | -import fr.ird.observe.services.service.data.MoveLayoutRequest;
|
|
| 35 | 33 | import fr.ird.observe.test.IgnoreTestClassRule;
|
| 36 | -import fr.ird.observe.test.spi.CopyDatabaseConfiguration;
|
|
| 37 | 34 | import io.ultreia.java4all.util.sql.SqlScript;
|
| 38 | 35 | import org.junit.Assert;
|
| 39 | 36 | import org.junit.ClassRule;
|
| ... | ... | @@ -51,7 +48,7 @@ import java.util.Set; |
| 51 | 48 | * @since 9.0.0
|
| 52 | 49 | */
|
| 53 | 50 | @RunWith(Parameterized.class)
|
| 54 | -public class DeletePartialRequestTest extends PersistenceTestSupportWrite {
|
|
| 51 | +public class DeletePartialRequestTest extends PersistenceTestSupportRead {
|
|
| 55 | 52 | |
| 56 | 53 | @ClassRule
|
| 57 | 54 | public static final IgnoreTestClassRule IGNORE2 = new IgnoreTestClassRule("Persistence Request", "persistence.request.test.skip");
|
| ... | ... | @@ -73,51 +70,43 @@ public class DeletePartialRequestTest extends PersistenceTestSupportWrite { |
| 73 | 70 | return ReplicatePartialRequestTest.PARTIAL_PS_FIXTURES;
|
| 74 | 71 | }
|
| 75 | 72 | |
| 76 | - static void assertDelete(ObserveTopiaApplicationContext applicationContext, DeletePartialRequest deleteRequest, Set<String> shell, Map<String, Long> beforeResults, Map<String, Long> afterDelete) {
|
|
| 77 | - SqlScript deleteScript = applicationContext.getSqlService().consume(deleteRequest);
|
|
| 73 | + static void assertDelete(ObserveTopiaPersistenceContext persistenceContext, SqlScript deleteScript, Set<String> shell, Map<String, Long> beforeResults, Map<String, Long> afterDelete) {
|
|
| 78 | 74 | if (!ObservePersistenceFixtures.WITH_ASSERT) {
|
| 79 | 75 | System.out.println(deleteScript.content());
|
| 80 | 76 | }
|
| 81 | - applicationContext.executeSqlStatements(deleteScript);
|
|
| 82 | - |
|
| 83 | - try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 84 | - for (String table : shell) {
|
|
| 85 | - long actualCount = persistenceContext.countTable(table);
|
|
| 86 | - long beforeCount = beforeResults.get(table);
|
|
| 87 | - long afterDeleteCount = afterDelete.get(table);
|
|
| 88 | - Assert.assertEquals(String.format("bad size for table: %s (excepted %d == %d)", table, actualCount, beforeCount), actualCount, afterDeleteCount);
|
|
| 89 | - }
|
|
| 77 | + for (String table : shell) {
|
|
| 78 | + long actualCount = persistenceContext.countTable(table);
|
|
| 79 | + long beforeCount = beforeResults.get(table);
|
|
| 80 | + long afterDeleteCount = afterDelete.get(table);
|
|
| 81 | + Assert.assertEquals(String.format("bad size for table: %s (excepted %d == %d)", table, actualCount, beforeCount), actualCount, afterDeleteCount);
|
|
| 90 | 82 | }
|
| 91 | 83 | }
|
| 92 | 84 | |
| 93 | 85 | @Test
|
| 94 | - @CopyDatabaseConfiguration
|
|
| 95 | 86 | public void test() {
|
| 96 | - Map<String, Long> expected = ObservePersistenceFixtures.loadFixturesMapCount("persistence/replicate_partial_count/" + classifier + "-" + flavor);
|
|
| 97 | - try (ObserveTopiaApplicationContext applicationContext = localTestMethodResource.getTopiaApplicationContext()) {
|
|
| 87 | + ObserveTopiaApplicationContext applicationContext = localTestMethodResource.getTopiaApplicationContext();
|
|
| 98 | 88 | |
| 99 | - DeletePartialRequest deleteRequest = Trip.SPI.toSqlRequest(false, new DeleteLayoutRequest(scopes, newId));
|
|
| 100 | - Set<String> shell = applicationContext.createShell(deleteRequest);
|
|
| 89 | + DeletePartialRequest deleteRequest = Trip.SPI.toSqlRequest(false, new DeleteLayoutRequest(scopes, newId));
|
|
| 90 | + Set<String> shell = applicationContext.createShell(deleteRequest);
|
|
| 101 | 91 | |
| 102 | - Map<String, Long> beforeResults = ReplicatePartialRequestTest.getBeforeResults(applicationContext, shell);
|
|
| 103 | 92 | |
| 104 | - SqlScript deleteScript = applicationContext.getSqlService().consume(deleteRequest);
|
|
| 105 | - applicationContext.executeSqlStatements(deleteScript);
|
|
| 93 | + SqlScript deleteScript = applicationContext.getSqlService().consume(deleteRequest);
|
|
| 106 | 94 | |
| 107 | - Map<String, Long> afterDelete = ReplicatePartialRequestTest.getBeforeResults(applicationContext, shell);
|
|
| 95 | + try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 108 | 96 | |
| 109 | - assertDelete(applicationContext, deleteRequest, shell, beforeResults, afterDelete);
|
|
| 97 | + try {
|
|
| 98 | + Map<String, Long> beforeResults = ReplicatePartialRequestTest.getBeforeResults(persistenceContext, shell);
|
|
| 110 | 99 | |
| 111 | - ReplicatePartialRequest replicateRequest = Trip.SPI.toSqlRequest(false, new MoveLayoutRequest(scopes, tripId, newId, false));
|
|
| 112 | - ReplicatePartialRequestTest.assertReplicate(applicationContext, replicateRequest, shell, expected, afterDelete, 1);
|
|
| 100 | + persistenceContext.executeSqlScript(deleteScript);
|
|
| 101 | + persistenceContext.flush();
|
|
| 113 | 102 | |
| 114 | - assertDelete(applicationContext, deleteRequest, shell, beforeResults, afterDelete);
|
|
| 103 | + Map<String, Long> afterDelete = ReplicatePartialRequestTest.getBeforeResults(persistenceContext, shell);
|
|
| 115 | 104 | |
| 116 | - ReplicatePartialRequestTest.assertReplicate(applicationContext, replicateRequest, shell, expected, afterDelete, 1);
|
|
| 117 | - ReplicatePartialRequestTest.assertReplicate(applicationContext, replicateRequest, shell, expected, afterDelete, 2);
|
|
| 105 | + assertDelete(persistenceContext, deleteScript, shell, beforeResults, afterDelete);
|
|
| 106 | + } finally {
|
|
| 107 | + persistenceContext.rollback();
|
|
| 108 | + }
|
|
| 118 | 109 | |
| 119 | - assertDelete(applicationContext, deleteRequest, shell, beforeResults, afterDelete);
|
|
| 120 | - assertDelete(applicationContext, deleteRequest, shell, beforeResults, afterDelete);
|
|
| 121 | 110 | }
|
| 122 | 111 | }
|
| 123 | 112 | } |
| ... | ... | @@ -25,14 +25,14 @@ package fr.ird.observe.persistence.test.request; |
| 25 | 25 | import fr.ird.observe.datasource.request.DeleteRequest;
|
| 26 | 26 | import fr.ird.observe.entities.Entity;
|
| 27 | 27 | import fr.ird.observe.entities.ObserveTopiaApplicationContext;
|
| 28 | +import fr.ird.observe.entities.ObserveTopiaPersistenceContext;
|
|
| 28 | 29 | import fr.ird.observe.entities.referential.ReferentialEntity;
|
| 29 | 30 | import fr.ird.observe.persistence.test.ObservePersistenceFixtures;
|
| 30 | -import fr.ird.observe.persistence.test.PersistenceTestSupportWrite;
|
|
| 31 | +import fr.ird.observe.persistence.test.PersistenceTestSupportRead;
|
|
| 31 | 32 | import fr.ird.observe.spi.ObservePersistenceBusinessProject;
|
| 32 | 33 | import fr.ird.observe.spi.context.DtoEntityContext;
|
| 33 | 34 | import fr.ird.observe.test.DatabaseName;
|
| 34 | 35 | import fr.ird.observe.test.IgnoreTestClassRule;
|
| 35 | -import fr.ird.observe.test.spi.CopyDatabaseConfiguration;
|
|
| 36 | 36 | import fr.ird.observe.test.spi.DatabaseNameConfiguration;
|
| 37 | 37 | import io.ultreia.java4all.util.sql.SqlScript;
|
| 38 | 38 | import org.apache.logging.log4j.LogManager;
|
| ... | ... | @@ -51,7 +51,7 @@ import java.util.stream.Collectors; |
| 51 | 51 | * @since 9.0.0
|
| 52 | 52 | */
|
| 53 | 53 | @DatabaseNameConfiguration(DatabaseName.referential)
|
| 54 | -public class DeleteReferentialRequestTest extends PersistenceTestSupportWrite {
|
|
| 54 | +public class DeleteReferentialRequestTest extends PersistenceTestSupportRead {
|
|
| 55 | 55 | |
| 56 | 56 | @ClassRule
|
| 57 | 57 | public static final IgnoreTestClassRule IGNORE2 = new IgnoreTestClassRule("Persistence Request", "persistence.request.test.skip");
|
| ... | ... | @@ -67,12 +67,10 @@ public class DeleteReferentialRequestTest extends PersistenceTestSupportWrite { |
| 67 | 67 | }
|
| 68 | 68 | |
| 69 | 69 | @Test
|
| 70 | - @CopyDatabaseConfiguration
|
|
| 71 | 70 | public void test() {
|
| 72 | 71 | for (Class<? extends Entity> entityType : data()) {
|
| 73 | 72 | test(entityType);
|
| 74 | 73 | }
|
| 75 | - |
|
| 76 | 74 | }
|
| 77 | 75 | |
| 78 | 76 | public void test(Class<? extends Entity> entityType) {
|
| ... | ... | @@ -95,8 +93,15 @@ public class DeleteReferentialRequestTest extends PersistenceTestSupportWrite { |
| 95 | 93 | String content = script.content();
|
| 96 | 94 | System.out.println(content);
|
| 97 | 95 | }
|
| 98 | - applicationContext.executeSqlStatements(script);
|
|
| 99 | - ObservePersistenceFixtures.assertDataNotExist(applicationContext, spi, id);
|
|
| 96 | + try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 97 | + try {
|
|
| 98 | + persistenceContext.executeSqlScript(script);
|
|
| 99 | + persistenceContext.flush();
|
|
| 100 | + ObservePersistenceFixtures.assertDataNotExist(persistenceContext, spi, id);
|
|
| 101 | + } finally {
|
|
| 102 | + persistenceContext.rollback();
|
|
| 103 | + }
|
|
| 104 | + }
|
|
| 100 | 105 | }
|
| 101 | 106 | |
| 102 | 107 | } |
| ... | ... | @@ -28,12 +28,11 @@ import fr.ird.observe.entities.ObserveTopiaApplicationContext; |
| 28 | 28 | import fr.ird.observe.entities.ObserveTopiaPersistenceContext;
|
| 29 | 29 | import fr.ird.observe.entities.referential.ReferentialEntity;
|
| 30 | 30 | import fr.ird.observe.persistence.test.ObservePersistenceFixtures;
|
| 31 | -import fr.ird.observe.persistence.test.PersistenceTestSupportWrite;
|
|
| 31 | +import fr.ird.observe.persistence.test.PersistenceTestSupportRead;
|
|
| 32 | 32 | import fr.ird.observe.spi.ObservePersistenceBusinessProject;
|
| 33 | 33 | import fr.ird.observe.spi.context.ReferentialDtoEntityContext;
|
| 34 | 34 | import fr.ird.observe.test.DatabaseName;
|
| 35 | 35 | import fr.ird.observe.test.IgnoreTestClassRule;
|
| 36 | -import fr.ird.observe.test.spi.CopyDatabaseConfiguration;
|
|
| 37 | 36 | import fr.ird.observe.test.spi.DatabaseNameConfiguration;
|
| 38 | 37 | import io.ultreia.java4all.util.sql.SqlScript;
|
| 39 | 38 | import org.apache.logging.log4j.LogManager;
|
| ... | ... | @@ -54,7 +53,7 @@ import java.util.stream.Collectors; |
| 54 | 53 | * @since 9.0.7
|
| 55 | 54 | */
|
| 56 | 55 | @DatabaseNameConfiguration(DatabaseName.referential)
|
| 57 | -public class ReferentialExtraScriptsTest extends PersistenceTestSupportWrite {
|
|
| 56 | +public class ReferentialExtraScriptsTest extends PersistenceTestSupportRead {
|
|
| 58 | 57 | |
| 59 | 58 | @ClassRule
|
| 60 | 59 | public static final IgnoreTestClassRule IGNORE2 = new IgnoreTestClassRule("Persistence Request", "persistence.request.test.skip");
|
| ... | ... | @@ -63,14 +62,14 @@ public class ReferentialExtraScriptsTest extends PersistenceTestSupportWrite { |
| 63 | 62 | |
| 64 | 63 | public static List<Class<? extends Entity>> data() {
|
| 65 | 64 | return ObservePersistenceBusinessProject.get().getEntityToDtoClassMapping().keySet().stream()
|
| 66 | - .filter(Class::isInterface)
|
|
| 67 | - .filter(ReferentialEntity.class::isAssignableFrom)
|
|
| 68 | - .sorted(Comparator.comparing(Object::toString))
|
|
| 69 | - .collect(Collectors.toList());
|
|
| 65 | + .filter(Class::isInterface)
|
|
| 66 | + .filter(ReferentialEntity.class::isAssignableFrom)
|
|
| 67 | + .sorted(Comparator.comparing(Object::toString))
|
|
| 68 | + .collect(Collectors.toList());
|
|
| 70 | 69 | }
|
| 71 | 70 | |
| 72 | 71 | @Test
|
| 73 | - @CopyDatabaseConfiguration
|
|
| 72 | +// @CopyDatabaseConfiguration
|
|
| 74 | 73 | public void test() {
|
| 75 | 74 | for (Class<? extends Entity> entityType : data()) {
|
| 76 | 75 | test(entityType);
|
| ... | ... | @@ -105,16 +104,36 @@ public class ReferentialExtraScriptsTest extends PersistenceTestSupportWrite { |
| 105 | 104 | |
| 106 | 105 | ObserveTopiaApplicationContext applicationContext = localTestMethodResource.getTopiaApplicationContext();
|
| 107 | 106 | |
| 108 | - SqlScript script = applicationContext.getSqlService().consume(request);
|
|
| 107 | + SqlScript deleteScript = applicationContext.getSqlService().consume(request);
|
|
| 109 | 108 | |
| 110 | - ObservePersistenceFixtures.assertDataExist(applicationContext, spi, id);
|
|
| 109 | + try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 111 | 110 | |
| 112 | - applicationContext.executeSqlStatements(script);
|
|
| 113 | - ObservePersistenceFixtures.assertDataNotExist(applicationContext, spi, id);
|
|
| 111 | + try {
|
|
| 112 | + ObservePersistenceFixtures.assertDataExist(persistenceContext, spi, id);
|
|
| 114 | 113 | |
| 115 | - applicationContext.executeSqlStatements(copyScript);
|
|
| 116 | - ObservePersistenceFixtures.assertDataExist(applicationContext, spi, id);
|
|
| 117 | - applicationContext.executeSqlStatements(updateScript);
|
|
| 118 | - ObservePersistenceFixtures.assertDataExist(applicationContext, spi, id);
|
|
| 114 | + persistenceContext.executeSqlScript(deleteScript);
|
|
| 115 | + persistenceContext.flush();
|
|
| 116 | + ObservePersistenceFixtures.assertDataNotExist(persistenceContext, spi, id);
|
|
| 117 | + |
|
| 118 | + persistenceContext.executeSqlScript(copyScript);
|
|
| 119 | + persistenceContext.flush();
|
|
| 120 | + ObservePersistenceFixtures.assertDataExist(persistenceContext, spi, id);
|
|
| 121 | + persistenceContext.executeSqlScript(updateScript);
|
|
| 122 | + persistenceContext.flush();
|
|
| 123 | + ObservePersistenceFixtures.assertDataExist(persistenceContext, spi, id);
|
|
| 124 | + } finally {
|
|
| 125 | + persistenceContext.rollback();
|
|
| 126 | + }
|
|
| 127 | + |
|
| 128 | + }
|
|
| 129 | +// ObservePersistenceFixtures.assertDataExist(applicationContext, spi, id);
|
|
| 130 | +//
|
|
| 131 | +// applicationContext.executeSqlStatements(deleteScript);
|
|
| 132 | +// ObservePersistenceFixtures.assertDataNotExist(applicationContext, spi, id);
|
|
| 133 | +//
|
|
| 134 | +// applicationContext.executeSqlStatements(copyScript);
|
|
| 135 | +// ObservePersistenceFixtures.assertDataExist(applicationContext, spi, id);
|
|
| 136 | +// applicationContext.executeSqlStatements(updateScript);
|
|
| 137 | +// ObservePersistenceFixtures.assertDataExist(applicationContext, spi, id);
|
|
| 119 | 138 | }
|
| 120 | 139 | } |
| ... | ... | @@ -24,11 +24,16 @@ package fr.ird.observe.persistence.test.request; |
| 24 | 24 | |
| 25 | 25 | import fr.ird.observe.datasource.request.ReplicatePartialRequest;
|
| 26 | 26 | import fr.ird.observe.dto.data.DataDto;
|
| 27 | +import fr.ird.observe.dto.data.ps.common.TripGearUseFeaturesDto;
|
|
| 28 | +import fr.ird.observe.dto.data.ps.common.TripLocalmarketDto;
|
|
| 29 | +import fr.ird.observe.dto.data.ps.common.TripLogbookDto;
|
|
| 30 | +import fr.ird.observe.dto.data.ps.landing.TripLandingDto;
|
|
| 31 | +import fr.ird.observe.dto.data.ps.observation.RouteDto;
|
|
| 27 | 32 | import fr.ird.observe.entities.ObserveTopiaApplicationContext;
|
| 28 | 33 | import fr.ird.observe.entities.ObserveTopiaPersistenceContext;
|
| 29 | 34 | import fr.ird.observe.entities.data.ps.common.Trip;
|
| 30 | 35 | import fr.ird.observe.persistence.test.ObservePersistenceFixtures;
|
| 31 | -import fr.ird.observe.persistence.test.PersistenceTestSupportWrite;
|
|
| 36 | +import fr.ird.observe.persistence.test.PersistenceTestSupportRead;
|
|
| 32 | 37 | import fr.ird.observe.services.service.data.MoveLayoutRequest;
|
| 33 | 38 | import fr.ird.observe.test.IgnoreTestClassRule;
|
| 34 | 39 | import fr.ird.observe.test.ObserveFixtures;
|
| ... | ... | @@ -52,7 +57,7 @@ import java.util.TreeMap; |
| 52 | 57 | * @since 9.0.0
|
| 53 | 58 | */
|
| 54 | 59 | @RunWith(Parameterized.class)
|
| 55 | -public class ReplicatePartialRequestTest extends PersistenceTestSupportWrite {
|
|
| 60 | +public class ReplicatePartialRequestTest extends PersistenceTestSupportRead {
|
|
| 56 | 61 | |
| 57 | 62 | @ClassRule
|
| 58 | 63 | public static final IgnoreTestClassRule IGNORE2 = new IgnoreTestClassRule("Persistence Request", "persistence.request.test.skip");
|
| ... | ... | @@ -61,14 +66,14 @@ public class ReplicatePartialRequestTest extends PersistenceTestSupportWrite { |
| 61 | 66 | private static final String PS_COMMON_TRIP_ID = ObservePersistenceFixtures.getPsCommonTripId();
|
| 62 | 67 | private static final String PS_COMMON_TRIP_MOVE = ObserveFixtures.getId("PS_COMMON_TRIP_MOVE");
|
| 63 | 68 | public static final Iterable<Object[]> PARTIAL_PS_FIXTURES = Arrays.asList(
|
| 64 | - new Object[]{CLASSIFIER_DATA_PS, "GearUseFeatures", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(fr.ird.observe.dto.data.ps.common.TripGearUseFeaturesDto.class)},
|
|
| 65 | - new Object[]{CLASSIFIER_DATA_PS, "Observations", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(fr.ird.observe.dto.data.ps.observation.RouteDto.class)},
|
|
| 66 | - new Object[]{CLASSIFIER_DATA_PS, "Logbook", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(fr.ird.observe.dto.data.ps.common.TripLogbookDto.class)},
|
|
| 67 | - new Object[]{CLASSIFIER_DATA_PS, "Localmarket", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(fr.ird.observe.dto.data.ps.common.TripLocalmarketDto.class)},
|
|
| 68 | - new Object[]{CLASSIFIER_DATA_PS, "Landing", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(fr.ird.observe.dto.data.ps.landing.TripLandingDto.class)},
|
|
| 69 | - new Object[]{CLASSIFIER_DATA_PS, "Observations-Logbook", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(fr.ird.observe.dto.data.ps.common.TripLogbookDto.class, fr.ird.observe.dto.data.ps.observation.RouteDto.class)},
|
|
| 70 | - new Object[]{CLASSIFIER_DATA_PS, "Observations-Logbook-Localmarket", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(fr.ird.observe.dto.data.ps.common.TripLocalmarketDto.class, fr.ird.observe.dto.data.ps.common.TripLogbookDto.class, fr.ird.observe.dto.data.ps.observation.RouteDto.class)},
|
|
| 71 | - new Object[]{CLASSIFIER_DATA_PS, "Landing-Logbook-Localmarket", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(fr.ird.observe.dto.data.ps.common.TripLocalmarketDto.class, fr.ird.observe.dto.data.ps.common.TripLogbookDto.class, fr.ird.observe.dto.data.ps.landing.TripLandingDto.class)}
|
|
| 69 | + new Object[]{CLASSIFIER_DATA_PS, "GearUseFeatures", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(TripGearUseFeaturesDto.class)},
|
|
| 70 | + new Object[]{CLASSIFIER_DATA_PS, "Observations", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(RouteDto.class)},
|
|
| 71 | + new Object[]{CLASSIFIER_DATA_PS, "Logbook", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(TripLogbookDto.class)},
|
|
| 72 | + new Object[]{CLASSIFIER_DATA_PS, "Localmarket", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(TripLocalmarketDto.class)},
|
|
| 73 | + new Object[]{CLASSIFIER_DATA_PS, "Landing", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(TripLandingDto.class)},
|
|
| 74 | + new Object[]{CLASSIFIER_DATA_PS, "Observations-Logbook", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(TripLogbookDto.class, RouteDto.class)},
|
|
| 75 | + new Object[]{CLASSIFIER_DATA_PS, "Observations-Logbook-Localmarket", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(TripLocalmarketDto.class, TripLogbookDto.class, RouteDto.class)},
|
|
| 76 | + new Object[]{CLASSIFIER_DATA_PS, "Landing-Logbook-Localmarket", PS_COMMON_TRIP_ID, PS_COMMON_TRIP_MOVE, Set.of(TripLocalmarketDto.class, TripLogbookDto.class, TripLandingDto.class)}
|
|
| 72 | 77 | );
|
| 73 | 78 | |
| 74 | 79 | @Parameterized.Parameter
|
| ... | ... | @@ -87,29 +92,24 @@ public class ReplicatePartialRequestTest extends PersistenceTestSupportWrite { |
| 87 | 92 | return PARTIAL_PS_FIXTURES;
|
| 88 | 93 | }
|
| 89 | 94 | |
| 90 | - static Map<String, Long> getBeforeResults(ObserveTopiaApplicationContext applicationContext, Set<String> shell) {
|
|
| 95 | + static Map<String, Long> getBeforeResults(ObserveTopiaPersistenceContext persistenceContext, Set<String> shell) {
|
|
| 91 | 96 | Map<String, Long> beforeResults = new TreeMap<>();
|
| 92 | - try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 93 | - for (String table : shell) {
|
|
| 94 | - Long actualCount = persistenceContext.countTable(table);
|
|
| 95 | - beforeResults.put(table, actualCount);
|
|
| 96 | - }
|
|
| 97 | + for (String table : shell) {
|
|
| 98 | + Long actualCount = persistenceContext.countTable(table);
|
|
| 99 | + beforeResults.put(table, actualCount);
|
|
| 97 | 100 | }
|
| 98 | 101 | return beforeResults;
|
| 99 | 102 | }
|
| 100 | 103 | |
| 101 | - static void assertReplicate(ObserveTopiaApplicationContext applicationContext, ReplicatePartialRequest replicateRequest, Set<String> shell, Map<String, Long> expected, Map<String, Long> before, int factor) {
|
|
| 104 | + static void assertReplicate(ObserveTopiaApplicationContext applicationContext, ObserveTopiaPersistenceContext persistenceContext, ReplicatePartialRequest replicateRequest, Set<String> shell, Map<String, Long> expected, Map<String, Long> before, int factor) {
|
|
| 102 | 105 | SqlScript replicateScript = applicationContext.getSqlService().consume(replicateRequest);
|
| 103 | - applicationContext.executeSqlStatements(replicateScript);
|
|
| 104 | - |
|
| 106 | + persistenceContext.executeSqlScript(replicateScript);
|
|
| 107 | + persistenceContext.flush();
|
|
| 105 | 108 | if (!ObservePersistenceFixtures.WITH_ASSERT) {
|
| 106 | - |
|
| 107 | 109 | Map<String, Long> actualResults = new TreeMap<>();
|
| 108 | - try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 109 | - for (String table : shell) {
|
|
| 110 | - long actualCount = factor * persistenceContext.countTable(table) - before.get(table);
|
|
| 111 | - actualResults.put(table, actualCount);
|
|
| 112 | - }
|
|
| 110 | + for (String table : shell) {
|
|
| 111 | + long actualCount = factor * persistenceContext.countTable(table) - before.get(table);
|
|
| 112 | + actualResults.put(table, actualCount);
|
|
| 113 | 113 | }
|
| 114 | 114 | System.out.println(replicateScript.content());
|
| 115 | 115 | StringBuilder asserts = new StringBuilder();
|
| ... | ... | @@ -117,13 +117,10 @@ public class ReplicatePartialRequestTest extends PersistenceTestSupportWrite { |
| 117 | 117 | System.out.println(asserts);
|
| 118 | 118 | return;
|
| 119 | 119 | }
|
| 120 | - |
|
| 121 | - try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 122 | - for (String table : shell) {
|
|
| 123 | - long actualCount = persistenceContext.countTable(table) - before.get(table);
|
|
| 124 | - long expectedCount = factor * expected.get(table);
|
|
| 125 | - Assert.assertEquals("bad size for table: " + table, expectedCount, actualCount);
|
|
| 126 | - }
|
|
| 120 | + for (String table : shell) {
|
|
| 121 | + long actualCount = persistenceContext.countTable(table) - before.get(table);
|
|
| 122 | + long expectedCount = factor * expected.get(table);
|
|
| 123 | + Assert.assertEquals("bad size for table: " + table, expectedCount, actualCount);
|
|
| 127 | 124 | }
|
| 128 | 125 | }
|
| 129 | 126 | |
| ... | ... | @@ -131,21 +128,25 @@ public class ReplicatePartialRequestTest extends PersistenceTestSupportWrite { |
| 131 | 128 | @CopyDatabaseConfiguration
|
| 132 | 129 | public void test() {
|
| 133 | 130 | Map<String, Long> expected = ObservePersistenceFixtures.loadFixturesMapCount("persistence/replicate_partial_count/" + classifier + "-" + flavor);
|
| 134 | - try (ObserveTopiaApplicationContext applicationContext = localTestMethodResource.getTopiaApplicationContext()) {
|
|
| 131 | + ObserveTopiaApplicationContext applicationContext = localTestMethodResource.getTopiaApplicationContext();
|
|
| 135 | 132 | |
| 136 | - ReplicatePartialRequest replicateRequest = Trip.SPI.toSqlRequest(false, new MoveLayoutRequest(scopes, tripId, newId, false));
|
|
| 137 | - Set<String> shell = applicationContext.createShell(replicateRequest);
|
|
| 138 | - Map<String, Long> beforeResults = getBeforeResults(applicationContext, shell);
|
|
| 133 | + ReplicatePartialRequest replicateRequest = Trip.SPI.toSqlRequest(false, new MoveLayoutRequest(scopes, tripId, newId, false));
|
|
| 134 | + Set<String> shell = applicationContext.createShell(replicateRequest);
|
|
| 139 | 135 | |
| 140 | - assertReplicate(applicationContext, replicateRequest, shell, expected, beforeResults, 1);
|
|
| 136 | + try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 141 | 137 | |
| 142 | - if (!ObservePersistenceFixtures.WITH_ASSERT) {
|
|
| 143 | - return;
|
|
| 138 | + Map<String, Long> beforeResults = getBeforeResults(persistenceContext, shell);
|
|
| 139 | + try {
|
|
| 140 | + assertReplicate(applicationContext, persistenceContext, replicateRequest, shell, expected, beforeResults, 1);
|
|
| 141 | + if (!ObservePersistenceFixtures.WITH_ASSERT) {
|
|
| 142 | + return;
|
|
| 143 | + }
|
|
| 144 | + assertReplicate(applicationContext, persistenceContext, replicateRequest, shell, expected, beforeResults, 2);
|
|
| 145 | + assertReplicate(applicationContext, persistenceContext, replicateRequest, shell, expected, beforeResults, 3);
|
|
| 146 | + assertReplicate(applicationContext, persistenceContext, replicateRequest, shell, expected, beforeResults, 4);
|
|
| 147 | + } finally {
|
|
| 148 | + persistenceContext.rollback();
|
|
| 144 | 149 | }
|
| 145 | - |
|
| 146 | - assertReplicate(applicationContext, replicateRequest, shell, expected, beforeResults, 2);
|
|
| 147 | - assertReplicate(applicationContext, replicateRequest, shell, expected, beforeResults, 3);
|
|
| 148 | - assertReplicate(applicationContext, replicateRequest, shell, expected, beforeResults, 4);
|
|
| 149 | 150 | }
|
| 150 | 151 | }
|
| 151 | 152 | } |
| ... | ... | @@ -33,14 +33,11 @@ import fr.ird.observe.entities.data.RootOpenableEntity; |
| 33 | 33 | import fr.ird.observe.entities.data.ps.logbook.SampleActivity;
|
| 34 | 34 | import fr.ird.observe.entities.data.ps.logbook.WellActivity;
|
| 35 | 35 | import fr.ird.observe.persistence.test.ObservePersistenceFixtures;
|
| 36 | -import fr.ird.observe.persistence.test.PersistenceTestSupportWrite;
|
|
| 36 | +import fr.ird.observe.persistence.test.PersistenceTestSupportRead;
|
|
| 37 | 37 | import fr.ird.observe.spi.ObservePersistenceBusinessProject;
|
| 38 | 38 | import fr.ird.observe.spi.context.DtoEntityContext;
|
| 39 | 39 | import fr.ird.observe.spi.relation.WithDtoEntityRelation;
|
| 40 | -import fr.ird.observe.test.DatabaseName;
|
|
| 41 | 40 | import fr.ird.observe.test.IgnoreTestClassRule;
|
| 42 | -import fr.ird.observe.test.spi.CopyDatabaseConfiguration;
|
|
| 43 | -import fr.ird.observe.test.spi.DatabaseNameConfiguration;
|
|
| 44 | 41 | import io.ultreia.java4all.util.sql.SqlScript;
|
| 45 | 42 | import io.ultreia.java4all.util.sql.SqlScriptConsumer;
|
| 46 | 43 | import org.junit.Assert;
|
| ... | ... | @@ -62,8 +59,7 @@ import java.util.stream.Collectors; |
| 62 | 59 | * @since 9.0.0
|
| 63 | 60 | */
|
| 64 | 61 | @RunWith(Parameterized.class)
|
| 65 | -@DatabaseNameConfiguration(DatabaseName.data)
|
|
| 66 | -public class ReplicateRequestTest extends PersistenceTestSupportWrite {
|
|
| 62 | +public class ReplicateRequestTest extends PersistenceTestSupportRead {
|
|
| 67 | 63 | |
| 68 | 64 | @ClassRule
|
| 69 | 65 | public static final IgnoreTestClassRule IGNORE2 = new IgnoreTestClassRule("Persistence Request", "persistence.request.test.skip");
|
| ... | ... | @@ -78,54 +74,56 @@ public class ReplicateRequestTest extends PersistenceTestSupportWrite { |
| 78 | 74 | @Parameterized.Parameters(name = "{0}")
|
| 79 | 75 | public static Iterable<Object[]> data() {
|
| 80 | 76 | return ObservePersistenceBusinessProject.get().getEntityToDtoClassMapping().keySet().stream()
|
| 81 | - .filter(Class::isInterface)
|
|
| 82 | - .filter(Predicate.not(RootOpenableEntity.class::isAssignableFrom).and(DataEntity.class::isAssignableFrom).and(Predicate.not(NO_REPLICATE_TYPES::contains)))
|
|
| 83 | - .sorted(Comparator.comparing(Object::toString)).map(t -> new Object[]{t}).collect(Collectors.toList());
|
|
| 77 | + .filter(Class::isInterface)
|
|
| 78 | + .filter(Predicate.not(RootOpenableEntity.class::isAssignableFrom).and(DataEntity.class::isAssignableFrom).and(Predicate.not(NO_REPLICATE_TYPES::contains)))
|
|
| 79 | + .sorted(Comparator.comparing(Object::toString)).map(t -> new Object[]{t}).collect(Collectors.toList());
|
|
| 84 | 80 | }
|
| 85 | 81 | |
| 86 | 82 | |
| 87 | 83 | @Test
|
| 88 | - @CopyDatabaseConfiguration
|
|
| 89 | 84 | public void replicate() {
|
| 90 | 85 | String variableName = ObservePersistenceFixtures.getEntityVariableName(entityType);
|
| 91 | 86 | String id = ObservePersistenceFixtures.getVariable(variableName);
|
| 92 | 87 | log.info(String.format("test replicate for: %s", id));
|
| 93 | 88 | DtoEntityContext<BusinessDto, DtoReference, ? extends DataEntity, ?> spi = ObservePersistenceBusinessProject.fromEntity(entityType);
|
| 94 | 89 | |
| 95 | - try (ObserveTopiaApplicationContext applicationContext = localTestMethodResource.getTopiaApplicationContext()) {
|
|
| 96 | - ObservePersistenceFixtures.assertDataExist(applicationContext, spi, id);
|
|
| 97 | - String parentId;
|
|
| 98 | - try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 99 | - parentId = ((WithDtoEntityRelation<?, ?, ?, ?>) spi).getParentId(persistenceContext, id).getId();
|
|
| 100 | - }
|
|
| 101 | - log.info(String.format("use parent id: %s", parentId));
|
|
| 90 | + ObserveTopiaApplicationContext applicationContext = localTestMethodResource.getTopiaApplicationContext();
|
|
| 91 | + ObservePersistenceFixtures.assertDataExist(applicationContext, spi, id);
|
|
| 92 | + String parentId;
|
|
| 93 | + try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 94 | + parentId = ((WithDtoEntityRelation<?, ?, ?, ?>) spi).getParentId(persistenceContext, id).getId();
|
|
| 95 | + }
|
|
| 96 | + log.info(String.format("use parent id: %s", parentId));
|
|
| 102 | 97 | |
| 103 | - ReplicateRequest replicateRequest = new ReplicateRequest(false, parentId, parentId, entityType.getName(), id);
|
|
| 104 | - DeleteRequest deleteRequest = new DeleteRequest(false, entityType.getName(), parentId, id);
|
|
| 105 | - SqlScript deleteScript = applicationContext.getSqlService().consume(deleteRequest);
|
|
| 106 | - SqlScript replicateScript = applicationContext.getSqlService().consume(replicateRequest);
|
|
| 107 | - String replicateScriptContent = replicateScript.content();
|
|
| 108 | - String deleteScriptContent = deleteScript.content();
|
|
| 109 | - if (!ObservePersistenceFixtures.WITH_ASSERT) {
|
|
| 110 | - System.out.println(deleteScriptContent);
|
|
| 111 | - System.out.println(replicateScriptContent);
|
|
| 112 | - }
|
|
| 98 | + ReplicateRequest replicateRequest = new ReplicateRequest(false, parentId, parentId, entityType.getName(), id);
|
|
| 99 | + DeleteRequest deleteRequest = new DeleteRequest(false, entityType.getName(), parentId, id);
|
|
| 100 | + SqlScript deleteScript = applicationContext.getSqlService().consume(deleteRequest);
|
|
| 101 | + SqlScript replicateScript = applicationContext.getSqlService().consume(replicateRequest);
|
|
| 102 | + String replicateScriptContent = replicateScript.content();
|
|
| 103 | + String deleteScriptContent = deleteScript.content();
|
|
| 104 | + if (!ObservePersistenceFixtures.WITH_ASSERT) {
|
|
| 105 | + System.out.println(deleteScriptContent);
|
|
| 106 | + System.out.println(replicateScriptContent);
|
|
| 107 | + }
|
|
| 113 | 108 | |
| 114 | - try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 109 | + try (ObserveTopiaPersistenceContext persistenceContext = applicationContext.newPersistenceContext()) {
|
|
| 110 | + try {
|
|
| 115 | 111 | ObservePersistenceFixtures.assertDataExist(persistenceContext, spi, id);
|
| 116 | 112 | TopiaDao<? extends DataEntity> dao = spi.getDao(persistenceContext);
|
| 117 | 113 | long beforeCount = dao.count();
|
| 118 | 114 | persistenceContext.executeSqlScript(deleteScript);
|
| 119 | - persistenceContext.commit();
|
|
| 115 | + persistenceContext.flush();
|
|
| 120 | 116 | ObservePersistenceFixtures.assertDataNotExist(persistenceContext, spi, id);
|
| 121 | 117 | persistenceContext.executeSqlScript(SqlScriptConsumer.of(replicateScript));
|
| 122 | - persistenceContext.commit();
|
|
| 118 | + persistenceContext.flush();
|
|
| 123 | 119 | long afterCount = dao.count();
|
| 124 | 120 | |
| 125 | 121 | Assert.assertEquals(String.format("On type %s, should get count: %d, but get %d", entityType.getName(), beforeCount, afterCount), beforeCount, afterCount);
|
| 126 | - ObservePersistenceFixtures.assertDataNotExist(applicationContext, spi, id);
|
|
| 127 | - |
|
| 122 | + ObservePersistenceFixtures.assertDataNotExist(persistenceContext, spi, id);
|
|
| 123 | + } finally {
|
|
| 124 | + persistenceContext.rollback();
|
|
| 128 | 125 | }
|
| 126 | + |
|
| 129 | 127 | }
|
| 130 | 128 | }
|
| 131 | 129 |