📄 moretests.java
字号:
/*
* (c) Copyright 2000, 2001, 2002, 2002, 2003, 2004, 2005, 2006, 2007 Hewlett-Packard Development Company, LP
* All rights reserved.
* [See end of file]
* $Id: MoreTests.java,v 1.44 2007/05/09 17:19:31 jeremy_carroll Exp $
*/
package com.hp.hpl.jena.rdf.arp.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.InterruptedIOException;
import java.io.StringReader;
import java.nio.charset.Charset;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import com.hp.hpl.jena.ontology.OntDocumentManager;
import com.hp.hpl.jena.rdf.arp.ALiteral;
import com.hp.hpl.jena.rdf.arp.ARP;
import com.hp.hpl.jena.rdf.arp.ARPErrorNumbers;
import com.hp.hpl.jena.rdf.arp.AResource;
import com.hp.hpl.jena.rdf.arp.ParseException;
import com.hp.hpl.jena.rdf.arp.StatementHandler;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.RDFErrorHandler;
import com.hp.hpl.jena.rdf.model.RDFReader;
import com.hp.hpl.jena.vocabulary.RDF;
/**
* @author jjc
*
*/
public class MoreTests extends TestCase implements RDFErrorHandler,
ARPErrorNumbers {
static private Log logger = LogFactory.getLog(MoreTests.class);
static public Test suite() {
TestSuite suite = new TestSuite("ARP Plus");
suite.addTest(TestErrorMsg.suite());
suite.addTest(TestPropEltErrorMsg.suite());
suite.addTest(TestScope.suite());
suite.addTest(ExceptionTests.suite());
suite.addTest(new MoreDOM2RDFTest("testDOMwithARP"));
suite.addTest(new MoreTests("testIcu"));
suite.addTest(new MoreTests("testLatin1"));
suite.addTest(new MoreTests("testIcu2"));
suite.addTest(new MoreTests("testEncodingMismatch1"));
suite.addTest(new MoreTests("testEncodingMismatch2"));
suite.addTest(new MoreTests("testEncodingMismatch3"));
suite.addTest(new MoreTests("testNullBaseParamOK"));
suite.addTest(new MoreTests("testNullBaseParamError"));
suite.addTest(new MoreTests("testEmptyBaseParamOK"));
suite.addTest(new MoreTests("testEmptyBaseParamError"));
suite.addTest(new MoreTests("testBadBaseParamOK"));
suite.addTest(new MoreTests("testBadBaseParamError"));
suite.addTest(new MoreTests("testRelativeBaseParamOK"));
suite.addTest(new MoreTests("testRelativeBaseParamError"));
suite.addTest(new MoreTests("testBaseTruncation"));
suite.addTest(new MoreTests("testWineDefaultNS"));
suite.addTest(new MoreTests("testInterrupt"));
suite.addTest(new MoreTests("testDanBriXMLBase"));
suite.addTest(new MoreTests("testToString"));
//for (int i=0; i< 20; i++ ) {
//suite.addTest(new MoreTests("testTokenGarbage1"));
//suite.addTest(new MoreTests("testTokenGarbage2"));
// suite.addTest(new MoreTests("testTokenGarbage1"));
// suite.addTest(new MoreTests("testTokenGarbage2"));
// suite.addTest(new MoreTests("testTokenGarbage1"));
// suite.addTest(new MoreTests("testTokenGarbage2"));
//}
return suite;
}
public MoreTests(String s) {
super(s);
}
protected Model createMemModel() {
return ModelFactory.createDefaultModel();
}
public void setUp() {
// ensure the ont doc manager is in a consistent state
OntDocumentManager.getInstance().reset(true);
}
public void testWineDefaultNS() throws IOException {
testWineNS(createMemModel());
testWineNS(ModelFactory.createOntologyModel());
}
private void testWineNS(Model m) throws FileNotFoundException, IOException {
InputStream in = new FileInputStream("testing/arp/xmlns/wine.rdf");
m.read(in, "");
in.close();
assertEquals("http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#", m
.getNsPrefixURI(""));
}
public void testLatin1() throws IOException {
Model m = createMemModel();
RDFReader rdr = m.getReader();
InputStream r = new FileInputStream(
"testing/arp/i18n/latin1.rdf");
rdr.setErrorHandler(this);
expected = new int[] { WARN_NONCANONICAL_IANA_NAME };
rdr.read(m, r, "http://example.org/");
checkExpected();
}
public void testARPMacRoman() throws IOException {
Model m = createMemModel();
RDFReader rdr = m.getReader();
InputStream r = new FileInputStream(
"testing/arp/i18n/macroman.rdf");
rdr.setErrorHandler(this);
expected = new int[] { WARN_UNSUPPORTED_ENCODING, WARN_NON_IANA_ENCODING };
expected[Charset.isSupported("MacRoman")?0:1]=0;
// Only one of the warnings is expected, which depends on Java version
rdr.read(m, r, "http://example.org/");
checkExpected();
}
public void testARPMacArabic() throws IOException {
Model m = createMemModel();
RDFReader rdr = m.getReader();
InputStream r = new FileInputStream(
"testing/arp/i18n/arabic-macarabic.rdf");
rdr.setErrorHandler(this);
expected = new int[] { WARN_UNSUPPORTED_ENCODING, WARN_NON_IANA_ENCODING };
expected[Charset.isSupported("MacArabic")?0:1]=0;
// Only one of the warnings is expected, which depends on Java version
rdr.read(m, r, "http://example.org/");
checkExpected();
}
public void testEncodingMismatch1() throws IOException {
Model m = createMemModel();
RDFReader rdr = m.getReader();
FileReader r = new FileReader(
"testing/wg/rdfms-syntax-incomplete/test001.rdf");
if (r.getEncoding().startsWith("UTF")) {
System.err
.println("WARNING: Encoding mismatch tests not executed on platform with default UTF encoding.");
return;
}
rdr.setErrorHandler(this);
expected = new int[] { WARN_ENCODING_MISMATCH };
rdr.read(m, r, "http://example.org/");
//System.err.println(m.size() + " triples read.");
checkExpected();
}
public void testIcu() throws IOException {
// "\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe"
// Normalizer. isNormalized(
// "\u0bcd\u0ba4\u0bbf\u0baf\u0bbe"
// ,Normalizer.NFC,0);
Model m = createMemModel();
RDFReader rdr = m.getReader();
FileInputStream r = new FileInputStream(
"testing/arp/i18n/icubug.rdf");
rdr.setErrorHandler(this);
expected = new int[] { WARN_STRING_COMPOSING_CHAR };
rdr.read(m, r, "http://example.org/");
r.close();
checkExpected();
}
public void testIcu2() throws IOException {
// "\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe"
// Normalizer. isNormalized(
// "\u0bcd\u0ba4\u0bbf\u0baf\u0bbe"
// ,Normalizer.NFC,0);
Model m = createMemModel();
RDFReader rdr = m.getReader();
FileInputStream r = new FileInputStream(
"testing/arp/i18n/icubugtwo.rdf");
rdr.setErrorHandler(this);
expected = new int[] { WARN_STRING_NOT_NORMAL_FORM_C };
rdr.read(m, r, "http://example.org/");
r.close();
checkExpected();
}
static class ToStringStatementHandler implements StatementHandler {
String obj;
String subj;
public void statement(AResource sub, AResource pred, ALiteral lit) {
// System.out.println("(" + sub + ", " + pred + ", " + lit + ")");
subj = sub.toString();
}
public void statement(AResource sub, AResource pred, AResource ob) {
// System.out.println("(" + sub + ", " + pred + ", " + ob + ")");
obj = ob.toString();
}
}
public void testToString() throws IOException, SAXException {
String testcase = "<rdf:RDF xmlns:music=\"http://www.kanzaki.com/ns/music#\" "
+ " xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"> "
+ "<rdf:Description> "
+ " <music:performs rdf:nodeID=\"p1\"/> "
+ "</rdf:Description> "
+ "<rdf:Description rdf:nodeID=\"p1\"> "
+ " <music:opus>op.26</music:opus> "
+ "</rdf:Description> "
+ "</rdf:RDF>";
ARP parser = new ARP();
ToStringStatementHandler tssh = new ToStringStatementHandler();
parser.getHandlers().setStatementHandler(tssh);
parser.load(new StringReader(testcase), "http://www.example.com");
assertEquals(tssh.subj, tssh.obj);
}
public void testEncodingMismatch2() throws IOException {
FileReader r = new FileReader(
"testing/wg/rdf-charmod-literals/test001.rdf");
subTestEncodingMismatch2(r);
}
public void testEncodingMismatch3() throws IOException {
FileInputStream fin = new FileInputStream(
"testing/wg/rdf-charmod-literals/test001.rdf"
);
InputStreamReader r = new InputStreamReader(
fin,
"MS950"
);
subTestEncodingMismatch2(r);
}
private void subTestEncodingMismatch2(InputStreamReader r) {
if (r.getEncoding().startsWith("UTF")) {
// see above for warning message.
return;
}
Model m = createMemModel();
RDFReader rdr = m.getReader();
rdr.setErrorHandler(this);
expected = new int[] { WARN_ENCODING_MISMATCH, ERR_ENCODING_MISMATCH };
rdr.read(m, r, "http://example.org/");
checkExpected();
}
public void testNullBaseParamOK() throws IOException {
Model m = createMemModel();
Model m1 = createMemModel();
RDFReader rdr = m.getReader();
FileInputStream fin = new FileInputStream(
"testing/wg/rdfms-identity-anon-resources/test001.rdf");
rdr.setErrorHandler(this);
expected = new int[] {};
rdr.read(m, fin, "http://example.org/");
fin.close();
fin = new FileInputStream(
"testing/wg/rdfms-identity-anon-resources/test001.rdf");
rdr.read(m1, fin, null);
fin.close();
assertTrue("Base URI should have no effect.", m.isIsomorphicWith(m1));
checkExpected();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -