Package com.google.refine.tests.rdf

Source Code of com.google.refine.tests.rdf.RdfSchemaSerializationTest

package com.google.refine.tests.rdf;

import java.io.StringWriter;
import java.util.Properties;

import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.map.ObjectMapper;
import org.json.JSONObject;
import org.json.JSONWriter;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import com.google.refine.util.ParsingUtilities;
import com.google.refine.rdf.RdfSchema;

import static org.testng.Assert.*;

public class RdfSchemaSerializationTest {

  private RdfSchema schema;
  private String json;
 
  @BeforeClass
  public void init() throws Exception{
    json = "{\"baseUri\":\"http://data.bis.gov.uk/data/organogram/2010-08-26/\",\"prefixes\":[],\"rootNodes\":[{\"nodeType\":\"cell-as-resource\",\"isRowNumberCell\":false,\"expression\":\"'http://reference.data.gov.uk/id/department/bis/post/' + value\",\"columnName\":\"Post unique reference\",\"rdfTypes\":[{\"uri\":\"http://reference.data.gov.uk/def/central-government/CivilServicePost\",\"curie\":\"gov:CivilServicePost\"}],\"links\":[{\"uri\":\"http://reference.data.gov.uk/def/central-government/heldBy\",\"curie\":\"http://reference.data.gov.uk/def/central-government/heldBy\",\"target\":{\"nodeType\":\"cell-as-resource\",\"isRowNumberCell\":true,\"expression\":\"('#person' + value).urlify()\",\"rdfTypes\":[{\"uri\":\"http://xmlns.com/foaf/0.1/Person\",\"curie\":\"foaf:Person\"}],\"links\":[{\"uri\":\"http://xmlns.com/foaf/0.1/name\",\"curie\":\"foaf:name\",\"target\":{\"nodeType\":\"cell-as-literal\",\"expression\":\"value\",\"isRowNumberCell\":false,\"columnName\":\"Name\"}},{\"uri\":\"http://xmlns.com/foaf/0.1/mbox\",\"curie\":\"foaf:mbox\",\"target\":{\"nodeType\":\"cell-as-resource\",\"isRowNumberCell\":false,\"expression\":\"'mailto:' + value\",\"columnName\":\"Contact e-mail\",\"rdfTypes\":[],\"links\":[]}}]}},{\"uri\":\"http://www.w3.org/2000/01/rdf-schema#label\",\"curie\":\"rdfs:label\",\"target\":{\"nodeType\":\"cell-as-literal\",\"expression\":\"value\",\"isRowNumberCell\":false,\"lang\":\"en\",\"columnName\":\"Job Title\"}},{\"uri\":\"http://reference.data.gov.uk/def/central-government/postIn\",\"curie\":\"http://reference.data.gov.uk/def/central-government/postIn\",\"target\":{\"nodeType\":\"cell-as-resource\",\"isRowNumberCell\":false,\"expression\":\"value.urlify()\",\"columnName\":\"Unit\",\"rdfTypes\":[],\"links\":[{\"uri\":\"http://reference.data.gov.uk/def/central-government/hasPost\",\"curie\":\"http://reference.data.gov.uk/def/central-government/hasPost\",\"target\":{\"nodeType\":\"cell-as-resource\",\"isRowNumberCell\":false,\"expression\":\"'http://reference.data.gov.uk/id/department/bis/post/' + value\",\"columnName\":\"Post unique reference\",\"rdfTypes\":[],\"links\":[]}}]}}]}]}";
//    json = "{\"baseUri\":\"http://data.bis.gov.uk/data/organogram/2010-08-26/\", \"rootNodes\":[{\"nodeType\":\"cell-as-resource\",\"expression\":\"'http'\",\"links\":[],\"rdfTypes\":[]}]}";
    JSONObject o = ParsingUtilities.evaluateJsonStringToObject(json);
    schema = RdfSchema.reconstruct(o);
  }
 
  @Test(groups={"rdf-schema-test"})
  public void testSerialization() throws Exception{
    StringWriter sw = new StringWriter();
    JSONWriter writer = new JSONWriter(sw);
    schema.write(writer, new Properties());
   
    sw.flush();
    testJsonEquivalence(sw.toString(), json);
  }
 
  void testJsonEquivalence(String actual, String expected)throws Exception{
    ObjectMapper mapper = new ObjectMapper();
    JsonFactory factory = mapper.getJsonFactory();
    JsonParser jp = factory.createJsonParser(actual);
    JsonNode actualObj = mapper.readTree(jp);
   
    jp = factory.createJsonParser(expected);
    JsonNode  expectedObj = mapper.readTree(jp);
    assertEquals(actualObj, expectedObj);
  }
}
TOP

Related Classes of com.google.refine.tests.rdf.RdfSchemaSerializationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.