/*
* 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.rdf.model.test;
import org.apache.jena.rdf.model.* ;
import org.apache.jena.rdf.model.test.helpers.TestingModelFactory ;
import org.apache.jena.vocabulary.RDF ;
import org.apache.jena.vocabulary.RDFS ;
import org.junit.Assert;
public class TestSimpleSelector extends AbstractModelTestBase
{
public TestSimpleSelector( final TestingModelFactory modelFactory,
final String name )
{
super(modelFactory, name);
}
@Override
public void setUp()
{
super.setUp();
model.createResource().addProperty(RDF.type, RDFS.Resource)
.addProperty(RDFS.label, "foo").addProperty(RDF.value, "123");
model.createResource().addProperty(RDF.type, RDFS.Resource)
.addProperty(RDFS.label, "bar").addProperty(RDF.value, "123");
}
public void testAll()
{
final StmtIterator iter = model.listStatements(new SimpleSelector(null,
null, (RDFNode) null));
int i = 0;
while (iter.hasNext())
{
i++;
iter.next();
}
Assert.assertEquals(6, i);
}
public void testFindObject()
{
final StmtIterator iter = model.listStatements(new SimpleSelector(null,
null, RDFS.Resource));
int i = 0;
while (iter.hasNext())
{
i++;
final Statement stmt = iter.nextStatement();
Assert.assertEquals(RDFS.Resource, stmt.getObject());
}
Assert.assertEquals(2, i);
}
public void testFindProperty()
{
final StmtIterator iter = model.listStatements(new SimpleSelector(null,
RDFS.label, (RDFNode) null));
int i = 0;
while (iter.hasNext())
{
i++;
final Statement stmt = iter.nextStatement();
Assert.assertEquals(RDFS.label, stmt.getPredicate());
}
Assert.assertEquals(2, i);
}
public void testFindPropertyAndObject()
{
final StmtIterator iter = model.listStatements(new SimpleSelector(null,
RDF.value, 123));
int i = 0;
while (iter.hasNext())
{
i++;
final Statement stmt = iter.nextStatement();
Assert.assertEquals(RDF.value, stmt.getPredicate());
Assert.assertEquals(123, stmt.getInt());
}
Assert.assertEquals(2, i);
}
public void testFindSubject()
{
StmtIterator iter = model.listStatements(new SimpleSelector(null, null,
RDFS.Resource));
Assert.assertTrue(iter.hasNext());
final Resource subject = iter.nextStatement().getSubject();
iter = model.listStatements(new SimpleSelector(subject, null,
(RDFNode) null));
int i = 0;
while (iter.hasNext())
{
i++;
final Statement stmt = iter.nextStatement();
Assert.assertEquals(subject, stmt.getSubject());
}
Assert.assertEquals(3, i);
}
/**
* A plain SimpleSelector must be simple.
*/
public void testSimpleIsSimple()
{
Assert.assertTrue(new SimpleSelector(null, null, (RDFNode) null)
.isSimple());
}
/**
* A random sub-class of SimpleSelector must not be simple.
*/
public void testSimpleSubclassIsntSimple()
{
Assert.assertFalse(new SimpleSelector(null, null, (RDFNode) null) {
}.isSimple());
}
}