/* * 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.n3; import java.io.* ; import java.util.List ; import junit.framework.TestSuite ; import org.apache.jena.shared.JenaException ; import org.apache.jena.util.FileUtils ; public abstract class N3ExternalTestsCom extends TestSuite { // List of places static protected final String dirbases[] = {".", "testN3", // Jena2: correct location "testing/Turtle/N3", } ; // Record where we find the file in the constructor protected String basedir = null ; protected String testFile ; public N3ExternalTestsCom(String testName, String filename) { super(testName) ; testFile = findFile(filename) ; if ( testFile == null ) throw new JenaException("No such file: "+filename) ; TupleSet tests = null ; try { Reader r = new BufferedReader(new FileReader(testFile)) ; tests = new TupleSet(r) ; } catch (IOException ioEx) { System.err.println("IO exception: "+ioEx) ; return ; } for ( ; tests.hasNext() ; ) { List<TupleItem> l = tests.next() ; if ( l.size() != 2 ) { System.err.println("Error in N3 test configuration file: "+filename+": length of an entry is "+l.size()) ; return ; } String n3File = l.get(0).get() ; String resultsFile = l.get(1).get() ; makeTest(n3File, resultsFile) ; } } abstract protected void makeTest(String n3File, String resultsFile) ; protected String findFile(String fname) { for ( String dirbase : dirbases ) { String maybeFile = dirbase + "/" + fname; File f = new File( maybeFile ); if ( f.exists() ) { basedir = dirbase; return f.getAbsolutePath(); } } return null ; } // Utilities. static protected PrintWriter makeWriter(OutputStream out) { return FileUtils.asPrintWriterUTF8(out) ; } static protected BufferedReader makeReader(InputStream in) { return new BufferedReader(FileUtils.asUTF8(in)) ; } }