📄 testontdocumentmanager.java
字号:
/*****************************************************************************
* Source code information
* -----------------------
* Original author Ian Dickinson, HP Labs Bristol
* Author email Ian.Dickinson@hp.com
* Package Jena 2
* Web http://sourceforge.net/projects/jena/
* Created 4 Mar 2003
* Filename $RCSfile: TestOntDocumentManager.java,v $
* Revision $Revision: 1.23 $
* Release status $State: Exp $
*
* Last modified on $Date: 2007/01/11 19:55:14 $
* by $Author: ian_dickinson $
*
* (c) Copyright 2002, 2003, 2004, 2005, 2006, 2007 Hewlett-Packard Development Company, LP
* (see footer for full conditions)
*****************************************************************************/
// Package
///////////////
package com.hp.hpl.jena.ontology.impl.test;
// Imports
///////////////
import java.io.StringReader;
import java.util.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import junit.framework.*;
import com.hp.hpl.jena.ontology.*;
import com.hp.hpl.jena.ontology.OntDocumentManager.ReadFailureHandler;
import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.reasoner.test.TestUtil;
import com.hp.hpl.jena.vocabulary.*;
/**
* <p>
* Unit tests for document manager
* </p>
*
* @author Ian Dickinson, HP Labs
* (<a href="mailto:Ian.Dickinson@hp.com" >email</a>)
* @version CVS $Id: TestOntDocumentManager.java,v 1.23 2007/01/11 19:55:14 ian_dickinson Exp $
*/
public class TestOntDocumentManager
extends TestCase
{
// Constants
//////////////////////////////////
private static Boolean F = Boolean.FALSE;
private static Boolean T = Boolean.TRUE;
// Static variables
//////////////////////////////////
/** Log for this class */
private static Log log = LogFactory.getLog( TestOntDocumentManager.class );
public static final Integer cnt( int x ) {return new Integer(x);}
/* Data for various combinations of test import conditions */
public static Object[][] s_testData = new Object[][] {
// directory to look in marker count imports path (null = default)
{ "testing/ontology/testImport1", cnt(1), T, null },
{ "testing/ontology/testImport2", cnt(2), T, null },
{ "testing/ontology/testImport2", cnt(1), F, null },
{ "testing/ontology/testImport3", cnt(3), T, null },
{ "testing/ontology/testImport4", cnt(2), T, null },
{ "testing/ontology/testImport5", cnt(2), T, "file:testing/ontology/testImport5/ont-policy.rdf" }
};
// Instance variables
//////////////////////////////////
// Constructors
//////////////////////////////////
public TestOntDocumentManager( String s ) {
super( s );
}
public static TestSuite suite() {
TestSuite suite = new TestSuite( "TestOntDocumentManager" );
// add the fixed test cases
suite.addTestSuite( TestOntDocumentManager.class );
// add the data-driven test cases
for (int i = 0; i < s_testData.length; i++) {
suite.addTest( new DocManagerImportTest( (String) s_testData[i][0],
((Integer) s_testData[i][1]).intValue(),
((Boolean) s_testData[i][2]).booleanValue(),
(String) s_testData[i][3]) );
}
return suite;
}
// External signature methods
//////////////////////////////////
public void setUp() {
// ensure the ont doc manager is in a consistent state
OntDocumentManager.getInstance().reset( true );
// forget any cached models in the model spec
// TODO remove this once we rationalise modelmakers in the OntModel code
Set modelNames = new HashSet();
ModelMaker memMaker = OntModelSpec.OWL_MEM.getModelMaker();
for (Iterator i = memMaker.listModels(); i.hasNext(); ) {
modelNames.add( i.next() );
}
for (Iterator i = modelNames.iterator(); i.hasNext(); ) {
String mn = (String) i.next();
memMaker.removeModel( mn );
}
}
public void testConstruct0() {
OntDocumentManager m = new OntDocumentManager();
assertNotNull( m );
assertEquals( m.getMetadataSearchPath(), OntDocumentManager.DEFAULT_METADATA_PATH );
}
public void testConstruct1() {
OntDocumentManager mgr = new OntDocumentManager( "" );
assertTrue( "Should be no specification loaded", !mgr.listDocuments().hasNext() );
}
public void testConstruct2() {
// make sure we don't fail on null
OntDocumentManager mgr = new OntDocumentManager( (String) null );
assertTrue( "Should be no specification loaded", !mgr.listDocuments().hasNext() );
}
public void testConstruct3() {
Model m = ModelFactory.createDefaultModel();
Resource r = m.createResource();
r.addProperty( RDF.type, OntDocManagerVocab.OntologySpec );
r.addProperty( OntDocManagerVocab.publicURI, m.createResource("http://example.com/foo") );
r.addProperty( OntDocManagerVocab.altURL, m.createResource("file:local.rdf") );
OntDocumentManager mgr = new OntDocumentManager( m );
assertEquals( "cache URL not correct", "file:local.rdf", mgr.doAltURLMapping( "http://example.com/foo" ));
}
public void testInitialisation() {
OntDocumentManager mgr = new OntDocumentManager( "file:etc/ont-policy-test.rdf" );
assertTrue( "Should be at least one specification loaded", mgr.listDocuments().hasNext() );
assertNotNull( "cache URL for owl should not be null", mgr.doAltURLMapping( "http://www.w3.org/2002/07/owl" ));
assertEquals( "cache URL for owl not correct", "file:vocabularies/owl.owl", mgr.doAltURLMapping( "http://www.w3.org/2002/07/owl" ));
assertEquals( "prefix for owl not correct", "owl", mgr.getPrefixForURI( "http://www.w3.org/2002/07/owl#" ));
}
public void testGetInstance() {
OntDocumentManager odm = OntDocumentManager.getInstance();
assertNotNull( odm );
OntDocumentManager odm2 = OntDocumentManager.getInstance();
assertSame( odm, odm2 );
}
public void testSetMetadataSearchPath() {
OntDocumentManager odm = new OntDocumentManager( "file:etc/ont-policy-test.rdf" );
assertEquals( "file:etc/ont-policy-test.rdf", odm.getMetadataSearchPath() );
assertTrue( odm.listDocuments().hasNext() );
assertEquals( "file:etc/ont-policy-test.rdf", odm.getLoadedPolicyURL() );
odm.setMetadataSearchPath( "file:notexist.rdf", false );
assertTrue( odm.listDocuments().hasNext() );
assertNull( odm.getLoadedPolicyURL() );
odm.setMetadataSearchPath( "file:notexist.rdf", true );
assertFalse( odm.listDocuments().hasNext() );
assertNull( odm.getLoadedPolicyURL() );
odm.setMetadataSearchPath( "file:etc/ont-policy-test.rdf", false );
assertTrue( odm.listDocuments().hasNext() );
assertEquals( "file:etc/ont-policy-test.rdf", odm.getLoadedPolicyURL() );
}
public void testConfigure0() {
Model m = ModelFactory.createDefaultModel();
Resource r = m.createResource();
r.addProperty( RDF.type, OntDocManagerVocab.OntologySpec );
r.addProperty( OntDocManagerVocab.publicURI, m.createResource("http://example.com/foo") );
r.addProperty( OntDocManagerVocab.altURL, m.createResource("file:local.rdf") );
OntDocumentManager odm = new OntDocumentManager( "file:etc/ont-policy-test.rdf" );
TestUtil.assertIteratorLength( odm.listDocuments(), 3 );
odm.configure( m, false );
TestUtil.assertIteratorLength( odm.listDocuments(), 4 );
}
public void testConfigure1() {
Model m = ModelFactory.createDefaultModel();
Resource r = m.createResource();
r.addProperty( RDF.type, OntDocManagerVocab.OntologySpec );
r.addProperty( OntDocManagerVocab.publicURI, m.createResource("http://example.com/foo") );
r.addProperty( OntDocManagerVocab.altURL, m.createResource("file:local.rdf") );
OntDocumentManager odm = new OntDocumentManager( "file:etc/ont-policy-test.rdf" );
TestUtil.assertIteratorLength( odm.listDocuments(), 3 );
odm.configure( m );
TestUtil.assertIteratorLength( odm.listDocuments(), 1 );
}
public void testConfigure2() {
// create a simple policy
Model m = ModelFactory.createDefaultModel();
Resource policy = m.createResource();
m.add( policy, RDF.type, OntDocManagerVocab.DocumentManagerPolicy );
m.add( policy, OntDocManagerVocab.cacheModels, false );
OntDocumentManager mgr = new OntDocumentManager( (String) null );
assertTrue( mgr.getCacheModels() );
mgr.configure( m );
assertFalse( "Docmgr configure() should have updated cache models flag", mgr.getCacheModels() );
}
public void testReset() {
OntDocumentManager mgr = new OntDocumentManager( (String) null );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -