();
+
+ // 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:
*
@@ -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 extractRaw(ContentReader reader) throws Throwable
+ {
+ return null;
+ }
+ }
}
diff --git a/source/test-resources/alfresco/metadata/MappingMetadataExtracterTest-DummyMetadataEmbedder.properties b/source/test-resources/alfresco/metadata/MappingMetadataExtracterTest-DummyMetadataEmbedder.properties
new file mode 100644
index 0000000000..d17bdfbb76
--- /dev/null
+++ b/source/test-resources/alfresco/metadata/MappingMetadataExtracterTest-DummyMetadataEmbedder.properties
@@ -0,0 +1,6 @@
+#
+# Dummy - default mapping
+#
+# Namespaces
+namespace.prefix.cm=http://www.alfresco.org/model/content/1.0
+namespace.prefix.dum=http://DummyMetadataEmbedder