package com.constellio.model.services.records.extractions;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.XMLOutputter;
import org.junit.Test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import static org.assertj.core.api.Assertions.assertThat;
import com.constellio.sdk.tests.ConstellioTest;
/**
* Created by Majid on 2016-03-29.
*/
public class DefaulatMetadataPopulatorTest extends ConstellioTest {
@Test
public void whenSavingRegexMetadataPopulatorIntoXMLAndLoadingItBackThenTheyAreEqual()
throws Exception {
MetadataPopulatorPersistenceManager metadataPopulatorXMLSerializer = new DefaultMetadataPopulatorPersistenceManager();
DefaultMetadataPopulator metadataPopulator = new DefaultMetadataPopulator(
new RegexExtractor("regex pattern", false, "toReplaceValue"), new MetadataToText("test"));
XMLOutputter converter = new XMLOutputter();
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
converter.output(metadataPopulatorXMLSerializer.toXml(metadataPopulator), buffer);
String xml = new String(buffer.toByteArray());
ByteArrayInputStream inputStream = new ByteArrayInputStream(xml.getBytes());
//parsing xml as we do in com.constellio.model.services.schemas.xml.MetadataSchemaXMLWriter2
SAXBuilder saxBuilder = new SAXBuilder();
Document document = saxBuilder.build(inputStream);
Element element = document.getRootElement();
Element populateConfigsElement = new Element("populateConfigs");
element.detach();
populateConfigsElement.addContent(element);
MetadataPopulator returnedObject = new DefaultMetadataPopulatorPersistenceManager().fromXML(element);
assertThat(returnedObject).isEqualTo(metadataPopulator);
}
}