diff --git a/ccm-core/src/main/java/org/libreccm/portation/AbstractMarshaller.java b/ccm-core/src/main/java/org/libreccm/portation/AbstractMarshaller.java
index 3543eb68c..e026693ae 100644
--- a/ccm-core/src/main/java/org/libreccm/portation/AbstractMarshaller.java
+++ b/ccm-core/src/main/java/org/libreccm/portation/AbstractMarshaller.java
@@ -96,7 +96,7 @@ public abstract class AbstractMarshaller
{
* from
* @param filename The filename of the file exported to or imported from
* @param indentation whether or not indentation
- */
+ *
public void prepare(final Format format,
String folderPath, String filename,
boolean indentation) {
@@ -104,7 +104,7 @@ public abstract class AbstractMarshaller
{
if (file.exists() || file.mkdirs()) {
prepare(format, folderPath + "/" + filename, indentation);
}
- }
+ }*/
/**
* Export routine for lists with the same object type {@code P}. Creates a
diff --git a/ccm-core/src/test/java/org/libreccm/portation/CoreDataImportTest.java b/ccm-core/src/test/java/org/libreccm/portation/CoreDataImportTest.java
index 16a2b8525..68d2cb010 100644
--- a/ccm-core/src/test/java/org/libreccm/portation/CoreDataImportTest.java
+++ b/ccm-core/src/test/java/org/libreccm/portation/CoreDataImportTest.java
@@ -30,22 +30,30 @@ import org.jboss.arquillian.transaction.api.annotation.Transactional;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
-
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.libreccm.security.GroupRepository;
-import org.libreccm.tests.categories.IntegrationTest;
-
-import javax.inject.Inject;
-
-import static org.libreccm.testutils.DependenciesHelpers.getModuleDependencies;
-
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.libreccm.tests.categories.IntegrationTest;
+
+import javax.inject.Inject;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.FileAlreadyExistsException;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.libreccm.testutils.DependenciesHelpers.getModuleDependencies;
/**
@@ -66,23 +74,75 @@ public class CoreDataImportTest {
@Inject
private ImportHelper importHelper;
- @Inject
- private GroupRepository groupRepository;
+
+ private enum Types {
+ user, group, groupMem, role, roleMem,
+ category, categorization, resourceType,
+ ccmAppl, domain, domainOwn,
+ permission, workflow, taskComment,
+ assignableTask, taskDep, taskAssign
+ }
+
+ private static final Map fileNames;
+ static {
+ fileNames = new HashMap<>();
+ fileNames.put(Types.user, "users.xml");
+ fileNames.put(Types.group, "groups.xml");
+ fileNames.put(Types.groupMem, "groupMemberships.xml");
+ fileNames.put(Types.role, "roles.xml");
+ fileNames.put(Types.roleMem, "roleMemberships.xml");
+ fileNames.put(Types.category, "categories.xml");
+ fileNames.put(Types.categorization, "categorizations.xml");
+ fileNames.put(Types.resourceType, "resourceTypes.xml");
+ fileNames.put(Types.ccmAppl, "ccmApplications.xml");
+ fileNames.put(Types.domain, "domains.xml");
+ fileNames.put(Types.domainOwn, "domainOwnerships.xml");
+ fileNames.put(Types.permission, "permissions.xml");
+ fileNames.put(Types.workflow, "workflows.xml");
+ fileNames.put(Types.taskComment, "taskComments.xml");
+ fileNames.put(Types.assignableTask, "assignableTasks.xml");
+ fileNames.put(Types.taskDep, "taskDependencies.xml");
+ fileNames.put(Types.taskAssign, "taskAssignments.xml");
+ }
public CoreDataImportTest() {
}
@BeforeClass
- public static void setUpClass() {
- }
+ public static void setUpClass() throws IOException {
+ final String tmpDirPath = System.getProperty("java.io.tmpdir");
+ final Path filesPath = Paths
+ .get(tmpDirPath, "libreccm-test", "CoreDataImportTest");
+ Files.createDirectories(filesPath);
- @BeforeClass
- public static void createResource() {
+ for (String fileName : fileNames.values()) {
+ final InputStream inputStream = CoreDataImportTest
+ .class
+ .getResourceAsStream(String
+ .format("/portation/trunk-iaw-exports/%s",
+ fileName));
+ try {
+ Files.copy(inputStream, filesPath.resolve(fileName));
+ } catch(FileAlreadyExistsException e) {
+ //destination file already exists
+ }
+ }
}
@AfterClass
- public static void tearDownClass() {
+ public static void tearDownClass() throws IOException {
+ final String tmpDirPath = System.getProperty("java.io.tmpdir");
+ final Path filesPath = Paths
+ .get(tmpDirPath,"libreccm-test", "CoreDataImportTest");
+ Files.walkFileTree(filesPath, new SimpleFileVisitor(){
+ @Override
+ public FileVisitResult visitFile(Path file, BasicFileAttributes
+ attrs) throws IOException {
+ Files.delete(file);
+ return FileVisitResult.CONTINUE;
+ }
+ });
}
@Deployment
@@ -134,28 +194,50 @@ public class CoreDataImportTest {
@Test
@InSequence(100)
- public void objectsShouldBeImported() {
+ public void objectsShouldBeImported() throws IOException {
+ final String tmpDirPath = System.getProperty("java.io.tmpdir");
+ final Path filesPath = Paths
+ .get(tmpDirPath, "libreccm-test", "CoreDataImportTest");
+ Files.createDirectories(filesPath);
+
// assert for no errors
- Assert.assertFalse(importHelper.importUsers());
- Assert.assertFalse(importHelper.importGroups());
- Assert.assertFalse(importHelper.importGroupMemberships());
- Assert.assertFalse(importHelper.importRoles());
- Assert.assertFalse(importHelper.importRoleMemberships());
+ Assert.assertFalse(importHelper.importUsers(
+ filesPath.resolve(fileNames.get(Types.user))));
+ Assert.assertFalse(importHelper.importGroups(
+ filesPath.resolve(fileNames.get(Types.group))));
+ Assert.assertFalse(importHelper.importGroupMemberships(
+ filesPath.resolve(fileNames.get(Types.groupMem))));
+ Assert.assertFalse(importHelper.importRoles(
+ filesPath.resolve(fileNames.get(Types.role))));
+ Assert.assertFalse(importHelper.importRoleMemberships(
+ filesPath.resolve(fileNames.get(Types.roleMem))));
- Assert.assertFalse(importHelper.importCategories());
- Assert.assertFalse(importHelper.importCategorizations());
- Assert.assertFalse(importHelper.importResourceTypes());
- Assert.assertFalse(importHelper.importCcmApplications());
- Assert.assertFalse(importHelper.importDomains());
- Assert.assertFalse(importHelper.importDomainOwnerships());
+ Assert.assertFalse(importHelper.importCategories(
+ filesPath.resolve(fileNames.get(Types.category))));
+ Assert.assertFalse(importHelper.importCategorizations(
+ filesPath.resolve(fileNames.get(Types.categorization))));
+ Assert.assertFalse(importHelper.importResourceTypes(
+ filesPath.resolve(fileNames.get(Types.resourceType))));
+ Assert.assertFalse(importHelper.importCcmApplications(
+ filesPath.resolve(fileNames.get(Types.ccmAppl))));
+ Assert.assertFalse(importHelper.importDomains(
+ filesPath.resolve(fileNames.get(Types.domain))));
+ Assert.assertFalse(importHelper.importDomainOwnerships(
+ filesPath.resolve(fileNames.get(Types.domainOwn))));
- Assert.assertFalse(importHelper.importPermissions());
+ Assert.assertFalse(importHelper.importPermissions(
+ filesPath.resolve(fileNames.get(Types.permission))));
- Assert.assertFalse(importHelper.importWorkflows());
- Assert.assertFalse(importHelper.importTaskComments());
- Assert.assertFalse(importHelper.importAssignableTasks());
- Assert.assertFalse(importHelper.importTaskDependencies());
- Assert.assertFalse(importHelper.importTaskAssignments());
+ Assert.assertFalse(importHelper.importWorkflows(
+ filesPath.resolve(fileNames.get(Types.workflow))));
+ Assert.assertFalse(importHelper.importTaskComments(
+ filesPath.resolve(fileNames.get(Types.taskComment))));
+ Assert.assertFalse(importHelper.importAssignableTasks(
+ filesPath.resolve(fileNames.get(Types.assignableTask))));
+ Assert.assertFalse(importHelper.importTaskDependencies(
+ filesPath.resolve(fileNames.get(Types.taskDep))));
+ Assert.assertFalse(importHelper.importTaskAssignments(
+ filesPath.resolve(fileNames.get(Types.taskAssign))));
}
}
diff --git a/ccm-core/src/test/java/org/libreccm/portation/ImportHelper.java b/ccm-core/src/test/java/org/libreccm/portation/ImportHelper.java
index 22c6ecf90..495398806 100644
--- a/ccm-core/src/test/java/org/libreccm/portation/ImportHelper.java
+++ b/ccm-core/src/test/java/org/libreccm/portation/ImportHelper.java
@@ -56,6 +56,7 @@ import org.libreccm.workflow.WorkflowMarshaller;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
+import java.nio.file.Path;
/**
* Helper to implement the specifics for the importations. Makes source code
@@ -66,11 +67,8 @@ import javax.inject.Inject;
*/
@RequestScoped
class ImportHelper {
-
- private final String repoPath = "/home/jensp/pwi/libreccm/ccm/";
-// private final String repoPath = "/home/tosmers/Svn/libreccm/";
- private final String projectPath = "ccm_ng/ccm-core/src/test/resources/" +
- "portation/trunk-iaw-exports";
+
+ private final Format format = Format.XML;
private final boolean indentation = false;
@Inject
@@ -143,156 +141,139 @@ class ImportHelper {
- boolean importUsers() {
+ boolean importUsers(final Path filePath) {
userMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "users.xml",
+ format,
+ filePath.toString(),
indentation);
return userMarshaller.importFile();
}
- boolean importGroups() {
+ boolean importGroups(final Path filePath) {
groupMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "groups.xml",
+ format,
+ filePath.toString(),
indentation);
return groupMarshaller.importFile();
}
- boolean importGroupMemberships() {
+ boolean importGroupMemberships(final Path filePath) {
groupMembershipMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "groupMemberships.xml",
+ format,
+ filePath.toString(),
indentation);
return groupMembershipMarshaller.importFile();
}
- boolean importRoles() {
+ boolean importRoles(final Path filePath) {
roleMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "roles.xml",
+ format,
+ filePath.toString(),
indentation);
return roleMarshaller.importFile();
}
- boolean importRoleMemberships() {
+ boolean importRoleMemberships(final Path filePath) {
roleMembershipMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "roleMemberships.xml",
+ format,
+ filePath.toString(),
indentation);
return roleMembershipMarshaller.importFile();
}
- boolean importCategories() {
+ boolean importCategories(final Path filePath) {
categoryMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "categories.xml",
+ format,
+ filePath.toString(),
indentation);
return categoryMarshaller.importFile();
}
- boolean importCategorizations() {
+ boolean importCategorizations(final Path filePath) {
categorizationMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "categorizations.xml",
+ format,
+ filePath.toString(),
indentation);
return categorizationMarshaller.importFile();
}
- boolean importResourceTypes() {
+ boolean importResourceTypes(final Path filePath) {
resourceTypeMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "resourceTypes.xml",
+ format,
+ filePath.toString(),
indentation);
return resourceTypeMarshaller.importFile();
}
- boolean importCcmApplications() {
+ boolean importCcmApplications(final Path filePath) {
applicationMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "ccmApplications.xml",
+ format,
+ filePath.toString(),
indentation);
return applicationMarshaller.importFile();
}
- boolean importDomains() {
+ boolean importDomains(final Path filePath) {
domainMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "domains.xml",
+ format,
+ filePath.toString(),
indentation);
return domainMarshaller.importFile();
}
- boolean importDomainOwnerships() {
+ boolean importDomainOwnerships(final Path filePath) {
domainOwnershipMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "domainOwnerships.xml",
+ format,
+ filePath.toString(),
indentation);
return domainOwnershipMarshaller.importFile();
}
- boolean importPermissions() {
+ boolean importPermissions(final Path filePath) {
permissionMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "permissions.xml",
+ format,
+ filePath.toString(),
indentation);
return permissionMarshaller.importFile();
}
- boolean importWorkflows() {
+ boolean importWorkflows(final Path filePath) {
workflowMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "workflows.xml",
+ format,
+ filePath.toString(),
indentation);
return workflowMarshaller.importFile();
}
- boolean importTaskComments() {
+ boolean importTaskComments(final Path filePath) {
taskCommentMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "taskComments.xml",
+ format,
+ filePath.toString(),
indentation);
return taskCommentMarshaller.importFile();
}
- boolean importAssignableTasks() {
+ boolean importAssignableTasks(final Path filePath) {
assignableTaskMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "assignableTasks.xml",
+ format,
+ filePath.toString(),
indentation);
return assignableTaskMarshaller.importFile();
}
- boolean importTaskDependencies() {
+ boolean importTaskDependencies(final Path filePath) {
taskDependencyMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "taskDependencies.xml",
+ format,
+ filePath.toString(),
indentation);
return taskDependencyMarshaller.importFile();
}
- boolean importTaskAssignments() {
+ boolean importTaskAssignments(final Path filePath) {
taskAssignmentMarshaller.prepare(
- Format.XML,
- repoPath + projectPath,
- "taskAssignments.xml",
+ format,
+ filePath.toString(),
indentation);
return taskAssignmentMarshaller.importFile();
}