diff --git a/pom.xml b/pom.xml index fb91cc6401413d1e19d03f2c32f005f990edeecc..35a900cc1c60ced5d52ae20c0ff89394939a82c3 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ <maven.deploy.skip>true</maven.deploy.skip> <project.scm.id>edelivery-scm</project.scm.id> <sonar.host.url>http://edelquality.westeurope.cloudapp.azure.com:9000/sonar/</sonar.host.url> - <sonar.exclusions>**/smp/data/model/*,**/smp/data/ui/*, **/smp/exceptions/*, **/to_be_removed/*</sonar.exclusions> + <sonar.exclusions>**/smp/data/model/*,**/smp/data/ui/*, **/smp/ui/exception/*,**/smp/services/ui/filters/*, **/smp/exceptions/*, **/to_be_removed/*</sonar.exclusions> <sonar.language>java</sonar.language> <jacoco.maven.plugin.version>0.7.9</jacoco.maven.plugin.version> diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPSchemaGenerator.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPSchemaGenerator.java index c500ab562428167463d6a5a59ccdb9951984db9e..6f3867358b4f009845044258c55576f5a6d94a73 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPSchemaGenerator.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPSchemaGenerator.java @@ -151,7 +151,7 @@ public class SMPSchemaGenerator { } } } else { - throw new ClassNotFoundException("Package: " + pckgname + " does not eixsts!"); + throw new ClassNotFoundException("Package: " + pckgname + " does not exists!"); } return classes; diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPMySQL5InnoDBDialectTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPMySQL5InnoDBDialectTest.java new file mode 100644 index 0000000000000000000000000000000000000000..0156f38f92176effbf3cdda856ebd37539c1c40c --- /dev/null +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPMySQL5InnoDBDialectTest.java @@ -0,0 +1,28 @@ +package eu.europa.ec.edelivery.smp.data.dao.utils; + +import org.junit.Test; + +import java.sql.Types; + +import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; + +public class SMPMySQL5InnoDBDialectTest { + + SMPMySQL5InnoDBDialect testInstance = new SMPMySQL5InnoDBDialect(); + + @Test + public void getTableTypeString() { + + assertEquals(" ENGINE=InnoDB DEFAULT CHARSET=utf8", testInstance.getTableTypeString()); + } + + @Test + public void registerVarcharTypes() { + + assertEquals("longtext", testInstance.getTypeName(Types.VARCHAR)); + assertEquals("longtext", testInstance.getTypeName(Types.LONGVARCHAR)); + assertEquals("varchar(65535) CHARACTER SET utf8 COLLATE utf8_bin", testInstance.getTypeName(Types.VARCHAR, 65535,0,0)); + + } +} \ No newline at end of file diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPSchemaGeneratorTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPSchemaGeneratorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..66cdaecf437d0ab1a5c4918c6d9d14f365a46a8e --- /dev/null +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPSchemaGeneratorTest.java @@ -0,0 +1,109 @@ +package eu.europa.ec.edelivery.smp.data.dao.utils; + +import eu.europa.ec.edelivery.smp.exceptions.SMPRuntimeException; +import junitparams.JUnitParamsRunner; +import junitparams.Parameters; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.Collections; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +@RunWith(JUnitParamsRunner.class) +public class SMPSchemaGeneratorTest { + + private static final String DIALECT_ORACLE="org.hibernate.dialect.Oracle10gDialect"; + private static final String DIALECT_MYSQL_INNO5="org.hibernate.dialect.MySQL5InnoDBDialect"; + private static final String ENTITY_PACKAGE= "eu.europa.ec.edelivery.smp.data.model"; + + private static final Object[] dialectTestCases() { + return new Object[][]{ + {DIALECT_MYSQL_INNO5, "eu.europa.ec.edelivery.smp.data.dao.utils.SMPMySQL5InnoDBDialect"}, + {DIALECT_ORACLE, DIALECT_ORACLE}, + {"org.hibernate.dialect.MySQLDialect", "org.hibernate.dialect.MySQLDialect"}, + {null, null}, + + }; + } + + @Rule + public ExpectedException expectedEx = ExpectedException.none(); + + + SMPSchemaGenerator testInstance = new SMPSchemaGenerator(); + + + @Test + public void createDDLScript() throws ClassNotFoundException { + // given + String folder = "target"; + String dialect = DIALECT_ORACLE; + String version = "4.1.0-SNAPSHOT"; + List<String> lstPackages = Collections.singletonList(ENTITY_PACKAGE); + File f = new File("target/oracle10g-4.1.0.ddl"); + f.delete(); // delete if exists + assertTrue(!f.exists()); + + + testInstance.createDDLScript(folder, dialect, lstPackages, version); + + assertTrue(f.exists()); + assertTrue(f.length()>0); + } + + @Test + public void createFileNameOracleDialect() { + // given + String dialect = DIALECT_ORACLE; + String version = "4.1.0"; + + //when + String filaName = testInstance.createFileName(dialect, version); + // then + assertEquals("oracle10g-4.1.0.ddl", filaName); + } + + @Test + public void createFileNameMySQLDialect() { + // given + String dialect = DIALECT_MYSQL_INNO5; + String version = "4.1.0"; + + //when + String filaName = testInstance.createFileName(dialect, version); + // then + assertEquals("mysql5innodb-4.1.0.ddl", filaName); + } + + @Test + @Parameters(method = "dialectTestCases") + public void getDialect(String input, String output) { + + //when + String result = testInstance.getDialect(input); + // then + assertEquals(output, result); + } + + @Test + public void getAllEntityClassesNotFound() throws ClassNotFoundException { + + expectedEx.expect(ClassNotFoundException.class); + + testInstance.getAllEntityClasses("eu.not.exists"); + } + @Test + public void getAllEntityClasses() throws ClassNotFoundException { + + // given when + List<Class> result = testInstance.getAllEntityClasses(ENTITY_PACKAGE); + + assertEquals(13, result.size()); + } +} \ No newline at end of file