diff --git a/ccm-cms/pom.xml b/ccm-cms/pom.xml index 436527e6e..57a77f9bd 100644 --- a/ccm-cms/pom.xml +++ b/ccm-cms/pom.xml @@ -163,6 +163,7 @@ 2.18.1 org.libreccm.tests.categories.UnitTest + false @@ -280,6 +281,9 @@ org.apache.maven.plugins maven-surefire-report-plugin 2.18.1 + + false + org.jacoco @@ -417,6 +421,7 @@ always 999 true + false org.jboss.logmanager.LogManager + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/ContentItemManagerTest/data.xml b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/ContentItemManagerTest/data.xml index 9405d8876..4f0e6c229 100644 --- a/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/ContentItemManagerTest/data.xml +++ b/ccm-cms/src/test/resources/datasets/org/librecms/contentsection/ContentItemManagerTest/data.xml @@ -1,6 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10,6 +89,24 @@ + + + + + + - + @@ -48,8 +145,134 @@ root_documents_folder_id="-2100" root_assets_folder_id="-2200" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name="info_alert_recipient" /> + + + + - CcmCoreTest + CcmCmsTest ShiroFilter diff --git a/ccm-core/src/main/java/org/libreccm/workflow/WorkflowManager.java b/ccm-core/src/main/java/org/libreccm/workflow/WorkflowManager.java index cee0ee4f9..de8e7538f 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/WorkflowManager.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/WorkflowManager.java @@ -19,6 +19,7 @@ package org.libreccm.workflow; import org.libreccm.core.CoreConstants; +import org.libreccm.l10n.LocalizedString; import org.libreccm.security.AuthorizationRequired; import org.libreccm.security.RequiresPrivilege; import org.libreccm.security.Role; @@ -70,13 +71,24 @@ public class WorkflowManager { @Transactional(Transactional.TxType.REQUIRED) public Workflow createWorkflow(final WorkflowTemplate template) { final Workflow workflow = new Workflow(); + + final LocalizedString name = new LocalizedString(); + template.getName().getValues().forEach( + (locale, str) -> name.addValue(locale, str)); + workflow.setName(name); + + final LocalizedString description = new LocalizedString(); + template.getDescription().getValues().forEach( + (locale, str) -> description.addValue(locale, str)); + workflow.setDescription(description); + final Map tasks = new HashMap<>(); template.getTasks().forEach(taskTemplate -> createTask(taskTemplate, tasks)); template.getTasks().forEach(taskTemplate -> fixTaskDependencies( taskTemplate, tasks.get(taskTemplate.getTaskId()), tasks)); - + tasks.values().forEach(task -> taskRepo.save(task)); workflowRepo.save(workflow); @@ -105,15 +117,31 @@ public class WorkflowManager { if ("taskId".equals(propertyDesc.getName()) || "workflow".equals(propertyDesc.getName()) || "dependentTasks".equals(propertyDesc.getName()) - || "dependsOn".equals(propertyDesc.getName())) { + || "dependsOn".equals(propertyDesc.getName()) + || "assignments".equals(propertyDesc.getName()) + || "class".equals(propertyDesc.getName())) { continue; } final Method readMethod = propertyDesc.getReadMethod(); final Method writeMethod = propertyDesc.getWriteMethod(); + if (writeMethod == null) { + continue; + } + final Object value = readMethod.invoke(template); - writeMethod.invoke(task, value); + if (value instanceof LocalizedString) { + final LocalizedString localized = (LocalizedString) value; + final LocalizedString copy = new LocalizedString(); + + localized.getValues().forEach( + (locale, str) -> copy.addValue(locale, str)); + + writeMethod.invoke(task, copy); + } else { + writeMethod.invoke(task, value); + } } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) { diff --git a/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java b/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java index 9093cd5ed..835ea84a6 100644 --- a/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java @@ -178,6 +178,13 @@ public class CategoryManagerTest { System.out.println("Dataset loaded successfully."); } + @Test + @InSequence(20) + public void checkShiro() { + assertThat(shiro.getSecurityManager(), is(not(nullValue()))); + assertThat(shiro.getSystemUser(), is(not(nullValue()))); + } + @Test @UsingDataSet( "datasets/org/libreccm/categorization/CategoryManagerTest/data.yml")