/*
* 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.Literal ;
import org.apache.jena.rdf.model.Property ;
import org.apache.jena.rdf.model.Resource ;
import org.apache.jena.rdf.model.Statement ;
import org.apache.jena.rdf.model.test.helpers.TestingModelFactory ;
import org.apache.jena.vocabulary.RDF ;
import org.junit.Assert;
public class TestAddAndContains extends AbstractModelTestBase
{
protected Resource S;
protected Property P;
public TestAddAndContains( final TestingModelFactory modelFactory,
final String name )
{
super(modelFactory, name);
}
@Override
public void setUp()
{
super.setUp();
S = model.createResource("http://nowhere.man/subject");
P = model.createProperty("http://nowhere.man/predicate");
}
@Override
public void tearDown()
{
S = null;
P = null;
super.tearDown();
}
public void testAddContainLiteralByStatement()
{
final Literal L = model.createTypedLiteral(210);
final Statement s = model.createStatement(S, RDF.value, L);
Assert.assertTrue(model.add(s).contains(s));
Assert.assertTrue(model.contains(S, RDF.value));
}
public void testAddContainsBoolean()
{
model.addLiteral(S, P, AbstractModelTestBase.tvBoolean);
Assert.assertTrue(model.containsLiteral(S, P,
AbstractModelTestBase.tvBoolean));
}
public void testAddContainsByte()
{
model.addLiteral(S, P, AbstractModelTestBase.tvByte);
Assert.assertTrue(model.containsLiteral(S, P,
AbstractModelTestBase.tvByte));
}
public void testAddContainsChar()
{
model.addLiteral(S, P, AbstractModelTestBase.tvChar);
Assert.assertTrue(model.containsLiteral(S, P,
AbstractModelTestBase.tvChar));
}
public void testAddContainsDouble()
{
model.addLiteral(S, P, AbstractModelTestBase.tvDouble);
Assert.assertTrue(model.containsLiteral(S, P,
AbstractModelTestBase.tvDouble));
}
public void testAddContainsFloat()
{
model.addLiteral(S, P, AbstractModelTestBase.tvFloat);
Assert.assertTrue(model.containsLiteral(S, P,
AbstractModelTestBase.tvFloat));
}
public void testAddContainsInt()
{
model.addLiteral(S, P, AbstractModelTestBase.tvInt);
Assert.assertTrue(model.containsLiteral(S, P,
AbstractModelTestBase.tvInt));
}
public void testAddContainsLanguagedString()
{
model.add(S, P, "test string", "en");
Assert.assertFalse(model.contains(S, P, "test string"));
Assert.assertTrue(model.contains(S, P, "test string", "en"));
}
public void testAddContainsLong()
{
model.addLiteral(S, P, AbstractModelTestBase.tvLong);
Assert.assertTrue(model.containsLiteral(S, P,
AbstractModelTestBase.tvLong));
}
public void testAddContainsPlainString()
{
model.add(S, P, "test string");
Assert.assertTrue(model.contains(S, P, "test string"));
Assert.assertFalse(model.contains(S, P, "test string", "en"));
}
// public void testAddContainsObject()
// {
// LitTestObj O = new LitTestObj( 12345 );
// model.addLiteral( S, P, O );
// assertTrue( model.containsLiteral( S, P, O ) );
// }
public void testAddContainsResource()
{
final Resource r = model.createResource();
model.add(S, P, r);
Assert.assertTrue(model.contains(S, P, r));
}
public void testAddContainsShort()
{
model.addLiteral(S, P, AbstractModelTestBase.tvShort);
Assert.assertTrue(model.containsLiteral(S, P,
AbstractModelTestBase.tvShort));
}
public void testAddDuplicateLeavesSizeSame()
{
final Statement s = model.createStatement(S, RDF.value, "something");
model.add(s);
final long size = model.size();
model.add(s);
Assert.assertEquals(size, model.size());
}
public void testEmpty()
{
Assert.assertFalse(model.containsLiteral(S, P,
AbstractModelTestBase.tvBoolean));
Assert.assertFalse(model.contains(S, P, model.createResource()));
Assert.assertFalse(model.containsLiteral(S, P,
AbstractModelTestBase.tvByte));
Assert.assertFalse(model.containsLiteral(S, P,
AbstractModelTestBase.tvShort));
Assert.assertFalse(model.containsLiteral(S, P,
AbstractModelTestBase.tvInt));
Assert.assertFalse(model.containsLiteral(S, P,
AbstractModelTestBase.tvLong));
Assert.assertFalse(model.containsLiteral(S, P,
AbstractModelTestBase.tvChar));
Assert.assertFalse(model.containsLiteral(S, P,
AbstractModelTestBase.tvFloat));
Assert.assertFalse(model.containsLiteral(S, P,
AbstractModelTestBase.tvDouble));
Assert.assertFalse(model.containsLiteral(S, P, new LitTestObj(12345)));
Assert.assertFalse(model.contains(S, P, "test string"));
Assert.assertFalse(model.contains(S, P, "test string", "en"));
}
}