mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-15 15:02:20 +00:00
Merged 5.0.N (5.0.4) to 5.1.N (5.1.1)
119612 amorarasu: Merged V4.2-BUG-FIX (4.2.6) to 5.0.N (5.0.4) 119559 ragauss: MNT-13919: Check for Metadata Embed Support is Incorrect - Added unit test git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.1.N/root@119696 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -18,8 +18,10 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.repo.content.metadata;
|
package org.alfresco.repo.content.metadata;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -32,11 +34,13 @@ import org.alfresco.error.AlfrescoRuntimeException;
|
|||||||
import org.alfresco.repo.content.ContentMinimalContextTestSuite;
|
import org.alfresco.repo.content.ContentMinimalContextTestSuite;
|
||||||
import org.alfresco.repo.content.MimetypeMap;
|
import org.alfresco.repo.content.MimetypeMap;
|
||||||
import org.alfresco.repo.content.filestore.FileContentReader;
|
import org.alfresco.repo.content.filestore.FileContentReader;
|
||||||
|
import org.alfresco.repo.content.filestore.FileContentWriter;
|
||||||
import org.alfresco.repo.content.metadata.MetadataExtracter.OverwritePolicy;
|
import org.alfresco.repo.content.metadata.MetadataExtracter.OverwritePolicy;
|
||||||
import org.alfresco.repo.content.transform.AbstractContentTransformerTest;
|
import org.alfresco.repo.content.transform.AbstractContentTransformerTest;
|
||||||
import org.alfresco.service.cmr.repository.ContentReader;
|
import org.alfresco.service.cmr.repository.ContentReader;
|
||||||
import org.alfresco.service.namespace.NamespaceService;
|
import org.alfresco.service.namespace.NamespaceService;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
|
import org.alfresco.util.TempFileProvider;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -270,6 +274,45 @@ public class MappingMetadataExtracterTest extends TestCase
|
|||||||
assertEquals(null, destination.get(DummyMappingMetadataExtracter.QNAME_B));
|
assertEquals(null, destination.get(DummyMappingMetadataExtracter.QNAME_B));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see <a href="https://issues.alfresco.com/jira/browse/MNT-13919">MNT-13919</a>
|
||||||
|
*/
|
||||||
|
public void testEmbedSupportDifferentFromExtract()
|
||||||
|
{
|
||||||
|
DummyMetadataEmbedder embedder = new DummyMetadataEmbedder();
|
||||||
|
Map<QName, Serializable> propertiesToEmbed = new HashMap<QName, Serializable>();
|
||||||
|
|
||||||
|
// make a writer for the target of the embed, we won't actually use it
|
||||||
|
File targetFile = TempFileProvider.createTempFile(
|
||||||
|
getClass().getSimpleName() + "_" + getName() + "_embed",
|
||||||
|
".txt");
|
||||||
|
FileContentWriter writer = new FileContentWriter(targetFile);
|
||||||
|
writer.setMimetype(DummyMetadataEmbedder.MIMETYPE_EMBEDDABLE);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
embedder.embed(propertiesToEmbed, reader, writer);
|
||||||
|
}
|
||||||
|
catch (AlfrescoRuntimeException e)
|
||||||
|
{
|
||||||
|
if (e.getMessage().contains("Metadata extracter does not support embedding mimetype"))
|
||||||
|
{
|
||||||
|
fail("Embed mimetype should not be tied to extracter's extract mimetypes");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fail(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (targetFile != null && targetFile.exists())
|
||||||
|
{
|
||||||
|
targetFile.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A spoofed-up extracter that extracts the following:
|
* A spoofed-up extracter that extracts the following:
|
||||||
* <pre>
|
* <pre>
|
||||||
@@ -388,4 +431,27 @@ public class MappingMetadataExtracterTest extends TestCase
|
|||||||
private static final JunkValue INSTANCE = new JunkValue();
|
private static final JunkValue INSTANCE = new JunkValue();
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mock metadata embedder which has a set of supported embed mimetypes different than
|
||||||
|
* the supported extract mimetypes.
|
||||||
|
*/
|
||||||
|
private class DummyMetadataEmbedder extends AbstractMappingMetadataExtracter
|
||||||
|
{
|
||||||
|
private static final String MIMETYPE_EXTRACTABLE = "extractableMimetype";
|
||||||
|
private static final String MIMETYPE_EMBEDDABLE = "embeddableMimetype";
|
||||||
|
|
||||||
|
public DummyMetadataEmbedder()
|
||||||
|
{
|
||||||
|
super(Collections.singleton(MIMETYPE_EXTRACTABLE),
|
||||||
|
Collections.singleton(MIMETYPE_EMBEDDABLE));
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Map<String, Serializable> extractRaw(ContentReader reader) throws Throwable
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,6 @@
|
|||||||
|
#
|
||||||
|
# Dummy - default mapping
|
||||||
|
#
|
||||||
|
# Namespaces
|
||||||
|
namespace.prefix.cm=http://www.alfresco.org/model/content/1.0
|
||||||
|
namespace.prefix.dum=http://DummyMetadataEmbedder
|
Reference in New Issue
Block a user