Example usage for org.apache.commons.io FilenameUtils EXTENSION_SEPARATOR_STR

List of usage examples for org.apache.commons.io FilenameUtils EXTENSION_SEPARATOR_STR

Introduction

In this page you can find the example usage for org.apache.commons.io FilenameUtils EXTENSION_SEPARATOR_STR.

Prototype

String EXTENSION_SEPARATOR_STR

To view the source code for org.apache.commons.io FilenameUtils EXTENSION_SEPARATOR_STR.

Click Source Link

Document

The extension separator String.

Usage

From source file:nl.mpi.lamus.workspace.exporting.implementation.AddedNodeExporterTest.java

private WorkspaceNode getCurrentNode(String fileExtension, WorkspaceNodeType type, String format)
        throws MalformedURLException, URISyntaxException {

    final int nodeWsID = 10;
    final String nodeName = "Node";
    final String nodeFilename = nodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + fileExtension;
    final URL nodeWsURL = new URL("file:/workspace/" + testWorkspace.getWorkspaceID() + "/" + nodeFilename);
    final URI nodeOriginURI = URI.create("file:/localdirectory/" + nodeFilename);

    final WorkspaceNodeStatus nodeStatus = WorkspaceNodeStatus.UPLOADED;
    final URI nodeSchemaLocation = new URI("http://some.location");
    final boolean nodeProtected = Boolean.FALSE;

    return new LamusWorkspaceNode(nodeWsID, testWorkspace.getWorkspaceID(), nodeSchemaLocation, nodeName, "",
            type, nodeWsURL, null, null, nodeOriginURI, nodeStatus, nodeProtected, format);
}

From source file:nl.mpi.lamus.workspace.exporting.implementation.GeneralNodeExporterTest.java

@Test
public void exportChangedMetadataNode() throws MalformedURLException, URISyntaxException, IOException,
        MetadataException, TransformerException, WorkspaceExportException {

    final int parentNodeWsID = 1;
    final String parentNodeName = "TopNode";
    final String metadataExtension = "cmdi";
    final String parentFilename = parentNodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + metadataExtension;
    final String parentNodeWsPath = "file:/workspace" + workspace.getWorkspaceID() + File.separator
            + parentFilename;//from   ww w . j  av  a  2  s .c om
    final URL parentNodeWsURL = new URL(parentNodeWsPath);
    final File parentNodeWsFile = new File(URI.create(parentNodeWsPath));
    final URI parentNodeArchiveURI = new URI(UUID.randomUUID().toString());
    final String parentNodeArchiveLocalPath = "file:/archive/location/TopNode/Corpusstructure/"
            + parentFilename;
    final URL parentNodeArchiveLocalURL = new URL(parentNodeArchiveLocalPath);
    final File parentNodeArchiveLocalFile = new File(URI.create(parentNodeArchiveLocalPath));
    final String parentCorpusNamePathToClosestTopNode = ""; // top node

    final int nodeWsID = 10;
    final String nodeName = "SomeNode";
    final String nodeFilename = nodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + metadataExtension;
    final URL nodeWsURL = new URL(
            "file:/workspace/" + workspace.getWorkspaceID() + File.separator + nodeFilename);
    final URI nodeArchiveURI = new URI(UUID.randomUUID().toString());
    final String nodeArchivePath = "https:/archive/location/TopNode/Corpusstructure/" + nodeFilename;
    final URL nodeArchiveURL = new URL(nodeArchivePath);
    final String nodeArchiveLocalPath = "file:/archive/location/TopNode/Corpusstructure/" + nodeFilename;
    final File nodeArchiveLocalFile = new File(URI.create(nodeArchiveLocalPath));
    final boolean isNodeProtected = Boolean.FALSE;
    final String currentCorpusNamePathToClosestTopNode = "TopNode";

    final String nodePathRelativeToParent = nodeFilename;

    final boolean keepUnlinkedFiles = Boolean.FALSE; //not used in this exporter
    final WorkspaceSubmissionType submissionType = WorkspaceSubmissionType.SUBMIT_WORKSPACE;
    final WorkspaceExportPhase exportPhase = WorkspaceExportPhase.TREE_EXPORT;

    workspace.setTopNodeID(nodeWsID);
    workspace.setTopNodeArchiveURI(nodeArchiveURI);
    workspace.setTopNodeArchiveURL(nodeArchiveURL);

    checkLoggerInvocations(parentNodeWsID, nodeWsID);

    context.checking(new Expectations() {
        {

            oneOf(mockChildWsNode).isProtected();
            will(returnValue(isNodeProtected));

            oneOf(mockChildWsNode).getArchiveURI();
            will(returnValue(nodeArchiveURI));
            oneOf(mockCorpusStructureProvider).getNode(nodeArchiveURI);
            will(returnValue(mockCorpusNode));
            oneOf(mockNodeResolver).getLocalFile(mockCorpusNode);
            will(returnValue(nodeArchiveLocalFile));

            oneOf(mockNodeUtil).isNodeMetadata(mockChildWsNode);
            will(returnValue(Boolean.TRUE));

            oneOf(mockExporterHelper).getNamePathToUseForThisExporter(mockChildWsNode, mockParentWsNode,
                    parentCorpusNamePathToClosestTopNode, Boolean.TRUE, generalNodeExporter.getClass());
            will(returnValue(currentCorpusNamePathToClosestTopNode));

            oneOf(mockWorkspaceTreeExporter).explore(workspace, mockChildWsNode,
                    currentCorpusNamePathToClosestTopNode, keepUnlinkedFiles, submissionType, exportPhase);

            oneOf(mockChildWsNode).getWorkspaceURL();
            will(returnValue(nodeWsURL));
            oneOf(mockMetadataAPI).getMetadataDocument(nodeWsURL);
            will(returnValue(mockChildCmdiDocument));

            oneOf(mockWorkspaceFileHandler).getStreamResultForNodeFile(nodeArchiveLocalFile);
            will(returnValue(mockStreamResult));

            oneOf(mockMetadataAPI).writeMetadataDocument(mockChildCmdiDocument, mockStreamResult);
        }
    });

    checkParentReferenceUpdateInvocations(nodeArchiveURI, parentNodeArchiveURI, parentNodeWsURL,
            parentNodeWsFile, parentNodeArchiveLocalURL, parentNodeArchiveLocalFile, nodeArchiveLocalFile,
            nodePathRelativeToParent, null);

    generalNodeExporter.exportNode(workspace, mockParentWsNode, parentCorpusNamePathToClosestTopNode,
            mockChildWsNode, keepUnlinkedFiles, submissionType, exportPhase);
}

From source file:nl.mpi.lamus.workspace.exporting.implementation.GeneralNodeExporterTest.java

@Test
public void exportUnknownMetadataNode()
        throws MalformedURLException, URISyntaxException, WorkspaceExportException {

    final int parentNodeWsID = 1;
    final String metadataExtension = "cmdi";
    final String parentCorpusNamePathToClosestTopNode = ""; // top node

    final int nodeWsID = 10;
    final String nodeName = "SomeNode";
    final String nodeFilename = nodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + metadataExtension;
    final URI nodeArchiveURI = new URI(UUID.randomUUID().toString());
    final String nodeArchivePath = "https:/archive/location/TopNode/Corpusstructure/" + nodeFilename;
    final URL nodeArchiveURL = new URL(nodeArchivePath);
    final boolean isNodeProtected = Boolean.FALSE;

    final boolean keepUnlinkedFiles = Boolean.FALSE; //not used in this exporter
    final WorkspaceSubmissionType submissionType = WorkspaceSubmissionType.SUBMIT_WORKSPACE;
    final WorkspaceExportPhase exportPhase = WorkspaceExportPhase.TREE_EXPORT;

    workspace.setTopNodeID(nodeWsID);//  w  w  w.  jav a2s.com
    workspace.setTopNodeArchiveURI(nodeArchiveURI);
    workspace.setTopNodeArchiveURL(nodeArchiveURL);

    final String expectedErrorMessage = "Node not found in archive database for URI " + nodeArchiveURI;

    checkLoggerInvocations(parentNodeWsID, nodeWsID);

    context.checking(new Expectations() {
        {

            oneOf(mockChildWsNode).isProtected();
            will(returnValue(isNodeProtected));

            oneOf(mockChildWsNode).getArchiveURI();
            will(returnValue(nodeArchiveURI));
            oneOf(mockCorpusStructureProvider).getNode(nodeArchiveURI);
            will(returnValue(null));
            //logger
            oneOf(mockChildWsNode).getArchiveURI();
            will(returnValue(nodeArchiveURI));
        }
    });

    try {
        generalNodeExporter.exportNode(workspace, mockParentWsNode, parentCorpusNamePathToClosestTopNode,
                mockChildWsNode, keepUnlinkedFiles, submissionType, exportPhase);
        fail("should have thrown exception");
    } catch (WorkspaceExportException ex) {
        assertEquals("Message different from expected", expectedErrorMessage, ex.getMessage());
        assertEquals("Workspace ID different from expected", workspace.getWorkspaceID(), ex.getWorkspaceID());
        assertEquals("Cause different from expected", null, ex.getCause());
    }
}

From source file:nl.mpi.lamus.workspace.exporting.implementation.GeneralNodeExporterTest.java

@Test
public void export_ProblemsRetrievingCorpusNamePath() throws MalformedURLException, URISyntaxException {

    final int parentNodeWsID = 1;
    final String metadataExtension = "cmdi";
    final String parentCorpusNamePathToClosestTopNode = ""; // top node

    final int nodeWsID = 10;
    final String nodeName = "SomeNode";
    final String nodeFilename = nodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + metadataExtension;
    final URI nodeArchiveURI = new URI(UUID.randomUUID().toString());
    final String nodeArchivePath = "https:/archive/location/TopNode/Corpusstructure/" + nodeFilename;
    final URL nodeArchiveURL = new URL(nodeArchivePath);
    final String nodeArchiveLocalPath = "file:/archive/location/TopNode/Corpusstructure/" + nodeFilename;
    final File nodeArchiveLocalFile = new File(URI.create(nodeArchiveLocalPath));
    final boolean isNodeProtected = Boolean.FALSE;

    final boolean keepUnlinkedFiles = Boolean.FALSE; //not used in this exporter
    final WorkspaceSubmissionType submissionType = WorkspaceSubmissionType.SUBMIT_WORKSPACE;
    final WorkspaceExportPhase exportPhase = WorkspaceExportPhase.TREE_EXPORT;

    final String expectedExceptionMessage = "Problems retrieving the corpus name path for node "
            + nodeArchiveURI;/*from w  w  w . jav a 2s  .co  m*/

    workspace.setTopNodeID(nodeWsID);
    workspace.setTopNodeArchiveURI(nodeArchiveURI);
    workspace.setTopNodeArchiveURL(nodeArchiveURL);

    checkLoggerInvocations(parentNodeWsID, nodeWsID);

    context.checking(new Expectations() {
        {

            oneOf(mockChildWsNode).isProtected();
            will(returnValue(isNodeProtected));

            allowing(mockChildWsNode).getArchiveURI();
            will(returnValue(nodeArchiveURI));

            oneOf(mockCorpusStructureProvider).getNode(nodeArchiveURI);
            will(returnValue(mockCorpusNode));
            oneOf(mockNodeResolver).getLocalFile(mockCorpusNode);
            will(returnValue(nodeArchiveLocalFile));

            oneOf(mockNodeUtil).isNodeMetadata(mockChildWsNode);
            will(returnValue(Boolean.TRUE));

            oneOf(mockExporterHelper).getNamePathToUseForThisExporter(mockChildWsNode, mockParentWsNode,
                    parentCorpusNamePathToClosestTopNode, Boolean.TRUE, generalNodeExporter.getClass());
            will(returnValue(null));
        }
    });

    try {
        generalNodeExporter.exportNode(workspace, mockParentWsNode, parentCorpusNamePathToClosestTopNode,
                mockChildWsNode, keepUnlinkedFiles, submissionType, exportPhase);
        fail("should have thrown exception");
    } catch (WorkspaceExportException ex) {
        assertEquals("Exception message different from expected", expectedExceptionMessage, ex.getMessage());
        assertEquals("Workspace ID different from expected", workspace.getWorkspaceID(), ex.getWorkspaceID());
        assertNull("Cause should be null", ex.getCause());
    }
}

From source file:nl.mpi.lamus.workspace.exporting.implementation.GeneralNodeExporterTest.java

@Test
public void exportProtectedNode() throws MalformedURLException, URISyntaxException, WorkspaceExportException {

    final int parentNodeWsID = 1;
    final String parentNodeName = "TopNode";
    final String metadataExtension = "cmdi";
    final String parentCorpusNamePathToClosestTopNode = ""; // top node

    final int nodeWsID = 10;
    final String nodeName = "SomeNode";
    final String nodeFilename = nodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + metadataExtension;
    final URI nodeArchiveURI = new URI(UUID.randomUUID().toString());
    final String nodeArchivePath = "https:/archive/location/TopNode/Corpusstructure/" + nodeFilename;
    final URL nodeArchiveURL = new URL(nodeArchivePath);
    final boolean isNodeProtected = Boolean.TRUE;

    final boolean keepUnlinkedFiles = Boolean.FALSE; //not used in this exporter
    final WorkspaceSubmissionType submissionType = WorkspaceSubmissionType.SUBMIT_WORKSPACE;
    final WorkspaceExportPhase exportPhase = WorkspaceExportPhase.TREE_EXPORT;

    workspace.setTopNodeID(nodeWsID);//from  w  w w.  j a  v a  2s .c  om
    workspace.setTopNodeArchiveURI(nodeArchiveURI);
    workspace.setTopNodeArchiveURL(nodeArchiveURL);

    checkLoggerInvocations(parentNodeWsID, nodeWsID);

    context.checking(new Expectations() {
        {

            oneOf(mockChildWsNode).isProtected();
            will(returnValue(isNodeProtected));
            //logger
            oneOf(mockChildWsNode).getWorkspaceNodeID();
            will(returnValue(nodeWsID));
        }
    });

    generalNodeExporter.exportNode(workspace, mockParentWsNode, parentCorpusNamePathToClosestTopNode,
            mockChildWsNode, keepUnlinkedFiles, submissionType, exportPhase);
}

From source file:nl.mpi.lamus.workspace.exporting.implementation.GeneralNodeExporterTest.java

@Test
public void exportNullWorkspace() throws MalformedURLException, URISyntaxException, WorkspaceExportException {

    final String metadataExtension = "cmdi";

    final String parentCorpusNamePathToClosestTopNode = ""; // top node

    final int nodeWsID = 10;
    final String nodeName = "SomeNode";
    final String nodeFilename = nodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + metadataExtension;
    final URI nodeArchiveURI = new URI(UUID.randomUUID().toString());
    final URL nodeArchiveURL = new URL("http:/archive/location/TopNode/Corpusstructure/" + nodeFilename);

    final boolean keepUnlinkedFiles = Boolean.FALSE; //not used in this exporter
    final WorkspaceSubmissionType submissionType = WorkspaceSubmissionType.SUBMIT_WORKSPACE;
    final WorkspaceExportPhase exportPhase = WorkspaceExportPhase.TREE_EXPORT;

    workspace.setTopNodeID(nodeWsID);/*from  w  ww.  j  av  a2  s. c  om*/
    workspace.setTopNodeArchiveURI(nodeArchiveURI);
    workspace.setTopNodeArchiveURL(nodeArchiveURL);

    try {
        generalNodeExporter.exportNode(null, mockParentWsNode, parentCorpusNamePathToClosestTopNode,
                mockChildWsNode, keepUnlinkedFiles, submissionType, exportPhase);
        fail("should have thrown exception");
    } catch (IllegalArgumentException ex) {
        String errorMessage = "Workspace not set";
        assertEquals("Message different from expected", errorMessage, ex.getMessage());
        assertNull("Cause should be null", ex.getCause());
    }
}

From source file:nl.mpi.lamus.workspace.exporting.implementation.GeneralNodeExporterTest.java

@Test
public void exportChangedMetadataNodeIOException() throws MalformedURLException, URISyntaxException,
        IOException, MetadataException, TransformerException, WorkspaceExportException {

    final String metadataExtension = "cmdi";

    final int parentNodeWsID = 1;
    final String parentCorpusNamePathToClosestTopNode = ""; // top node

    final int nodeWsID = 10;
    final String nodeName = "SomeNode";
    final String nodeFilename = nodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + metadataExtension;
    final URL nodeWsURL = new URL(
            "file:/workspace/" + workspace.getWorkspaceID() + File.separator + nodeFilename);
    final URI nodeArchiveURI = new URI(UUID.randomUUID().toString());
    final URL nodeArchiveURL = new URL("http:/archive/location/TopNode/Corpusstructure/" + nodeFilename);
    final String nodeArchiveLocalPath = "file:/archive/location/TopNode/Corpusstructure/" + nodeFilename;
    final File nodeArchiveLocalFile = new File(URI.create(nodeArchiveLocalPath));
    final boolean isNodeProtected = Boolean.FALSE;
    final String currentCorpusNamePathToClosestTopNode = "TopNode";

    final boolean keepUnlinkedFiles = Boolean.FALSE; //not used in this exporter
    final WorkspaceSubmissionType submissionType = WorkspaceSubmissionType.SUBMIT_WORKSPACE;
    final WorkspaceExportPhase exportPhase = WorkspaceExportPhase.TREE_EXPORT;

    workspace.setTopNodeID(nodeWsID);/*from   w  w  w  .ja  v a 2  s. c o m*/
    workspace.setTopNodeArchiveURI(nodeArchiveURI);
    workspace.setTopNodeArchiveURL(nodeArchiveURL);

    final String expectedErrorMessage = "Error getting Metadata Document for node " + nodeArchiveURI;
    final IOException expectedException = new IOException("some exception message");

    checkLoggerInvocations(parentNodeWsID, nodeWsID);

    context.checking(new Expectations() {
        {

            oneOf(mockChildWsNode).isProtected();
            will(returnValue(isNodeProtected));

            oneOf(mockChildWsNode).getArchiveURI();
            will(returnValue(nodeArchiveURI));
            oneOf(mockCorpusStructureProvider).getNode(nodeArchiveURI);
            will(returnValue(mockCorpusNode));
            oneOf(mockNodeResolver).getLocalFile(mockCorpusNode);
            will(returnValue(nodeArchiveLocalFile));

            oneOf(mockNodeUtil).isNodeMetadata(mockChildWsNode);
            will(returnValue(Boolean.TRUE));

            oneOf(mockExporterHelper).getNamePathToUseForThisExporter(mockChildWsNode, mockParentWsNode,
                    parentCorpusNamePathToClosestTopNode, Boolean.TRUE, generalNodeExporter.getClass());
            will(returnValue(currentCorpusNamePathToClosestTopNode));

            oneOf(mockWorkspaceTreeExporter).explore(workspace, mockChildWsNode,
                    currentCorpusNamePathToClosestTopNode, keepUnlinkedFiles, submissionType, exportPhase);

            oneOf(mockChildWsNode).getWorkspaceURL();
            will(returnValue(nodeWsURL));
            oneOf(mockMetadataAPI).getMetadataDocument(nodeWsURL);
            will(throwException(expectedException));
            //logger
            oneOf(mockChildWsNode).getArchiveURI();
            will(returnValue(nodeArchiveURI));

        }
    });

    try {
        generalNodeExporter.exportNode(workspace, mockParentWsNode, parentCorpusNamePathToClosestTopNode,
                mockChildWsNode, keepUnlinkedFiles, submissionType, exportPhase);
        fail("should have thrown exception");
    } catch (WorkspaceExportException ex) {
        assertEquals("Message different from expected", expectedErrorMessage, ex.getMessage());
        assertEquals("Workspace ID different from expected", workspace.getWorkspaceID(), ex.getWorkspaceID());
        assertEquals("Cause different from expected", expectedException, ex.getCause());
    }
}

From source file:nl.mpi.lamus.workspace.exporting.implementation.GeneralNodeExporterTest.java

@Test
public void exportChangedMetadataNodeMetadataException() throws MalformedURLException, URISyntaxException,
        IOException, MetadataException, TransformerException, WorkspaceExportException {

    final String metadataExtension = "cmdi";

    final int parentNodeWsID = 1;
    final String parentCorpusNamePathToClosestTopNode = ""; // top node

    final int nodeWsID = 10;
    final String nodeName = "SomeNode";
    final String nodeFilename = nodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + metadataExtension;
    final URL nodeWsURL = new URL(
            "file:/workspace/" + workspace.getWorkspaceID() + File.separator + nodeFilename);
    final URI nodeArchiveURI = new URI(UUID.randomUUID().toString());
    final URL nodeArchiveURL = new URL("http:/archive/location/TopNode/Corpusstructure/" + nodeFilename);
    final String nodeArchiveLocalPath = "file:/archive/location/TopNode/Corpusstructure/" + nodeFilename;
    final File nodeArchiveLocalFile = new File(URI.create(nodeArchiveLocalPath));
    final boolean isNodeProtected = Boolean.FALSE;
    final String currentCorpusNamePathToClosestTopNode = "TopNode";

    final boolean keepUnlinkedFiles = Boolean.FALSE; //not used in this exporter
    final WorkspaceSubmissionType submissionType = WorkspaceSubmissionType.SUBMIT_WORKSPACE;
    final WorkspaceExportPhase exportPhase = WorkspaceExportPhase.TREE_EXPORT;

    workspace.setTopNodeID(nodeWsID);/* w  ww  .j  a  v  a2  s. c om*/
    workspace.setTopNodeArchiveURI(nodeArchiveURI);
    workspace.setTopNodeArchiveURL(nodeArchiveURL);

    final String expectedErrorMessage = "Error getting Metadata Document for node " + nodeArchiveURI;
    final MetadataException expectedException = new MetadataException("some exception message");

    checkLoggerInvocations(parentNodeWsID, nodeWsID);

    context.checking(new Expectations() {
        {

            oneOf(mockChildWsNode).isProtected();
            will(returnValue(isNodeProtected));

            oneOf(mockChildWsNode).getArchiveURI();
            will(returnValue(nodeArchiveURI));
            oneOf(mockCorpusStructureProvider).getNode(nodeArchiveURI);
            will(returnValue(mockCorpusNode));
            oneOf(mockNodeResolver).getLocalFile(mockCorpusNode);
            will(returnValue(nodeArchiveLocalFile));

            oneOf(mockNodeUtil).isNodeMetadata(mockChildWsNode);
            will(returnValue(Boolean.TRUE));
            oneOf(mockExporterHelper).getNamePathToUseForThisExporter(mockChildWsNode, mockParentWsNode,
                    parentCorpusNamePathToClosestTopNode, Boolean.TRUE, generalNodeExporter.getClass());
            will(returnValue(currentCorpusNamePathToClosestTopNode));

            oneOf(mockWorkspaceTreeExporter).explore(workspace, mockChildWsNode,
                    currentCorpusNamePathToClosestTopNode, keepUnlinkedFiles, submissionType, exportPhase);

            oneOf(mockChildWsNode).getWorkspaceURL();
            will(returnValue(nodeWsURL));
            oneOf(mockMetadataAPI).getMetadataDocument(nodeWsURL);
            will(throwException(expectedException));
            //logger
            oneOf(mockChildWsNode).getArchiveURI();
            will(returnValue(nodeArchiveURI));
        }
    });

    try {
        generalNodeExporter.exportNode(workspace, mockParentWsNode, parentCorpusNamePathToClosestTopNode,
                mockChildWsNode, keepUnlinkedFiles, submissionType, exportPhase);
        fail("should have thrown exception");
    } catch (WorkspaceExportException ex) {
        assertEquals("Message different from expected", expectedErrorMessage, ex.getMessage());
        assertEquals("Workspace ID different from expected", workspace.getWorkspaceID(), ex.getWorkspaceID());
        assertEquals("Cause different from expected", expectedException, ex.getCause());
    }
}

From source file:nl.mpi.lamus.workspace.exporting.implementation.GeneralNodeExporterTest.java

@Test
public void exportChangedMetadataNodeTransformerException() throws MalformedURLException, URISyntaxException,
        IOException, MetadataException, TransformerException, WorkspaceExportException {

    final String metadataExtension = "cmdi";

    final int parentNodeWsID = 1;
    final String parentCorpusNamePathToClosestTopNode = "";

    final int nodeWsID = 10;
    final String nodeName = "SomeNode";
    final String nodeFilename = nodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + metadataExtension;
    final URL nodeWsURL = new URL(
            "file:/workspace/" + workspace.getWorkspaceID() + File.separator + nodeFilename);
    final URI nodeArchiveURI = new URI(UUID.randomUUID().toString());
    final URL nodeArchiveURL = new URL("http:/archive/location/TopNode/Corpusstructure/" + nodeFilename);
    final String nodeArchiveLocalPath = "file:/archive/location/TopNode/Corpusstructure/" + nodeFilename;
    final File nodeArchiveLocalFile = new File(URI.create(nodeArchiveLocalPath));
    final boolean isNodeProtected = Boolean.FALSE;
    final String currentCorpusNamePathToClosestTopNode = "TopNode";

    final boolean keepUnlinkedFiles = Boolean.FALSE; //not used in this exporter
    final WorkspaceSubmissionType submissionType = WorkspaceSubmissionType.SUBMIT_WORKSPACE;
    final WorkspaceExportPhase exportPhase = WorkspaceExportPhase.TREE_EXPORT;

    workspace.setTopNodeID(nodeWsID);/*from  w  w w .java2s  .c om*/
    workspace.setTopNodeArchiveURI(nodeArchiveURI);
    workspace.setTopNodeArchiveURL(nodeArchiveURL);

    final String expectedErrorMessage = "Error writing file for node " + nodeArchiveURI;
    final TransformerException expectedException = new TransformerException("some exception message");

    checkLoggerInvocations(parentNodeWsID, nodeWsID);

    context.checking(new Expectations() {
        {

            oneOf(mockChildWsNode).isProtected();
            will(returnValue(isNodeProtected));

            oneOf(mockChildWsNode).getArchiveURI();
            will(returnValue(nodeArchiveURI));
            oneOf(mockCorpusStructureProvider).getNode(nodeArchiveURI);
            will(returnValue(mockCorpusNode));
            oneOf(mockNodeResolver).getLocalFile(mockCorpusNode);
            will(returnValue(nodeArchiveLocalFile));

            oneOf(mockNodeUtil).isNodeMetadata(mockChildWsNode);
            will(returnValue(Boolean.TRUE));

            oneOf(mockExporterHelper).getNamePathToUseForThisExporter(mockChildWsNode, mockParentWsNode,
                    parentCorpusNamePathToClosestTopNode, Boolean.TRUE, generalNodeExporter.getClass());
            will(returnValue(currentCorpusNamePathToClosestTopNode));

            oneOf(mockWorkspaceTreeExporter).explore(workspace, mockChildWsNode,
                    currentCorpusNamePathToClosestTopNode, keepUnlinkedFiles, submissionType, exportPhase);

            oneOf(mockChildWsNode).getWorkspaceURL();
            will(returnValue(nodeWsURL));
            oneOf(mockMetadataAPI).getMetadataDocument(nodeWsURL);
            will(returnValue(mockChildCmdiDocument));

            oneOf(mockWorkspaceFileHandler).getStreamResultForNodeFile(nodeArchiveLocalFile);
            will(returnValue(mockStreamResult));

            oneOf(mockMetadataAPI).writeMetadataDocument(mockChildCmdiDocument, mockStreamResult);
            will(throwException(expectedException));
            //logger
            oneOf(mockChildWsNode).getArchiveURI();
            will(returnValue(nodeArchiveURI));
        }
    });

    try {
        generalNodeExporter.exportNode(workspace, mockParentWsNode, parentCorpusNamePathToClosestTopNode,
                mockChildWsNode, keepUnlinkedFiles, submissionType, exportPhase);
        fail("should have thrown exception");
    } catch (WorkspaceExportException ex) {
        assertEquals("Message different from expected", expectedErrorMessage, ex.getMessage());
        assertEquals("Workspace ID different from expected", workspace.getWorkspaceID(), ex.getWorkspaceID());
        assertEquals("Cause different from expected", expectedException, ex.getCause());
    }
}

From source file:nl.mpi.lamus.workspace.exporting.implementation.GeneralNodeExporterTest.java

@Test
public void exportResourceNode() throws MalformedURLException, URISyntaxException, WorkspaceExportException,
        IOException, MetadataException, TransformerException {

    final int parentNodeWsID = 1;
    final String parentNodeName = "ParentNode";
    final String metadataExtension = "cmdi";
    final String parentFilename = parentNodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + metadataExtension;
    final URL parentNodeWsURL = new URL(
            "file:/workspace" + workspace.getWorkspaceID() + File.separator + parentFilename);
    final URI parentNodeArchiveURI = new URI(UUID.randomUUID().toString());
    final File parentNodeWsFile = new File(parentNodeWsURL.getPath());
    final String parentNodeArchiveLocalPath = "file:/archive/location/TopNode/SomeNode/Metadata/"
            + parentFilename;/*from  w ww  .  jav a2 s  . c o m*/
    final URL parentNodeArchiveLocalUrl = new URL(parentNodeArchiveLocalPath);
    final File parentNodeArchiveLocalFile = new File(URI.create(parentNodeArchiveLocalPath));
    final String parentCorpusNamePathToClosestTopNode = "TopNode/SomeNode";

    final int nodeWsID = 10;
    final String nodeName = "SomeResource";
    final String pdfExtension = "pdf";
    final String nodeFilename = nodeName + FilenameUtils.EXTENSION_SEPARATOR_STR + pdfExtension;
    final URI nodeArchiveURI = new URI(UUID.randomUUID().toString());
    final URL nodeArchiveURL = new URL("http:/archive/location/TopNode/SomeNode/Annotations/" + nodeFilename);
    final String nodeArchiveLocalPath = "file:/archive/location/TopNode/SomeNode/Annotations/" + nodeFilename;
    final File nodeArchiveLocalFile = new File(URI.create(nodeArchiveLocalPath));
    final boolean isNodeProtected = Boolean.FALSE;

    final boolean keepUnlinkedFiles = Boolean.FALSE; //not used in this exporter
    final WorkspaceSubmissionType submissionType = WorkspaceSubmissionType.SUBMIT_WORKSPACE;
    final WorkspaceExportPhase exportPhase = WorkspaceExportPhase.TREE_EXPORT;

    final String nodePathRelativeToParent = "../Annotations/" + nodeFilename;

    workspace.setTopNodeID(nodeWsID);
    workspace.setTopNodeArchiveURI(nodeArchiveURI);
    workspace.setTopNodeArchiveURL(nodeArchiveURL);

    checkLoggerInvocations(parentNodeWsID, nodeWsID);

    context.checking(new Expectations() {
        {

            oneOf(mockChildWsNode).isProtected();
            will(returnValue(isNodeProtected));

            oneOf(mockChildWsNode).getArchiveURI();
            will(returnValue(nodeArchiveURI));
            oneOf(mockCorpusStructureProvider).getNode(nodeArchiveURI);
            will(returnValue(mockCorpusNode));
            oneOf(mockNodeResolver).getLocalFile(mockCorpusNode);
            will(returnValue(nodeArchiveLocalFile));

            oneOf(mockNodeUtil).isNodeMetadata(mockChildWsNode);
            will(returnValue(Boolean.FALSE));
        }
    });

    checkParentReferenceUpdateInvocations(nodeArchiveURI, parentNodeArchiveURI, parentNodeWsURL,
            parentNodeWsFile, parentNodeArchiveLocalUrl, parentNodeArchiveLocalFile, nodeArchiveLocalFile,
            nodePathRelativeToParent, null);

    generalNodeExporter.exportNode(workspace, mockParentWsNode, parentCorpusNamePathToClosestTopNode,
            mockChildWsNode, keepUnlinkedFiles, submissionType, exportPhase);
}