package ecologylab.bigsemantics.metadata;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import ecologylab.bigsemantics.metadata.builtins.Document;
import ecologylab.net.ParsedURL;
import ecologylab.serialization.SIMPLTranslationException;
import ecologylab.serialization.SimplTypesScope;
import ecologylab.serialization.formatenums.StringFormat;
/**
*
* @author colton
*/
public class DeserializationTest
{
MetadataComparator comparator = new MetadataComparator();
/* Not required to demonstrate deserialization error
@Test
public void validateMetadataDeserializationXML()
throws SIMPLTranslationException, InterruptedException
{
ParsedURL purl = ParsedURL
.getAbsolute("http://news.blogs.cnn.com/2011/04/14/predator-"
+ "dinosaurs-may-have-been-night-hunters/?hpt=C2");
MetadataTestHelper m = new MetadataTestHelper();
Document doc = m.getMetadata(purl);
assertNotNull(doc.getClippings());
String xml = SimplTypesScope.serialize(doc, StringFormat.XML)
.toString();
assertNotNull(xml);
assertTrue(xml.length() > 0);
MetadataDeserializationHookStrategy strategy = new MetadataDeserializationHookStrategy(
MetadataTestHelper.semanticSessionScope);
SimplTypesScope metadataTScope = MetadataTestHelper.metadataTScope;
Document newDoc = (Document) metadataTScope.deserialize(xml, strategy,
StringFormat.XML);
assertNotNull(doc.getClippings());
assertTrue(comparator.compare(doc, newDoc) == 0);
}
@Test
public void validateMetadataDeserialiazationJSON()
throws SIMPLTranslationException, InterruptedException
{
ParsedURL purl = ParsedURL
.getAbsolute("http://news.blogs.cnn.com/2011/04/14/predator-"
+ "dinosaurs-may-have-been-night-hunters/?hpt=C2");
MetadataTestHelper m = new MetadataTestHelper();
Document doc = m.getMetadata(purl);
assertNotNull(doc.getClippings());
String json = SimplTypesScope.serialize(doc, StringFormat.JSON)
.toString();
assertNotNull(json);
assertTrue(json.length() > 0);
MetadataDeserializationHookStrategy strategy = new MetadataDeserializationHookStrategy(
MetadataTestHelper.semanticSessionScope);
SimplTypesScope metadataTScope = MetadataTestHelper.metadataTScope;
Document newDoc = (Document) metadataTScope.deserialize(json, strategy,
StringFormat.JSON);
assertNotNull(doc.getClippings());
assertTrue(comparator.compare(doc, newDoc) == 0);
}*/
@Test
public void validateMetadataDeserializationPresetXML()
throws SIMPLTranslationException, InterruptedException
{
String xml = "<compound_document mm_name=\"compound_document\" location=\""
+ "http://news.blogs.cnn.com/2011/04/14/predator-dinosaurs-may-have-been-night-hunters"
+ "/?hpt=C2\" download_status=\"DOWNLOAD_DONE\" page_structure=\"content_page\"><title>"
+ "Predator dinosaurs may have been night-hunters </title><additional_locations>"
+ "<location>http://news.blogs.cnn.com/2011/04/14/predator-dinosaurs-may-have-been-night-"
+ "hunters/?hpt=C2</location></additional_locations><clippings><clipping mm_name=\""
+ "clippings\"></clipping></clippings><root_document mm_name=\"root_document\" "
+ "download_status=\"UNPROCESSED\"></root_document></compound_document>";
MetadataDeserializationHookStrategy strategy = new MetadataDeserializationHookStrategy(
MetadataTestHelper.semanticSessionScope);
SimplTypesScope metadataTScope = MetadataTestHelper.metadataTScope;
Document doc = (Document) metadataTScope.deserialize(xml, strategy,
StringFormat.XML);
assertNotNull(doc.getClippings());
}
//@Test
public void validateMetadataDeserializationPresetJSON()
throws SIMPLTranslationException, InterruptedException
{
String json = "{\"compound_document\": {\"mm_name\": \"compound_document\",\"location\":"
+ " \"http://www.flickr.com/search/?q=summer&z=m\",\"download_status\": "
+ "\"DOWNLOAD_DONE\",\"title\": \"Flickr Search: summer\",\"additional_locations\":"
+ " {\"location\": [\"http://www.flickr.com/search/?q=summer&z=m\"]},\"clippings\": "
+ "[{\"clipping\": {\"mm_name\": \"clippings\"}}],\"root_document\": {\"mm_name\": "
+ "\"root_document\",\"download_status\": \"UNPROCESSED\"}}}";
MetadataDeserializationHookStrategy strategy = new MetadataDeserializationHookStrategy(
MetadataTestHelper.semanticSessionScope);
SimplTypesScope metadataTScope = MetadataTestHelper.metadataTScope;
Document doc = (Document) metadataTScope.deserialize(json, strategy,
StringFormat.JSON);
assertNotNull(doc.getClippings());
}
}