mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
Merged 5.1.N (5.1.1) to HEAD (5.1)
119696 rmunteanu: 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/HEAD/root@123602 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -18,8 +18,10 @@
|
||||
*/
|
||||
package org.alfresco.repo.content.metadata;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.Serializable;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
@@ -32,11 +34,13 @@ import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.repo.content.ContentMinimalContextTestSuite;
|
||||
import org.alfresco.repo.content.MimetypeMap;
|
||||
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.transform.AbstractContentTransformerTest;
|
||||
import org.alfresco.service.cmr.repository.ContentReader;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.util.TempFileProvider;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
||||
/**
|
||||
@@ -270,6 +274,45 @@ public class MappingMetadataExtracterTest extends TestCase
|
||||
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:
|
||||
* <pre>
|
||||
@@ -388,4 +431,27 @@ public class MappingMetadataExtracterTest extends TestCase
|
||||
private static final JunkValue INSTANCE = new JunkValue();
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user