/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jena.riot.stream;
import java.io.File ;
import org.apache.jena.atlas.io.IO ;
import org.apache.jena.atlas.junit.BaseTest ;
import org.apache.jena.atlas.web.TypedInputStream ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.rdf.model.ModelFactory ;
import org.apache.jena.riot.RDFDataMgr ;
import org.apache.jena.riot.RiotNotFoundException ;
import org.apache.jena.riot.system.stream.LocatorFile ;
import org.apache.jena.riot.system.stream.LocatorHTTP ;
import org.apache.jena.riot.system.stream.StreamManager ;
import org.apache.jena.sparql.util.Context ;
import org.junit.AfterClass ;
import org.junit.BeforeClass ;
import org.junit.Test ;
public class TestStreamManager extends BaseTest
{
private static final String directory = "testing/RIOT/StreamManager" ;
private static final String absDirectory = new File(directory).getAbsolutePath() ;
private static StreamManager streamMgrDir ;
private static StreamManager streamMgrHere ;
private static StreamManager streamMgrNull ;
private static StreamManager streamMgrStd ;
@BeforeClass static public void beforeClass()
{
streamMgrStd = StreamManager.get() ;
streamMgrDir = new StreamManager() ;
// Not current directory.
streamMgrDir.addLocator(new LocatorFile(directory)) ;
streamMgrDir.addLocator(new LocatorHTTP()) ;
streamMgrHere = new StreamManager() ;
// Not current directory.
streamMgrHere.addLocator(new LocatorFile()) ;
streamMgrHere.addLocator(new LocatorHTTP()) ;
streamMgrNull = new StreamManager() ;
}
@AfterClass static public void afterClass()
{
StreamManager.setGlobal(streamMgrStd) ;
}
private static Context context(StreamManager streamMgr)
{
Context context = new Context() ;
context.put(RDFDataMgr.streamManagerSymbol, streamMgr) ;
return context ;
}
@Test public void fm_open_01() { open(streamMgrNull, directory+"/D.ttl", context(streamMgrHere)) ; }
@Test public void fm_open_02() { open(streamMgrHere, directory+"/D.ttl", null) ; }
@Test public void fm_open_03() { open(streamMgrNull, "D.ttl", context(streamMgrDir)) ; }
@Test public void fm_open_04() { open(streamMgrDir, "D.ttl", null) ; }
@Test public void fm_open_05() { open(streamMgrHere, "file:"+directory+"/D.ttl", context(streamMgrHere)) ; }
@Test public void fm_open_06() { open(streamMgrHere, "file:"+directory+"/D.ttl", null) ; }
@Test public void fm_open_07() { open(streamMgrHere, "file:D.ttl", context(streamMgrDir)) ; }
@Test public void fm_open_08() { open(streamMgrDir, "file:D.ttl", null) ; }
@Test public void fm_open_09() { open(streamMgrHere, absDirectory+"/D.ttl", null) ; }
@Test public void fm_open_10() { open(streamMgrDir, absDirectory+"/D.ttl", null) ; }
@Test public void fm_open_11() { open(streamMgrDir, "file://"+absDirectory+"/D.ttl", null) ; }
@Test public void fm_open_12() { open(streamMgrHere, "file://"+absDirectory+"/D.ttl", null) ; }
@Test (expected=RiotNotFoundException.class)
public void fm_open_20() { open(null, "nosuchfile", context(streamMgrDir)) ; }
@Test (expected=RiotNotFoundException.class)
public void fm_open_21() { open(streamMgrHere, "nosuchfile", null) ; }
@Test public void fm_read_01() { read("D.nt") ; }
@Test public void fm_read_02() { read("D.ttl") ; }
@Test public void fm_read_03() { read("D.rdf") ; }
@Test public void fm_read_04() { read("D.rj") ; }
@Test public void fm_read_05() { read("D.jsonld") ; }
@Test public void fm_read_11() { read("file:D.nt") ; }
@Test public void fm_read_12() { read("file:D.ttl") ; }
@Test public void fm_read_13() { read("file:D.rdf") ; }
@Test public void fm_read_14() { read("file:D.rj") ; }
@Test public void fm_read_15() { read("file:D.jsonld") ; }
// TriG
// NQuads
private static void open(StreamManager streamMgr, String dataName, Context context)
{
StreamManager.setGlobal(streamMgr) ;
try {
TypedInputStream in = ( context != null )
? RDFDataMgr.open(dataName, context)
: RDFDataMgr.open(dataName) ;
assertNotNull(in) ;
IO.close(in) ;
} finally {
StreamManager.setGlobal(streamMgrStd) ;
}
}
private static void read(String dataName)
{
try {
StreamManager.setGlobal(streamMgrDir) ;
Model m = ModelFactory.createDefaultModel() ;
RDFDataMgr.read(m, dataName) ;
assertNotEquals("Read "+dataName, 0, m.size()) ;
} finally {
StreamManager.setGlobal(streamMgrStd) ;
}
}
}