package org.openprovenance.prov.json; import java.io.File; import junit.framework.TestCase; import org.openprovenance.prov.model.Document; import org.openprovenance.prov.model.DocumentEquality; import org.openprovenance.prov.xml.ProvFactory; import org.openprovenance.prov.xml.ProvSerialiser; public class RoundTripFromJsonTest extends TestCase { static ProvFactory pFactory=ProvFactory.getFactory(); final Converter convert=new Converter(pFactory); public RoundTripFromJsonTest(String name) { super(name); } public void loadFromJsonSaveAndReload(String file, Boolean compare) throws Throwable { System.out.println("-------------- File: " + file); DocumentEquality de = new DocumentEquality(true,null); Document doc1 = convert.readDocument("src/test/resources/" + file); file = file.replace('/', '_'); convert.writeDocument(doc1, "target/" + file); Document doc2 = convert.readDocument("target/" + file); boolean result = de.check(doc1, doc2); if (!result && compare) { System.out.println(doc1); System.out.println("------------------"); System.out.println(doc2); } if (compare) { assertTrue(result); } System.out.println("result is " + result); ProvSerialiser.getThreadProvSerialiser() .serialiseDocument(new File("target/" + file + "-2" + ".xml"), doc2, true); ProvSerialiser.getThreadProvSerialiser() .serialiseDocument(new File("target/" + file + ".xml"), doc1, true); } private void testIssue(String issueName) throws Throwable { loadFromJsonSaveAndReload("issues/" + issueName + ".json", true); } public void testBundles() throws Throwable { testIssue("issue96"); testIssue("issue96-b"); } }