📄 testnode.java
字号:
public void testGetBlankNodeLabelString()
{
Node n = Node.createAnon();
assertEquals( n.getBlankNodeId().getLabelString(), n.getBlankNodeLabel() );
}
public void testVariableSupport()
{
assertEquals( Node_Variable.variable( "xxx" ), Node_Variable.variable( "xxx" ) );
assertDiffer( Node_Variable.variable( "xxx" ), Node_Variable.variable( "yyy" ) );
assertEquals( Node_Variable.variable( "aaa" ), Node_Variable.variable( "aaa" ) );
assertDiffer( Node_Variable.variable( "aaa" ), Node_Variable.variable( "yyy" ) );
}
public void testCache()
{
assertEquals( Node_Variable.variable( "xxx" ), Node_Variable.variable( "xxx" ) );
assertTrue( "remembers URI", Node.createURI( U ) == Node.createURI( U ) );
assertTrue( "remembers literal", Node.createLiteral( L ) == Node.createLiteral( L ) );
assertTrue( "remembers hyphens", Node.createAnon( A ) == Node.createAnon( A ) );
assertTrue( "remembers variables", Node.createVariable( N ) == Node.createVariable( N ) );
assertFalse( "is not confused", Node.createVariable( N ) == Node.createURI( N ) );
}
/**
Test that the create method does sensible things on null and ""
*/
public void testCreateBadString()
{
try { NodeCreateUtils.create( null ); fail( "must catch null argument" ); }
catch (NullPointerException e) {}
catch (JenaException e) {}
try { NodeCreateUtils.create( "" ); fail("must catch empty argument" ); }
catch (JenaException e) {}
}
/**
Test that anonymous nodes are created with the correct labels
*/
public void testCreateAnon()
{
String idA = "_xxx", idB = "_yyy";
Node a = NodeCreateUtils.create( idA ), b = NodeCreateUtils.create( idB );
assertTrue( "both must be bnodes", a.isBlank() && b.isBlank() );
assertEquals( new AnonId( idA ), a.getBlankNodeId() );
assertEquals( new AnonId( idB ), b.getBlankNodeId() );
}
public void testCreateVariable()
{
String V = "wobbly";
Node v = NodeCreateUtils.create( "?" + V );
assertTrue( "must be a variable", v.isVariable() );
assertEquals( "name must be correct", V, v.getName() );
}
public void testCreateANY()
{
assertEquals( "?? must denote ANY", Node.ANY, NodeCreateUtils.create( "??" ) );
}
public void testCreatePlainLiteralSingleQuotes()
{
Node n = NodeCreateUtils.create( "'xxx'" );
assertEquals( "xxx", n.getLiteralLexicalForm() );
assertEquals( "", n.getLiteralLanguage() );
assertEquals( null, n.getLiteralDatatypeURI() );
}
public void testCreatePlainLiteralDoubleQuotes()
{
Node n = NodeCreateUtils.create( "\"xxx\"" );
assertEquals( "xxx", n.getLiteralLexicalForm() );
assertEquals( "", n.getLiteralLanguage() );
assertEquals( null, n.getLiteralDatatypeURI() );
}
public void testCreateLiteralBackslashEscape()
{
testStringConversion( "xx\\x", "'xx\\\\x'" );
testStringConversion( "xx\\x\\y", "'xx\\\\x\\\\y'" );
testStringConversion( "\\xyz\\", "'\\\\xyz\\\\'" );
}
public void testCreateLiteralQuoteEscapes()
{
testStringConversion( "x\'y", "'x\\'y'" );
testStringConversion( "x\"y", "'x\\\"y'" );
testStringConversion( "x\'y\"z", "'x\\\'y\\\"z'" );
}
public void testCreateLiteralOtherEscapes()
{
testStringConversion( " ", "'\\s'" );
testStringConversion( "\t", "'\\t'" );
testStringConversion( "\n", "'\\n'" );
}
protected void testStringConversion( String wanted, String template )
{
Node n = NodeCreateUtils.create( template );
assertEquals( wanted, n.getLiteralLexicalForm() );
assertEquals( "", n.getLiteralLanguage() );
assertEquals( null, n.getLiteralDatatypeURI() );
}
public void testCreateLanguagedLiteralEN1()
{
Node n = NodeCreateUtils.create( "'chat'en-UK" );
assertEquals( "chat", n.getLiteralLexicalForm() );
assertEquals( "en-UK", n.getLiteralLanguage() );
assertEquals( null, n.getLiteralDatatypeURI() );
}
public void testCreateLanguagedLiteralEN2()
{
Node n1 = NodeCreateUtils.create( "'chat'en-UK" );
Node n2 = NodeCreateUtils.create( "'chat'EN-UK" );
assertTrue( n1.sameValueAs(n2) ) ;
assertFalse( n1.equals(n2) ) ;
}
public void testCreateLanguagedLiteralXY()
{
Node n = NodeCreateUtils.create( "\"chat\"xy-AB" );
assertEquals( "chat", n.getLiteralLexicalForm() );
assertEquals( "xy-AB", n.getLiteralLanguage() );
assertEquals( null, n.getLiteralDatatypeURI() );
}
public void testCreateTypedLiteralInteger()
{
Node n = NodeCreateUtils.create( "'42'xsd:integer" );
assertEquals( "42", n.getLiteralLexicalForm() );
assertEquals( "", n.getLiteralLanguage() );
assertEquals( expand( "xsd:integer" ), n.getLiteralDatatypeURI() );
}
public void testCreateTypedLiteralBoolean()
{
Node n = NodeCreateUtils.create( "\"true\"xsd:boolean" );
assertEquals( "true", n.getLiteralLexicalForm() );
assertEquals( "", n.getLiteralLanguage() );
assertEquals( expand( "xsd:boolean" ), n.getLiteralDatatypeURI() );
}
public void testGetPlainLiteralLexicalForm()
{
Node n = NodeCreateUtils.create( "'stuff'" );
assertEquals( "stuff", n.getLiteralLexicalForm() );
}
public void testGetNumericLiteralLexicalForm()
{
Node n = NodeCreateUtils.create( "17" );
assertEquals( "17", n.getLiteralLexicalForm() );
}
public void testTypesExpandPrefix()
{
testTypeExpandsPrefix( "rdf:spoo" );
testTypeExpandsPrefix( "rdfs:bar" );
testTypeExpandsPrefix( "owl:henry" );
testTypeExpandsPrefix( "xsd:bool" );
testTypeExpandsPrefix( "unknown:spoo" );
}
private void testTypeExpandsPrefix( String type )
{
Node n = NodeCreateUtils.create( "'stuff'" + type );
String wanted = PrefixMapping.Extended.expandPrefix( type );
assertEquals( wanted, n.getLiteralDatatypeURI() );
}
public void testCreateURI()
{
String uri = "http://www.electric-hedgehog.net/";
testCreateURI( uri );
testCreateURI( "rdf:trinket", "http://www.w3.org/1999/02/22-rdf-syntax-ns#trinket" );
testCreateURI( "rdfs:device", "http://www.w3.org/2000/01/rdf-schema#device" );
testCreateURI( "dc:creator", DC.getURI() + "creator" );
testCreateURI( "rss:something", RSS.getURI() + "something" );
testCreateURI( "vcard:TITLE", VCARD.getURI() + "TITLE" );
testCreateURI( "owl:wol", OWL.NAMESPACE + "wol" );
}
public void testCreateURIOtherMap()
{
String myNS = "eh:foo/bar#", suffix = "something";
PrefixMapping mine = PrefixMapping.Factory.create().setNsPrefix( "mine", myNS );
Node n = NodeCreateUtils.create( mine, "mine:" + suffix );
assertEquals( myNS + suffix, n.getURI() );
}
private void testCreateURI( String inOut )
{ testCreateURI( inOut, inOut ); }
private void testCreateURI( String in, String wanted )
{
String got = NodeCreateUtils.create( in ).getURI();
if (!wanted.equals( got ))
{
if (in.equals( wanted )) fail( "should preserve " + in );
else fail( "should translate " + in + " to " + wanted + " not " + got );
}
}
public void testCreatePrefixed()
{
PrefixMapping pm = PrefixMapping.Factory.create();
/* TODO Node n = */ NodeCreateUtils.create( pm, "xyz" );
}
public void testToStringWithPrefixMapping()
{
PrefixMapping pm = PrefixMapping.Factory.create();
String prefix = "spoo", ns = "abc:def/ghi#";
pm.setNsPrefix( prefix, ns );
String suffix = "bamboozle";
assertEquals( prefix + ":" + suffix, NodeCreateUtils.create( ns + suffix ).toString( pm ) );
}
public void testNodeHelp()
{
assertTrue( "node() making URIs", node( "hello" ).isURI() );
assertTrue( "node() making literals", node( "123" ).isLiteral() );
assertTrue( "node() making literals", node( "'hello'" ).isLiteral() );
assertTrue( "node() making hyphens", node( "_x" ).isBlank() );
assertTrue( "node() making variables", node( "?x" ).isVariable() );
}
public void testVisitorPatternNode()
{
NodeVisitor returnNode = new NodeVisitor()
{
public Object visitAny( Node_ANY it ) { return it; }
public Object visitBlank( Node_Blank it, AnonId id ) { return it; }
public Object visitLiteral( Node_Literal it, LiteralLabel lit ) { return it; }
public Object visitURI( Node_URI it, String uri ) { return it; }
public Object visitVariable( Node_Variable it, String name ) { return it; }
};
testVisitorPatternNode( "sortOfURI", returnNode );
testVisitorPatternNode( "?variable", returnNode );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -