📄 test_schemagen.java
字号:
/*****************************************************************************
* File Test_schemagen.java
* Original author Ian Dickinson, HP Labs Bristol
* Author email ian.dickinson@hp.com
* Package Jena 2
* Web http://sourceforge.net/projects/jena/
* Created 8 Sep 2006
* Filename $RCSfile: Test_schemagen.java,v $
* Revision $Revision: 1.4 $
* Release status $State: Exp $
*
* Last modified on $Date: 2007/01/02 11:52:43 $
* by $Author: andy_seaborne $
*
* (c) Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007 Hewlett-Packard Development Company, LP
* [See end of file]
*****************************************************************************/
// Package
///////////////
package jena.test;
// Imports
///////////////
import java.io.*;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.StringTokenizer;
import java.util.regex.Pattern;
import jena.schemagen;
import junit.framework.TestCase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.util.FileUtils;
/**
* <p>
* Unit tests for schemagen
* </p>
*
* @author Ian Dickinson, HP Labs
* (<a href="mailto:Ian.Dickinson@hp.com" >email</a>)
* @version CVS $Id: Test_schemagen.java,v 1.4 2007/01/02 11:52:43 andy_seaborne Exp $
*/
public class Test_schemagen
extends TestCase
{
// Constants
//////////////////////////////////
String PREFIX = "@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n" +
"@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n" +
"@prefix owl: <http://www.w3.org/2002/07/owl#> .\n" +
"@prefix ex: <http://example.com/sg#> .\n";
// Static variables
//////////////////////////////////
private static Log log = LogFactory.getLog( Test_schemagen.class );
// Instance variables
//////////////////////////////////
// Constructors
//////////////////////////////////
// External signature methods
//////////////////////////////////
public void testNoBaseURI0() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class .";
boolean ex = false;
try {
testSchemagenOutput( SOURCE, null,
new String[] {},
new String[] {},
new String[] {} );
}
catch (RuntimeException e) {
assertEquals( "Could not determine the base URI for the input vocabulary", e.getMessage() );
ex = true;
}
assertTrue( "Expected abort", ex );
}
public void testClass0() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl"},
new String[] {".*public static final Resource A.*"},
new String[] {} );
}
public void testClass1() throws Exception {
String SOURCE = PREFIX + "ex:A a rdfs:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl"},
new String[] {},
new String[] {".*public static final Resource A.*"} );
}
public void testClass2() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--rdfs"},
new String[] {},
new String[] {".*public static final Resource A.*"} );
}
public void testClass3() throws Exception {
String SOURCE = PREFIX + "ex:A a rdfs:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--rdfs"},
new String[] {".*public static final Resource A.*"},
new String[] {} );
}
public void testProperty0() throws Exception {
String SOURCE = PREFIX + "ex:p a owl:ObjectProperty .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl"},
new String[] {".*public static final Property p.*"},
new String[] {} );
}
public void testProperty1() throws Exception {
String SOURCE = PREFIX + "ex:p a rdf:Property .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl"},
// in OWL mode we permit rdf:properties
new String[] {".*public static final Property p.*"},
new String[] {} );
}
public void testProperty2() throws Exception {
String SOURCE = PREFIX + "ex:p a owl:ObjectProperty .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--rdfs"},
new String[] {},
new String[] {".*public static final Property p.*"} );
}
public void testProperty3() throws Exception {
String SOURCE = PREFIX + "ex:p a rdf:Property .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--rdfs"},
new String[] {".*public static final Property p.*"},
new String[] {} );
}
public void testInstance0() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class . ex:i a ex:A .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl"},
new String[] {".*public static final Resource i.*"},
new String[] {} );
}
public void testInstance1() throws Exception {
String SOURCE = PREFIX + "ex:A a rdfs:Class . ex:i a ex:A .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl"},
new String[] {".*public static final Resource i.*"},
new String[] {} );
}
/* TODO this test fails, because the isInstance check in schemagen is quite weak.
* Consider whether to fix the test or the code... *
public void testInstance2() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class . ex:i a ex:A .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--rdfs"},
new String[] {},
new String[] {".*public static final Resource i.*"} );
}
*/
public void testInstance3() throws Exception {
String SOURCE = PREFIX + "ex:A a rdfs:Class . ex:i a ex:A .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--rdfs"},
new String[] {".*public static final Resource i.*"},
new String[] {} );
}
/** Bug report by Richard Cyganiak */
public void testRC0() throws Exception {
String SOURCE = PREFIX + "ex:class a owl:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl"},
new String[] {},
new String[] {".*public static final Resource class .*"} );
}
public void testComment0() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class ; rdfs:comment \"commentcomment\" .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl"},
new String[] {" */\\*\\* <p>commentcomment</p> \\*/ *"},
new String[] {} );
}
public void testComment1() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class ; rdfs:comment \"commentcomment\" .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl", "--nocomments"},
new String[] {},
new String[] {" */\\*\\* <p>commentcomment</p> \\*/ *"} );
}
public void testOntClass0() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl", "--ontology"},
new String[] {".*public static final OntClass A.*"},
new String[] {} );
}
public void testOntClass1() throws Exception {
String SOURCE = PREFIX + "ex:A a rdfs:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl", "--ontology"},
new String[] {},
new String[] {".*public static final OntClass A.*"} );
}
public void testOntClass2() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--rdfs", "--ontology"},
new String[] {},
new String[] {".*public static final OntClass A.*"} );
}
public void testOntClass3() throws Exception {
String SOURCE = PREFIX + "ex:A a rdfs:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--rdfs", "--ontology"},
new String[] {".*public static final OntClass A.*"},
new String[] {} );
}
public void testOntProperty0() throws Exception {
String SOURCE = PREFIX + "ex:p a owl:ObjectProperty .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl", "--ontology"},
new String[] {".*public static final ObjectProperty p.*"},
new String[] {} );
}
public void testOntProperty1() throws Exception {
String SOURCE = PREFIX + "ex:p a rdf:Property .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--owl", "--ontology"},
// in OWL mode we permit rdf:properties
new String[] {".*public static final OntProperty p.*"},
new String[] {} );
}
public void testOntProperty2() throws Exception {
String SOURCE = PREFIX + "ex:p a owl:ObjectProperty .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--rdfs", "--ontology"},
new String[] {},
new String[] {".*public static final ObjectProperty p.*"} );
}
public void testOntProperty3() throws Exception {
String SOURCE = PREFIX + "ex:p a rdf:Property .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--rdfs", "--ontology"},
new String[] {".*public static final OntProperty p.*"},
new String[] {} );
}
public void testHeader() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--ontology", "--header", "/* header */\n%package%\n%imports%\n"},
new String[] {"/\\* header \\*/"},
new String[] {} );
}
public void testFooter() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--ontology", "--footer", "/* footer */"},
new String[] {"/\\* footer \\*/"},
new String[] {} );
}
public void testPackage() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class .";
testSchemagenOutput( SOURCE, null,
new String[] {"-a", "http://example.com/sg#", "--ontology", "--package", "test.test"},
new String[] {"package test.test;\\s*"},
new String[] {} );
}
public void testClassname() throws Exception {
String SOURCE = PREFIX + "ex:A a owl:Class .";
SchemaGenAux fixture = new SchemaGenAux() {
protected String getValue( Object option ) {
if (option.equals( OPT_INPUT )) {
// without the -n option, this will force the classname to be Soggy
return "http://example.org/soggy";
}
else {
return super.getValue( option );
}
}
};
testSchemagenOutput( SOURCE, fixture,
new String[] {"-a", "http://example.com/soggy#", "--ontology", "--package", "test.test", "-n", "Sg"},
new String[] {},
new String[] {} );
}
public void testClassdec() throws Exception {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -