package com.constellio.model.services.contents;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.data.MapEntry.entry;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
import com.constellio.model.entities.records.ParsedContent;
public class ParsedContentConverterTest {
@Test
public void whenWritingThenReadingParsedContentThenSame()
throws Exception {
String content = "]]></xml> test\n <![CDATA[";
String lang = "elvish";
String mime = "oldText";
long length = 666;
Map<String, List<String>> styles = new HashMap<>();
styles.put("style1\n", asList("value1=", "value2\nvalue2b"));
styles.put("style2\n\r", asList("value3:", "value4\""));
Map<String, Object> properties = new HashMap<>();
properties.put("k1\n", "v1=");
properties.put("k2\n\r", "v2");
ParsedContentConverter converter = new ParsedContentConverter();
ParsedContent parsedContent = new ParsedContent(content, lang, mime, length, properties, styles);
String parsedContentAsString = converter.convertToString(parsedContent);
ParsedContent parsedContent2 = converter.convertToParsedContent(parsedContentAsString);
String parsedContentAsString2 = converter.convertToString(parsedContent2);
assertThat(parsedContent2.getLanguage()).isEqualTo(lang);
assertThat(parsedContent2.getMimeType()).isEqualTo(mime);
assertThat(parsedContent2.getLength()).isEqualTo(length);
assertThat(parsedContent2.getParsedContent()).isEqualTo(content);
assertThat(parsedContent2.getProperties()).containsOnly(
entry("k1\n", "v1="),
entry("k2\n\r", "v2"));
assertThat(parsedContent2.getStyles()).containsOnly(
entry("style1\n", asList("value1=", "value2\nvalue2b")),
entry("style2\n\r", asList("value3:", "value4\"")));
assertThat(parsedContentAsString2).isEqualTo(parsedContentAsString);
}
}