Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 606070de authored by Joze RIHTARSIC's avatar Joze RIHTARSIC
Browse files

[EDELIVERY-12927] fix unit tests

parent a6c817c1
No related branches found
No related tags found
No related merge requests found
Pipeline #152566 passed with warnings
......@@ -34,11 +34,9 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Field;
import java.net.URL;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;
import java.util.*;
/**
* Class generates DDL script for SMP. Purpose of script is to manually run SQL script to create database. And to
......@@ -50,7 +48,10 @@ import java.util.List;
public class SMPSchemaGenerator {
protected static String filenameTemplate = "%s.ddl";
protected static String filenameDropTemplate = "%s-drop.ddl";
protected static String smpEntityPackageName = "eu.europa.ec.edelivery.smp.data.model,eu.europa.ec.edelivery.smp.data.model.user,eu.europa.ec.edelivery.smp.data.model.doc,eu.europa.ec.edelivery.smp.data.model.ext";
protected static String smpEntityPackageName = "eu.europa.ec.edelivery.smp.data.model," +
"eu.europa.ec.edelivery.smp.data.model.user," +
"eu.europa.ec.edelivery.smp.data.model.doc," +
"eu.europa.ec.edelivery.smp.data.model.ext";
private static final String SQL_MESSAGE = "-- ------------------------------------------------------------------------\n-- This file was generated by hibernate for SMP version %s.\n-- ------------------------------------------------------------------------\n\n";
protected static final SMPLogger LOG = SMPLoggerFactory.getLogger(SMPSchemaGenerator.class);
......@@ -98,7 +99,6 @@ public class SMPSchemaGenerator {
// metadata.addPackage did not work...
List<Class> clsList = getAllEntityClasses(pckName);
for (Class clazz : clsList) {
metadata.addAnnotatedClass(clazz);
}
}
......@@ -184,28 +184,49 @@ public class SMPSchemaGenerator {
* @return
*/
public List<Class> getAllEntityClasses(String pckgname) throws ClassNotFoundException {
ArrayList classes = new ArrayList();
List<Class> classes = new ArrayList<>();
// Get a File object for the package
File directory = null;
// Get list of folders for the package
List<File> resourceFolders = new ArrayList<>();
try {
directory = new File(Thread.currentThread().getContextClassLoader().getResource(pckgname.replace('.', '/')).getFile());
} catch (NullPointerException x) {
// can be multiple resource locations: as example test-classes and classes
Enumeration<URL> resourceUrls = Thread.currentThread().getContextClassLoader().getResources(pckgname.replace('.', '/'));
while (resourceUrls.hasMoreElements()) {
URL resource = resourceUrls.nextElement();
resourceFolders.add(new File(resource.getFile()));
}
} catch (IOException | NullPointerException x) {
throw new ClassNotFoundException(pckgname + " does not appear to be a valid package");
}
if (directory.exists()) {
// Get the list of the files contained in the package
String[] files = directory.list();
for (int i = 0; i < files.length; i++) {
if (files[i].endsWith(".class")) {
// removes the .class extension
classes.add(Class.forName(pckgname + '.' + files[i].substring(0, files[i].length() - 6)));
}
}
} else {
if (resourceFolders.isEmpty()) {
throw new ClassNotFoundException("Package: " + pckgname + " does not exists!");
}
// iterate over all resource folders
for (File resourceFolder : resourceFolders) {
classes.addAll(getClassesFromFolder(resourceFolder, pckgname));
}
return classes;
}
/**
* Returns list of classes in folder with given package name. The method is used to get classes
* only from resource folder and not the packaged jars.
* @param resourceFolder - folder with classes
* @param pckgName - package name
* @return list of classes in folder
* @throws ClassNotFoundException - if class not found
*/
public List<Class> getClassesFromFolder(File resourceFolder, String pckgName) throws ClassNotFoundException {
List<Class> classes = new ArrayList<>();
String[] files = resourceFolder.list();
for (int i = 0; i < files.length; i++) {
if (files[i].endsWith(".class")) {
// removes the .class extension
classes.add(Class.forName(pckgName + '.' + files[i].substring(0, files[i].length() - 6)));
}
}
return classes;
}
......
......@@ -35,8 +35,10 @@ class SMPSchemaGeneratorTest {
private static final String DIALECT_ORACLE = "org.hibernate.dialect.Oracle10gDialect";
private static final String DIALECT_MYSQL_INNO5 = "org.hibernate.dialect.MySQL5InnoDBDialect";
protected static String ENTITY_PACKAGES = "eu.europa.ec.edelivery.smp.data.model,eu.europa.ec.edelivery.smp.data.model.user,eu.europa.ec.edelivery.smp.data.model.doc,eu.europa.ec.edelivery.smp.data.model.ext";
protected static String ENTITY_PACKAGES = "eu.europa.ec.edelivery.smp.data.model," +
"eu.europa.ec.edelivery.smp.data.model.user," +
"eu.europa.ec.edelivery.smp.data.model.doc," +
"eu.europa.ec.edelivery.smp.data.model.ext";
private static Object[] dialectTestCases() {
return new Object[][]{
......@@ -48,16 +50,14 @@ class SMPSchemaGeneratorTest {
};
}
SMPSchemaGenerator testInstance = new SMPSchemaGenerator();
@Test
void createDDLScript() throws ClassNotFoundException, IOException {
// given
String folder = "target";
String dialect = DIALECT_ORACLE;
String version = "4.1.0-SNAPSHOT";
String version = "5.1-SNAPSHOT";
List<String> lstPackages = Arrays.asList(ENTITY_PACKAGES.split(","));
File f = new File("target/oracle10g.ddl");
File fDrop = new File("target/oracle10g-drop.ddl");
......@@ -128,7 +128,6 @@ class SMPSchemaGeneratorTest {
void getAllEntityClassesNotFound() {
assertThrows(ClassNotFoundException.class, () -> testInstance.getAllEntityClasses("eu.not.exists"));
}
@Test
......
......@@ -307,9 +307,10 @@ class ResourceEditControllerIT extends AbstractControllerTest {
}
@Test
public void testFilter() throws Exception {
void testFilter() throws Exception {
// given when
final String filter = ":%#^&$-_=asd.<>/\\";
final String expectedEscapedFilter = ":\\%#^&$-\\_=asd.<>/\\\\";
String filterParam = URLEncoder.encode(filter);
MockHttpSession session = loginWithSystemAdmin(mvc);
UserRO userRO = getLoggedUserData(mvc, session);
......@@ -328,6 +329,6 @@ class ResourceEditControllerIT extends AbstractControllerTest {
.andExpect(status().isOk()).andReturn();
//then
Mockito.verify(uiResourceService).getGroupResources(anyLong(), anyInt(), anyInt(), eq(filter));
Mockito.verify(uiResourceService).getGroupResources(anyLong(), anyInt(), anyInt(), eq(expectedEscapedFilter));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment