From 1f90bc551b9ae224d1d8b0acf4b5b71851ed1069 Mon Sep 17 00:00:00 2001 From: wea_ondara Date: Sun, 27 Nov 2022 06:41:38 +0100 Subject: [PATCH] fix migration generation where sqltype was not properly set; also fix tests for that --- core/pom.xml | 17 +++++++++++++++++ migration-creator/pom.xml | 7 +++++++ .../migration/creator/MigrationCreator.java | 1 + .../creator/MigrationCreatorTestBase.java | 19 +++++++++++++++++++ 4 files changed, 44 insertions(+) diff --git a/core/pom.xml b/core/pom.xml index a356273..c3718bb 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -16,4 +16,21 @@ 17 UTF-8 + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + + + test-jar + + + + + + \ No newline at end of file diff --git a/migration-creator/pom.xml b/migration-creator/pom.xml index 6730790..4fbbb5c 100644 --- a/migration-creator/pom.xml +++ b/migration-creator/pom.xml @@ -23,5 +23,12 @@ core ${project.parent.version} + + jef + core + ${project.parent.version} + test-jar + test + \ No newline at end of file diff --git a/migration-creator/src/main/java/jef/model/migration/creator/MigrationCreator.java b/migration-creator/src/main/java/jef/model/migration/creator/MigrationCreator.java index 949e28a..3e6664a 100644 --- a/migration-creator/src/main/java/jef/model/migration/creator/MigrationCreator.java +++ b/migration-creator/src/main/java/jef/model/migration/creator/MigrationCreator.java @@ -251,6 +251,7 @@ public class MigrationCreator { if (fromField == null) { handledTo.add(toField); steps.add(new AddFieldOperation.Builder(toField.getEntity().getName(), toField.getName()) + .sqlType(getSqlType(toField)) .notNull(toField.isNotNull())); } } diff --git a/migration-creator/src/test/java/jef/model/migration/creator/MigrationCreatorTestBase.java b/migration-creator/src/test/java/jef/model/migration/creator/MigrationCreatorTestBase.java index 5ff1ff5..ea35459 100644 --- a/migration-creator/src/test/java/jef/model/migration/creator/MigrationCreatorTestBase.java +++ b/migration-creator/src/test/java/jef/model/migration/creator/MigrationCreatorTestBase.java @@ -1,7 +1,11 @@ package jef.model.migration.creator; import jef.model.DbContext; +import jef.model.DbEntityBuilder; +import jef.model.DbFieldBuilder; import jef.model.ModelBuilder; +import jef.platform.base.SqlTypeMapper; +import jef.serializable.SerializableObject; import java.io.File; import java.net.URL; @@ -14,6 +18,7 @@ import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; +import static jef.model.ModelBuilderCloneTest.debugHelper; import static org.junit.jupiter.api.Assertions.assertEquals; public class MigrationCreatorTestBase { @@ -47,6 +52,8 @@ public class MigrationCreatorTestBase { compile(packageName, className, snapshotJava); var clazz = (Class) loadClass(packageName, className); var mb = ModelBuilder.from(clazz); + applySqlTypes(mb); + debugHelper(from, mb); assertEquals(from, mb); } catch (AssertionError | RuntimeException e) { throw e; @@ -62,6 +69,8 @@ public class MigrationCreatorTestBase { compile(packageName, className, snapshotJava); var clazz = (Class) loadClass(packageName, className); var mb = ModelBuilder.from(clazz); + applySqlTypes(mb); + debugHelper(to, mb); assertEquals(to, mb); } catch (AssertionError | RuntimeException e) { throw e; @@ -70,6 +79,16 @@ public class MigrationCreatorTestBase { } } + private void applySqlTypes(ModelBuilder mb) { + for (DbEntityBuilder entity : mb.entities()) { + for (DbFieldBuilder field : entity.fields()) { + if (field.getField().getSqlType() == null) { + field.getField().setSqlType(new SqlTypeMapper().map(field.getField().getTypeName()).orElseThrow()); + } + } + } + } + private File compile(String packageName, String className, String java) { try {//src File srcdir = new File(getSourcesFilesDir(), packageName.replace(".", File.separator));