Package com.google.refine.tests.rdf.exporters

Source Code of com.google.refine.tests.rdf.exporters.RdfExporterPaymentDataTest

package com.google.refine.tests.rdf.exporters;

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;

import java.io.InputStream;
import java.util.Properties;

import org.openrdf.repository.Repository;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.RepositoryException;
import org.openrdf.repository.sail.SailRepository;
import org.openrdf.repository.util.RepositoryUtil;
import org.openrdf.rio.RDFFormat;
import org.openrdf.sail.memory.MemoryStore;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import com.google.refine.ProjectMetadata;
import com.google.refine.browsing.Engine;
import com.google.refine.expr.ExpressionUtils;
import com.google.refine.grel.ControlFunctionRegistry;
import com.google.refine.importers.TsvCsvImporter;
import com.google.refine.model.Project;
import com.google.refine.rdf.RdfSchema;
import com.google.refine.rdf.app.ApplicationContext;
import com.google.refine.rdf.exporters.RdfExporter;
import com.google.refine.rdf.expr.RdfBinder;
import com.google.refine.rdf.expr.functions.strings.Urlify;
import com.google.refine.util.ParsingUtilities;

public class RdfExporterPaymentDataTest {

  private Project project ;
  private Repository model;
  private Repository expected;
  RdfExporter exporter;
  Engine engine;
 
  private String json = "{\"baseUri\":\"http://www.rbwm.gov.uk/public/finance_supplier_payments_2010_q2#\",\"rootNodes\":[{\"nodeType\":\"resource\",\"value\":\"http://www.rbwm.gov.uk/public/finance_supplier_payments_2010_q2\",\"rdfTypes\":[],\"links\":[{\"uri\":\"http://purl.org/linked-data/cube#slice\",\"curie\":\"http://purl.org/linked-data/cube#slice\",\"target\":{\"nodeType\":\"cell-as-resource\",\"expression\":\"'http://www.rbwm.gov.uk/id/transaction/' + value\",\"columnName\":\"TransNo\",\"isRowNumberCell\":false,\"rdfTypes\":[{\"uri\":\"http://reference.data.gov.uk/def/payment#Payment\",\"curie\":\"http://reference.data.gov.uk/def/payment#Payment\"},{\"uri\":\"http://purl.org/linked-data/cube#Slice\",\"curie\":\"http://purl.org/linked-data/cube#Slice\"}],\"links\":[{\"uri\":\"http://reference.data.gov.uk/def/payment#payer\",\"curie\":\"http://reference.data.gov.uk/def/payment#payer\",\"target\":{\"nodeType\":\"resource\",\"value\":\"http://statistics.data.gov.uk/id/local-authority/00ME\",\"rdfTypes\":[],\"links\":[]}},{\"uri\":\"http://reference.data.gov.uk/def/payment#payee\",\"curie\":\"http://reference.data.gov.uk/def/payment#payee\",\"target\":{\"nodeType\":\"cell-as-resource\",\"expression\":\"'http://www.rbwm.gov.uk/id/supplier/' +value.urlify()\",\"columnName\":\"Supplier Name\",\"isRowNumberCell\":false,\"rdfTypes\":[],\"links\":[]}},{\"uri\":\"http://reference.data.gov.uk/def/payment#transactionReference\",\"curie\":\"http://reference.data.gov.uk/def/payment#transactionReference\",\"target\":{\"nodeType\":\"cell-as-literal\",\"expression\":\"value\",\"columnName\":\"TransNo\",\"isRowNumberCell\":false}},{\"uri\":\"http://www.w3.org/2000/01/rdf-schema#label\",\"curie\":\"rdfs:label\",\"target\":{\"nodeType\":\"cell-as-literal\",\"expression\":\"value\",\"lang\":\"en\",\"columnName\":\"TransNo\",\"isRowNumberCell\":false}},{\"uri\":\"http://purl.org/linked-data/cube#sliceStructure\",\"curie\":\"http://purl.org/linked-data/cube#sliceStructure\",\"target\":{\"nodeType\":\"resource\",\"value\":\"http://reference.data.gov.uk/def/payment#payment-slice\",\"rdfTypes\":[],\"links\":[]}},{\"uri\":\"http://reference.data.gov.uk/def/payment#expenditureLine\",\"curie\":\"http://reference.data.gov.uk/def/payment#expenditureLine\",\"target\":{\"nodeType\":\"cell-as-resource\",\"expression\":\"row.index.urlify()\",\"isRowNumberCell\":true,\"rdfTypes\":[{\"uri\":\"http://reference.data.gov.uk/def/payment#ExpenditureLine\",\"curie\":\"http://reference.data.gov.uk/def/payment#ExpenditureLine\"}],\"links\":[{\"uri\":\"http://reference.data.gov.uk/def/payment#amountExcludingVAT\",\"curie\":\"http://reference.data.gov.uk/def/payment#amountExcludingVAT\",\"target\":{\"nodeType\":\"cell-as-literal\",\"expression\":\"value\",\"valueType\":\"http://www.w3.org/2001/XMLSchema#double\",\"columnName\":\"Amount excl vat\",\"isRowNumberCell\":false}},{\"uri\":\"http://reference.data.gov.uk/def/payment#expenditureCode\",\"curie\":\"http://reference.data.gov.uk/def/payment#expenditureCode\",\"target\":{\"nodeType\":\"cell-as-resource\",\"expression\":\"'http://www.rbwm.gov.uk/def/cost-centre/' + value\",\"columnName\":\"Cost Centre\",\"isRowNumberCell\":false,\"rdfTypes\":[],\"links\":[]}},{\"uri\":\"http://purl.org/linked-data/cube#dataset\",\"curie\":\"http://purl.org/linked-data/cube#dataset\",\"target\":{\"nodeType\":\"resource\",\"value\":\"http://www.rbwm.gov.uk/public/finance_supplier_payments_2010_q2\",\"rdfTypes\":[],\"links\":[]}}]}}]}}]}]}";
 
  @BeforeClass
  public void init()throws Exception{
    InputStream in = this.getClass().getResourceAsStream("/rdfschema-payment.csv");
    ApplicationContext ctxt = new ApplicationContext();
   
    ControlFunctionRegistry.registerFunction("urlify", new Urlify());
    ExpressionUtils.registerBinder(new RdfBinder(ctxt));
   
    project = new Project();
    ProjectMetadata meta = new ProjectMetadata();
   
    Properties options = new Properties();
//    options.put("ignore", "1");
    new TsvCsvImporter().read(in, project,meta, options);
    project.update();
    //Guard assertion
    assertEquals(project.rows.size(),2);
   
    //preparing the RDF schema skeleton
    RdfSchema schema = RdfSchema.reconstruct(ParsingUtilities.evaluateJsonStringToObject(json));
    project.overlayModels.put("rdfSchema", schema);
   
    //building the expected model
    expected = new SailRepository(new MemoryStore());
    expected.initialize();
    RepositoryConnection con = expected.getConnection();
    con.add(this.getClass().getResourceAsStream("/rdfschema-payment.rdf"),"",RDFFormat.RDFXML);
   
    //export the project
    engine = new Engine(project);
    exporter = new RdfExporter(ctxt,RDFFormat.RDFXML);
    model = exporter.buildModel(project, engine, schema);
  }
 
  @Test(groups={"rdf-schema-test"})
  public void testModel() throws RepositoryException{
    assertTrue(RepositoryUtil.equals(expected, model));
  }
}
TOP

Related Classes of com.google.refine.tests.rdf.exporters.RdfExporterPaymentDataTest

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.