📄 moretests.java
字号:
m1.read(fin,"http://wrong.example.org/","N-TRIPLE");
fin.close();
assertTrue("Dan Bri nested XML Base.", m.isIsomorphicWith(m1));
}
public void testNullBaseParamError() throws IOException {
Model m = createMemModel();
RDFReader rdr = m.getReader();
FileInputStream fin = new FileInputStream(
"testing/wg/rdfms-difference-between-ID-and-about/test1.rdf");
rdr.setErrorHandler(this);
expected = new int[] { ERR_RESOLVING_URI_AGAINST_NULL_BASE, WARN_RELATIVE_URI};
rdr.read(m, fin, null);
fin.close();
checkExpected();
}
public void testEmptyBaseParamOK() 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, "");
fin.close();
assertTrue("Empty base URI should have no effect.[" + m1.toString()
+ "]", m.isIsomorphicWith(m1));
checkExpected();
}
public void testEmptyBaseParamError() throws IOException {
Model m = createMemModel();
RDFReader rdr = m.getReader();
FileInputStream fin = new FileInputStream(
"testing/wg/rdfms-difference-between-ID-and-about/test1.rdf");
rdr.setErrorHandler(this);
expected = new int[] { WARN_RESOLVING_URI_AGAINST_EMPTY_BASE};
rdr.read(m, fin, "");
fin.close();
Model m1 = createMemModel();
m1.createResource("#foo").addProperty(RDF.value, "abc");
assertTrue("Empty base URI should produce relative URI.["
+ m.toString() + "]", m.isIsomorphicWith(m1));
checkExpected();
}
public void testBadBaseParamError() throws IOException {
Model m = createMemModel();
RDFReader rdr = m.getReader();
FileInputStream fin = new FileInputStream(
"testing/wg/rdfms-difference-between-ID-and-about/test1.rdf");
rdr.setErrorHandler(this);
expected = new int[] { WARN_MALFORMED_URI,
WARN_MALFORMED_URI,
// WARN_RELATIVE_URI, ERR_RESOLVING_AGAINST_MALFORMED_BASE};
ERR_RESOLVING_AGAINST_MALFORMED_BASE};
rdr.read(m, fin, "http://jjc^3.org/demo.mp3");
fin.close();
Model m1 = createMemModel();
assertTrue("Bad base URI should produce no URIs in model.["
+ m.toString() + "]", m.isIsomorphicWith(m1));
checkExpected();
}
public void testBadBaseParamOK() 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[] { WARN_MALFORMED_URI };
rdr.read(m, fin, "http://jjc^3.org/demo.mp3");
fin.close();
fin = new FileInputStream(
"testing/wg/rdfms-identity-anon-resources/test001.rdf");
rdr.read(m1, fin, "");
fin.close();
assertTrue("Bad base URI should have no effect on model.[" + m1.toString()
+ "]", m.isIsomorphicWith(m1));
checkExpected();
}
public void testRelativeBaseParamError() throws IOException {
Model m = createMemModel();
RDFReader rdr = m.getReader();
FileInputStream fin = new FileInputStream(
"testing/wg/rdfms-difference-between-ID-and-about/test1.rdf");
rdr.setErrorHandler(this);
expected = new int[] { WARN_RELATIVE_URI, WARN_RELATIVE_URI, ERR_RESOLVING_AGAINST_RELATIVE_BASE, };
rdr.setProperty("ERR_RESOLVING_AGAINST_RELATIVE_BASE","EM_WARNING");
rdr.read(m, fin, "foo/");
fin.close();
Model m1 = createMemModel();
m1.createResource("foo/#foo").addProperty(RDF.value, "abc");
assertTrue("Relative base URI should produce relative URIs in model (when error suppressed).["
+ m.toString() + "]", m.isIsomorphicWith(m1));
checkExpected();
}
public void testRelativeBaseParamOK() 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[] { WARN_RELATIVE_URI };
rdr.read(m, fin, "foo/");
fin.close();
fin = new FileInputStream(
"testing/wg/rdfms-identity-anon-resources/test001.rdf");
rdr.read(m1, fin, "");
fin.close();
assertTrue("Bad base URI should have no effect on model.[" + m1.toString()
+ "]", m.isIsomorphicWith(m1));
checkExpected();
}
public void testBaseTruncation() 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[] { WARN_MALFORMED_URI, WARN_RELATIVE_URI };
rdr.read(m, fin, "ht#tp://jjc3.org/demo.mp3#frag");
fin.close();
fin = new FileInputStream(
"testing/wg/rdfms-identity-anon-resources/test001.rdf");
rdr.read(m1, fin, "");
fin.close();
assertTrue("Bad base URI should have no effect.[" + m1.toString()
+ "]", m.isIsomorphicWith(m1));
checkExpected();
}
public void testInterrupt() throws SAXException, IOException {
ARP a = new ARP();
InputStream in;
// long start = System.currentTimeMillis();
in = new FileInputStream("testing/wg/miscellaneous/consistent001.rdf");
a.getHandlers().setStatementHandler(new StatementHandler() {
int countDown = 10;
public void statement(AResource subj, AResource pred, AResource obj) {
if (countDown-- == 0)
Thread.currentThread().interrupt();
}
public void statement(AResource subj, AResource pred, ALiteral lit) {
}
});
a.getHandlers().setErrorHandler(new ErrorHandler(){
public void error(SAXParseException exception) throws SAXException {
throw new RuntimeException("Unexpected error", exception);
}
public void fatalError(SAXParseException exception) throws SAXException {
throw exception;
}
public void warning(SAXParseException exception) throws SAXException {
throw new RuntimeException("Unexpected warning", exception);
}});
try {
a.load(in);
fail("Thread was not interrupted.");
} catch (InterruptedIOException e) {
} catch (SAXParseException e) {
} finally {
in.close();
}
// System.err.println("Finished "+Thread.interrupted());
}
private void checkExpected() {
for (int i = 0; i < expected.length; i++)
if (expected[i] != 0) {
fail("Expected error: " + ParseException.errorCodeName(expected[i])
+ " but it did not occur.");
}
}
public void warning(Exception e) {
error(0, e);
}
public void error(Exception e) {
error(1, e);
}
public void fatalError(Exception e) {
error(2, e);
}
private void error(int level, Exception e) {
//System.err.println(e.getMessage());
if (e instanceof ParseException) {
int eCode = ((ParseException) e).getErrorNumber();
onError(level, eCode);
} else {
fail("Not expecting an Exception: " + e.getMessage());
}
}
private int expected[];
private void println(String m) {
logger.error(m);
}
void onError(int level, int num) {
for (int i = 0; i < expected.length; i++)
if (expected[i] == num) {
expected[i] = 0;
return;
}
String msg = "Parser reports unexpected "
+ WGTestSuite.errorLevelName[level] + ": "
+ ParseException.errorCodeName(num);
println(msg);
fail(msg);
}
// private void tokenGarbage(String file) {
// try {
// Token.COUNT = true;
// Token.COUNTTEST = true;
// Token.reinitHighTide();
// NTriple.main(new String[] { "-t", file });
// //System.err.println("["+Token.highTide+"]");
// assertTrue("Too many tokens used: "+ Token.highTide,
// Token.highTide<2000);
// } finally {
// Token.COUNT = false;
// Token.COUNTTEST = false;
// }
// }
//
// public void testTokenGarbage1() {
// tokenGarbage("testing/ontology/owl/Wine/wine.owl");
// }
//
// public void testTokenGarbage2() {
//
// tokenGarbage("testing/arp/gc/someWordNet.rdf");
// }
}
/*
* (c) Copyright 2000, 2001, 2002, 2002, 2003, 2004, 2005, 2006, 2007 Hewlett-Packard Development Company, LP
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
* EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -