package won.protocol.message; import org.apache.jena.query.Dataset; import org.apache.jena.sparql.util.IsoMatcher; import org.apache.jena.riot.Lang; import org.junit.Assert; import org.junit.Test; import won.protocol.util.RdfUtils; /** * User: ypanchenko * Date: 05.08.2014 */ public class EncodeDecodeMessageTest { private static final Lang LANG = Lang.JSONLD; //private static final Lang LANG = Lang.TRIG; private static final String RESOURCE_DIR = "/need-lifecycle_with_message_02adj/"; private static final String RESOURCE_FILE = RESOURCE_DIR + "01_create_need/01_OA_to_WN1-without-sig.trig"; private static final String[] RESOURCE_FILES_WITHOUT_SIG = new String[] { RESOURCE_DIR + "01_create_need/01_OA_to_WN1-without-sig.trig", RESOURCE_DIR + "02_connect/01_OA_to_WN1-without-sig.trig", RESOURCE_DIR + "03_receive_connect/01_WN2_to_WN1-without-sig.trig", RESOURCE_DIR + "04_deactivate_(by_owner)/01_WN2_to_WN1-without-sig.trig" }; @Test public void testEncodeDecodeOneMessage() throws Exception { Dataset msgDatasetIn = Utils.createTestDataset(RESOURCE_FILE); performTest(msgDatasetIn); } @Test public void testEncodeDecodeAllMessagesWithoutSignature() throws Exception { for (String inResource : RESOURCE_FILES_WITHOUT_SIG) { Dataset msgDatasetIn = Utils.createTestDataset(inResource); performTest(msgDatasetIn); } } private void performTest(final Dataset msgDatasetIn) { WonMessage wonMessageIn = WonMessageDecoder.decodeFromDataset(msgDatasetIn); String encoded = WonMessageEncoder.encode(wonMessageIn, LANG); // for debugging System.out.println(encoded); System.out.println(); WonMessage wonMessageOut = WonMessageDecoder.decode(LANG, encoded); Dataset msgDatasetOut = WonMessageEncoder.encodeAsDataset(wonMessageOut); // for debugging System.out.println(RdfUtils.writeDatasetToString(msgDatasetOut, Lang.TRIG)); Assert.assertTrue(IsoMatcher.isomorphic(msgDatasetIn.asDatasetGraph(), msgDatasetOut.asDatasetGraph())); } }