| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.jena.riot.langsuite ; |
| |
| import junit.framework.Test ; |
| import junit.framework.TestSuite ; |
| import org.apache.jena.rdf.model.Resource ; |
| import org.apache.jena.riot.RDFLanguages ; |
| import org.apache.jena.riot.RiotException ; |
| import org.apache.jena.sparql.junit.EarlReport ; |
| import org.apache.jena.util.junit.TestFactoryManifest ; |
| import org.apache.jena.util.junit.TestUtils ; |
| import org.apache.jena.vocabulary.RDF ; |
| |
| public class FactoryTestRiot extends TestFactoryManifest |
| { |
| public static String assumedRootURIex = "http://example/base/" ; |
| public static String assumedRootURITurtle = "http://www.w3.org/2013/TurtleTests/" ; |
| public static String assumedRootURITriG = "http://www.w3.org/2013/TriGTests/" ; |
| |
| public static EarlReport report = null ; |
| |
| public static TestSuite make(String manifest) { |
| return make(manifest, null, null); |
| } |
| |
| public static TestSuite make(String manifest, Resource dftTestType, String labelPrefix) { |
| return new FactoryTestRiot(dftTestType, labelPrefix).process(manifest); |
| } |
| |
| private Resource dftTestType ; |
| private String labelPrefix ; |
| |
| public FactoryTestRiot(Resource dftTestType, String labelPrefix) |
| { |
| this.dftTestType = dftTestType ; |
| this.labelPrefix = labelPrefix ; |
| } |
| |
| @Override |
| public Test makeTest(Resource manifest, Resource item, String testName, Resource action, Resource result) |
| { |
| try |
| { |
| Resource r = TestUtils.getResource(item, RDF.type) ; |
| if ( r == null ) |
| r = dftTestType ; |
| if ( r == null ) |
| throw new RiotException("Can't determine the test type") ; |
| |
| if ( labelPrefix != null ) |
| testName = labelPrefix+testName ; |
| |
| // In Turtle tests, the action directly names the file to process. |
| Resource input = action ; |
| Resource output = result ; |
| |
| if ( r.equals(VocabLangRDF.TestPositiveSyntaxTTL) ) |
| return new UnitTestSyntax(testName, item.getURI(), input.getURI(), RDFLanguages.TURTLE, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestNegativeSyntaxTTL) ) |
| return new UnitTestBadSyntax(testName, item.getURI(), input.getURI(), RDFLanguages.TURTLE, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestPositiveSyntaxTriG) ) |
| return new UnitTestSyntax(testName, item.getURI(), input.getURI(), RDFLanguages.TRIG, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestNegativeSyntaxTriG) ) |
| return new UnitTestBadSyntax(testName, item.getURI(), input.getURI(), RDFLanguages.TRIG, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestPositiveSyntaxNT) ) |
| return new UnitTestSyntax(testName, item.getURI(), input.getURI(), RDFLanguages.NTRIPLES, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestNegativeSyntaxNT) ) |
| return new UnitTestBadSyntax(testName, item.getURI(), input.getURI(), RDFLanguages.NTRIPLES, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestPositiveSyntaxNQ) ) |
| return new UnitTestSyntax(testName, item.getURI(), input.getURI(), RDFLanguages.NQUADS, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestNegativeSyntaxNQ) ) |
| return new UnitTestBadSyntax(testName, item.getURI(), input.getURI(), RDFLanguages.NQUADS, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestPositiveSyntaxRJ) ) |
| return new UnitTestSyntax(testName, item.getURI(), input.getURI(), RDFLanguages.RDFJSON, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestNegativeSyntaxRJ) ) |
| return new UnitTestBadSyntax(testName, item.getURI(), input.getURI(), RDFLanguages.RDFJSON, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestSurpressed )) |
| return new UnitTestSurpressed(testName, item.getURI(), report) ; |
| |
| // Eval. |
| |
| if ( r.equals(VocabLangRDF.TestEvalTTL) ) { |
| String base = rebase(input, assumedRootURITurtle) ; |
| return new UnitTestEval(testName, item.getURI(), input.getURI(), result.getURI(), base, RDFLanguages.TURTLE, report) ; |
| } |
| |
| if ( r.equals(VocabLangRDF.TestEvalTriG) ) { |
| String base = rebase(input, assumedRootURITriG) ; |
| return new UnitTestEval(testName, item.getURI(), input.getURI(), result.getURI(), base, RDFLanguages.TRIG, report) ; |
| } |
| |
| if ( r.equals(VocabLangRDF.TestNegativeEvalTTL) ) |
| return new UnitTestBadEval(testName, item.getURI(), input.getURI(), RDFLanguages.TURTLE, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestNegativeEvalTriG) ) |
| return new UnitTestBadEval(testName, item.getURI(), input.getURI(), RDFLanguages.TRIG, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestEvalNT) ) |
| return new UnitTestEval(testName, item.getURI(), input.getURI(), result.getURI(), null, RDFLanguages.NTRIPLES, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestNegativeEvalNT) ) |
| return new UnitTestBadEval(testName, item.getURI(), input.getURI(), RDFLanguages.NTRIPLES, report) ; |
| |
| if ( r.equals(VocabLangRDF.TestEvalRJ) ) { |
| String base = rebase(input, assumedRootURIex) ; |
| return new UnitTestEval(testName, item.getURI(), input.getURI(), result.getURI(), base, RDFLanguages.RDFJSON, report) ; |
| } |
| |
| if ( r.equals(VocabLangRDF.TestNegativeEvalRJ) ) |
| return new UnitTestBadEval(testName, item.getURI(), input.getURI(), RDFLanguages.RDFJSON, report) ; |
| |
| System.err.println("Unrecognized turtle test : ("+r+")" + testName) ; |
| return null ; |
| |
| } catch (Exception ex) |
| { |
| ex.printStackTrace(System.err) ; |
| System.err.println("Failed to grok test : " + testName) ; |
| return null ; |
| } |
| } |
| |
| private static String rebase(Resource input, String baseIRI) { |
| String x = input.getLocalName() ; |
| // Yuk, yuk, yuk. |
| baseIRI = baseIRI+x ; |
| return baseIRI ; |
| } |
| } |