package org.nuxeo.ecm.core.io.transform; import java.io.File; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; import org.apache.commons.io.FileUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.nuxeo.ecm.core.api.DocumentModel; import org.nuxeo.ecm.core.api.DocumentModelList; import org.nuxeo.ecm.core.test.CoreFeature; import org.nuxeo.ecm.core.test.TransactionalFeature; import org.nuxeo.runtime.test.runner.Features; import org.nuxeo.runtime.test.runner.FeaturesRunner; import org.nuxeo.runtime.test.runner.LocalDeploy; @RunWith(FeaturesRunner.class) @Features({ TransactionalFeature.class, CoreFeature.class }) @LocalDeploy({ "org.nuxeo.ecm.core.io.test:OSGI-INF/export-docTypes.xml" }) public class ExportAndTransformTest extends BaseExport { @Test public void testExportWithTransform() throws Exception { DocumentModel root = createSomethingToExport(session); DocumentModelList versions = session.query("select * from Document where ecm:isCheckedInVersion = 1"); assertEquals(2, versions.size()); File out = getExportDirectory(); try { runExport(root, out, skipBlobs); StringBuffer sb = new StringBuffer(); dump(sb, out); String listing = sb.toString(); // check file exported assertTrue(listing.contains("ws1" + File.separator + "folder" + File.separator + "file" + File.separator + "document.xml")); // check version exported assertTrue(listing.contains("ws1" + File.separator + "folder" + File.separator + "file" + File.separator + "__versions__" + File.separator + "1.0" + File.separator + "document.xml")); // check invoice exported assertTrue(listing.contains("ws1" + File.separator + "invoice" + File.separator + "document.xml")); String xml = FileUtils.readFileToString(new File(out, "ws1" + File.separator + "invoice" + File.separator + "document.xml")); assertTrue(xml.contains("<type>File</type>")); assertTrue(xml.contains("<facet>Invoice</facet>")); // check schema rename assertTrue(xml.contains("name=\"invoiceNew\">")); // check field translation assertTrue(xml.contains("<iv:A>")); assertTrue(xml.contains("<iv:B>XYZ")); // check schema deleted assertFalse(xml.contains("deprecated")); // check new Schena assertTrue(xml.contains("<schema name=\"new\"")); assertTrue(xml.contains("<Y>foo</Y>")); // check lock info assertTrue(xml.contains("<lockInfo")); assertTrue(xml.contains("<owner>Administrator</owner>")); } finally { FileUtils.deleteQuietly(out); } } }