You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2013/01/14 23:38:37 UTC

svn commit: r1433184 [8/9] - in /jena/trunk/jena-core/src: main/java/com/hp/hpl/jena/graph/compose/ test/java/com/hp/hpl/jena/graph/compose/test/ test/java/com/hp/hpl/jena/graph/test/ test/java/com/hp/hpl/jena/mem/test/ test/java/com/hp/hpl/jena/rdf/ar...

Modified: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestSimpleListStatements.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestSimpleListStatements.java?rev=1433184&r1=1433183&r2=1433184&view=diff
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestSimpleListStatements.java (original)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestSimpleListStatements.java Mon Jan 14 22:38:35 2013
@@ -1,14 +1,14 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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.
@@ -18,205 +18,245 @@
 
 package com.hp.hpl.jena.rdf.model.test;
 
-/**
-	@author bwm out of kers
-*/
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Property;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.Selector;
+import com.hp.hpl.jena.rdf.model.SimpleSelector;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.StmtIterator;
+import com.hp.hpl.jena.rdf.model.test.helpers.ModelHelper;
+import com.hp.hpl.jena.rdf.model.test.helpers.TestingModelFactory;
+import com.hp.hpl.jena.vocabulary.RDF;
 
 import java.util.List;
 
-import com.hp.hpl.jena.rdf.model.*;
-import com.hp.hpl.jena.vocabulary.*;
+import junit.framework.Assert;
 
+public class TestSimpleListStatements extends AbstractModelTestBase
+{
 
-import junit.framework.*;
+	static boolean booleanValue = true;
 
-public class TestSimpleListStatements extends ModelTestBase
-    {    
-        
-    public TestSimpleListStatements( String name )
-        { super( name ); }
-    
-    public static TestSuite suite()
-        { return new TestSuite( TestSimpleListStatements.class ); }   
-    
-    Model model = null; 
-    
-    static boolean booleanValue = true;
-    static char    charValue   = 'c';
-    static long    longValue   = 456;
-    static float   floatValue  = 5.67F;
-    static double  doubleValue = 6.78;
-    static String   stringValue ="stringValue";
-    static String   langValue   = "en";   
-        
-    @Override
-    protected void setUp() throws java.lang.Exception {
-        
-    	model = ModelFactory.createDefaultModel();
-    	model.createResource("http://example.org/boolean")
-    	     .addLiteral(RDF.value, booleanValue);             
-        model.createResource("http://example.org/char")
-             .addLiteral(RDF.value, charValue);             
-        model.createResource("http://example.org/long")             
-             .addLiteral(RDF.value, longValue);              
-        model.createResource("http://example.org/float")
-             .addLiteral(RDF.value, floatValue);            
-        model.createResource("http://example.org/double")
-             .addLiteral(RDF.value, doubleValue);             
-        model.createResource("http://example.org/string")
-             .addProperty(RDF.value, stringValue);             
-        model.createResource("http://example.org/langString")
-             .addProperty(RDF.value, stringValue, langValue);
-    	
-    }
-    
-    @Override
-    protected void tearDown() throws java.lang.Exception {
-    	model.close();
-        model = null;
-    }
-    
-    public void testBoolean() 
-        {
-        List<Statement> got = model.listLiteralStatements( null, null, booleanValue ).toList();
-        assertEquals( 1, got.size() );
-        Statement it = got.get( 0 );
-        assertEquals( resource( "http://example.org/boolean" ), it.getSubject() );
-        assertEquals( model.createTypedLiteral( booleanValue ), it.getObject() );
-        }
-    
-    public void testChar() 
-        {
-        List<Statement> got = model.listLiteralStatements( null, null, charValue ).toList();
-        assertEquals( 1, got.size() );
-        Statement it = got.get( 0 );
-        assertEquals( resource( "http://example.org/char" ), it.getSubject() );
-        assertEquals( model.createTypedLiteral( charValue ), it.getObject() );
-        }
-    
-    public void testLong() 
-        {
-        List<Statement> got = model.listLiteralStatements( null, null, longValue ).toList();
-        assertEquals( 1, got.size() );
-        Statement it = got.get( 0 );
-        assertEquals( resource( "http://example.org/long" ), it.getSubject() );
-        assertEquals( model.createTypedLiteral( longValue ), it.getObject() );
-        }
-    
-    public void testFloat() 
-        {
-        List<Statement> got = model.listLiteralStatements( null, null, floatValue ).toList();
-        assertEquals( 1, got.size() );
-        Statement it = got.get( 0 );
-        assertEquals( resource( "http://example.org/float" ), it.getSubject() );
-        assertEquals( model.createTypedLiteral( floatValue ), it.getObject() );
-        }
-    
-    public void testDouble() 
-        {
-        List<Statement> got = model.listLiteralStatements( null, null, doubleValue ).toList();
-        assertEquals( 1, got.size() );
-        Statement it = got.get( 0 );
-        assertEquals( resource( "http://example.org/double" ), it.getSubject() );
-        assertEquals( model.createTypedLiteral( doubleValue ), it.getObject() );
-        }
-    
-    public void testString() {
-        StmtIterator iter = model.listStatements(null, null, stringValue);
-        int i =0;
-        while (iter.hasNext()) {
-            i++;
-            assertEquals(iter.nextStatement().getSubject().getURI(),
-                         "http://example.org/string");
-        }
-        assertEquals(1, i);
-    }
-    
-    public void testLangString() {
-        StmtIterator iter = model.listStatements(null, null,
-                                                           stringValue, langValue);
-        int i =0;
-        while (iter.hasNext()) {
-            i++;
-            assertEquals(iter.nextStatement().getSubject().getURI(),
-                         "http://example.org/langString");
-        }
-        assertEquals(1, i);
-    }
-        
-    
-    public void testAll() {
-        StmtIterator iter = model.listStatements(null, null, (RDFNode) null);
-        int i =0;
-        while (iter.hasNext()) {
-            i++;
-            iter.next();
-        }
-        assertEquals(7, i);
-    }
-    
-    public void testAllString() {
-        StmtIterator iter = model.listStatements(null, null, (String) null);
-        int i =0;
-        while (iter.hasNext()) {
-            i++;
-            iter.next();
-        }
-        assertEquals(7, i);
-    }
-
-    public Model modelWithStatements( StmtIterator it )
-        {
-        Model m = ModelFactory.createDefaultModel();
-        while (it.hasNext()) m.add( it.nextStatement() );
-        return m;
-        }
-        
-    public void checkReturns( String things, StmtIterator it )
-        {
-        Model wanted = modelWithStatements( things );
-        Model got = modelWithStatements( it );
-        if (wanted.isIsomorphicWith( got ) == false)
-            fail( "wanted " + wanted + " got " + got );
-        }
-        
-    public void testListStatementsSPO()
-        {
-        Model m = ModelFactory.createDefaultModel();
-        Resource A = resource( m, "A" ), X = resource( m, "X" );
-        Property P = property( m, "P" ), P1 = property( m, "P1" );
-        RDFNode O = resource( m, "O" ), Y = resource( m, "Y" );
-        String S1 = "S P O; S1 P O; S2 P O";
-        String S2 = "A P1 B; A P1 B; A P1 C";
-        String S3 = "X P1 Y; X P2 Y; X P3 Y";
-        modelAdd( m, S1 );
-        modelAdd( m,  S2 );
-        modelAdd( m, S3 );
-        checkReturns( S1, m.listStatements( null, P, O ) );
-        checkReturns( S2, m.listStatements( A, P1, (RDFNode) null ) );
-        checkReturns( S3, m.listStatements( X, null, Y ) );
-        m.close();
-        }
-        
-    public void testListStatementsClever()
-        {
-        Model m = ModelFactory.createDefaultModel();
-        modelAdd( m, "S P O; S P O2; S P2 O; S2 P O" );
-        Selector sel = new SimpleSelector( null, null, (RDFNode) null )
-            {
-            @Override
-            public boolean test( Statement st )
-                { return 
-                        st.getSubject().toString().length() 
-                        + st.getPredicate().toString().length()
-                        + st.getObject().toString().length()
-                        == 15; /* eh:/S + eh:/P + eh:/O */
-                }
-                
-            @Override
-            public boolean isSimple()
-                { return false; }
-            };
-        checkReturns( "S P O", m.listStatements( sel ) );
-        }
+	static char charValue = 'c';
+	static long longValue = 456;
+	static float floatValue = 5.67F;
+	static double doubleValue = 6.78;
+	static String stringValue = "stringValue";
+	static String langValue = "en";
+
+	public TestSimpleListStatements( final TestingModelFactory modelFactory,
+			final String name )
+	{
+		super(modelFactory, name);
+	}
+
+	public void checkReturns( final String things, final StmtIterator it )
+	{
+		final Model wanted = ModelHelper.modelWithStatements(this, things);
+		final Model got = modelWithStatements(it);
+		if (wanted.isIsomorphicWith(got) == false)
+		{
+			Assert.fail("wanted " + wanted + " got " + got);
+		}
+	}
+
+	public Model modelWithStatements( final StmtIterator it )
+	{
+		final Model m = createModel();
+		while (it.hasNext())
+		{
+			m.add(it.nextStatement());
+		}
+		return m;
+	}
+
+	@Override
+	public void setUp() throws Exception
+	{
+
+		super.setUp();
+		model.createResource("http://example.org/boolean").addLiteral(
+				RDF.value, TestSimpleListStatements.booleanValue);
+		model.createResource("http://example.org/char").addLiteral(RDF.value,
+				TestSimpleListStatements.charValue);
+		model.createResource("http://example.org/long").addLiteral(RDF.value,
+				TestSimpleListStatements.longValue);
+		model.createResource("http://example.org/float").addLiteral(RDF.value,
+				TestSimpleListStatements.floatValue);
+		model.createResource("http://example.org/double").addLiteral(RDF.value,
+				TestSimpleListStatements.doubleValue);
+		model.createResource("http://example.org/string").addProperty(
+				RDF.value, TestSimpleListStatements.stringValue);
+		model.createResource("http://example.org/langString").addProperty(
+				RDF.value, TestSimpleListStatements.stringValue,
+				TestSimpleListStatements.langValue);
+
+	}
+
+	public void testAll()
+	{
+		final StmtIterator iter = model.listStatements(null, null,
+				(RDFNode) null);
+		int i = 0;
+		while (iter.hasNext())
+		{
+			i++;
+			iter.next();
+		}
+		Assert.assertEquals(7, i);
+	}
+
+	public void testAllString()
+	{
+		final StmtIterator iter = model.listStatements(null, null,
+				(String) null);
+		int i = 0;
+		while (iter.hasNext())
+		{
+			i++;
+			iter.next();
+		}
+		Assert.assertEquals(7, i);
+	}
+
+	public void testBoolean()
+	{
+		final List<Statement> got = model.listLiteralStatements(null, null,
+				TestSimpleListStatements.booleanValue).toList();
+		Assert.assertEquals(1, got.size());
+		final Statement it = got.get(0);
+		Assert.assertEquals(ModelHelper.resource("http://example.org/boolean"),
+				it.getSubject());
+		Assert.assertEquals(
+				model.createTypedLiteral(TestSimpleListStatements.booleanValue),
+				it.getObject());
+	}
+
+	public void testChar()
+	{
+		final List<Statement> got = model.listLiteralStatements(null, null,
+				TestSimpleListStatements.charValue).toList();
+		Assert.assertEquals(1, got.size());
+		final Statement it = got.get(0);
+		Assert.assertEquals(ModelHelper.resource("http://example.org/char"),
+				it.getSubject());
+		Assert.assertEquals(
+				model.createTypedLiteral(TestSimpleListStatements.charValue),
+				it.getObject());
+	}
+
+	public void testDouble()
+	{
+		final List<Statement> got = model.listLiteralStatements(null, null,
+				TestSimpleListStatements.doubleValue).toList();
+		Assert.assertEquals(1, got.size());
+		final Statement it = got.get(0);
+		Assert.assertEquals(ModelHelper.resource("http://example.org/double"),
+				it.getSubject());
+		Assert.assertEquals(
+				model.createTypedLiteral(TestSimpleListStatements.doubleValue),
+				it.getObject());
+	}
+
+	public void testFloat()
+	{
+		final List<Statement> got = model.listLiteralStatements(null, null,
+				TestSimpleListStatements.floatValue).toList();
+		Assert.assertEquals(1, got.size());
+		final Statement it = got.get(0);
+		Assert.assertEquals(ModelHelper.resource("http://example.org/float"),
+				it.getSubject());
+		Assert.assertEquals(
+				model.createTypedLiteral(TestSimpleListStatements.floatValue),
+				it.getObject());
+	}
+
+	public void testLangString()
+	{
+		final StmtIterator iter = model.listStatements(null, null,
+				TestSimpleListStatements.stringValue,
+				TestSimpleListStatements.langValue);
+		int i = 0;
+		while (iter.hasNext())
+		{
+			i++;
+			Assert.assertEquals(iter.nextStatement().getSubject().getURI(),
+					"http://example.org/langString");
+		}
+		Assert.assertEquals(1, i);
+	}
+
+	public void testListStatementsClever()
+	{
+
+		ModelHelper.modelAdd(model, "S P O; S P O2; S P2 O; S2 P O");
+		final Selector sel = new SimpleSelector(null, null, (RDFNode) null) {
+			@Override
+			public boolean isSimple()
+			{
+				return false;
+			}
+
+			@Override
+			public boolean test( final Statement st )
+			{
+				return (st.getSubject().toString().length()
+						+ st.getPredicate().toString().length() + st
+						.getObject().toString().length()) == 15; /*
+																 * eh:/S + eh:/P
+																 * + eh:/O
+																 */
+			}
+		};
+		checkReturns("S P O", model.listStatements(sel));
+	}
+
+	public void testListStatementsSPO()
+	{
+
+		final Resource A = ModelHelper.resource(model, "A"), X = ModelHelper
+				.resource(model, "X");
+		final Property P = ModelHelper.property(model, "P"), P1 = ModelHelper
+				.property(model, "P1");
+		final RDFNode O = ModelHelper.resource(model, "O"), Y = ModelHelper
+				.resource(model, "Y");
+		final String S1 = "S P O; S1 P O; S2 P O";
+		final String S2 = "A P1 B; A P1 B; A P1 C";
+		final String S3 = "X P1 Y; X P2 Y; X P3 Y";
+		ModelHelper.modelAdd(model, S1);
+		ModelHelper.modelAdd(model, S2);
+		ModelHelper.modelAdd(model, S3);
+		checkReturns(S1, model.listStatements(null, P, O));
+		checkReturns(S2, model.listStatements(A, P1, (RDFNode) null));
+		checkReturns(S3, model.listStatements(X, null, Y));
+	}
+
+	public void testLong()
+	{
+		final List<Statement> got = model.listLiteralStatements(null, null,
+				TestSimpleListStatements.longValue).toList();
+		Assert.assertEquals(1, got.size());
+		final Statement it = got.get(0);
+		Assert.assertEquals(ModelHelper.resource("http://example.org/long"),
+				it.getSubject());
+		Assert.assertEquals(
+				model.createTypedLiteral(TestSimpleListStatements.longValue),
+				it.getObject());
+	}
+
+	public void testString()
+	{
+		final StmtIterator iter = model.listStatements(null, null,
+				TestSimpleListStatements.stringValue);
+		int i = 0;
+		while (iter.hasNext())
+		{
+			i++;
+			Assert.assertEquals(iter.nextStatement().getSubject().getURI(),
+					"http://example.org/string");
+		}
+		Assert.assertEquals(1, i);
+	}
 }

Modified: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestSimpleSelector.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestSimpleSelector.java?rev=1433184&r1=1433183&r2=1433184&view=diff
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestSimpleSelector.java (original)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestSimpleSelector.java Mon Jan 14 22:38:35 2013
@@ -1,14 +1,14 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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.
@@ -18,120 +18,127 @@
 
 package com.hp.hpl.jena.rdf.model.test;
 
-/**
-	@author bwm out of kers
-*/
-
-import com.hp.hpl.jena.rdf.model.*;
-import com.hp.hpl.jena.vocabulary.*;
-
-import junit.framework.*;
-
-public class TestSimpleSelector extends TestCase
-    {    
-        
-    public TestSimpleSelector( String name )
-        { super( name ); }
-    
-    public static TestSuite suite()
-        { return new TestSuite( TestSimpleSelector.class ); }   
-    
-    Model model = null;    
-        
-    @Override
-    protected void setUp() throws java.lang.Exception {
-    	model = ModelFactory.createDefaultModel();
-    	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");
-    	
-    }
-    
-    @Override
-    protected void tearDown() throws java.lang.Exception {
-    	model = null;
-    }
-    
-    /**
-        A plain SimpleSelector must be simple.
-    */
-    public void testSimpleIsSimple()
-        { assertTrue( new SimpleSelector( null, null, (RDFNode) null ).isSimple() ); }
-        
-    /**
-        A random sub-class of SimpleSelector must not be simple.
-    */
-    public void testSimpleSubclassIsntSimple()
-        { assertFalse( new SimpleSelector( null, null, (RDFNode) null ){}.isSimple() ); }
-        
-    public void testAll() {
-    	StmtIterator iter = model.listStatements(
-    	  new SimpleSelector(null, null, (RDFNode) null));
-    	int i =0;
-    	while (iter.hasNext()) {
-    		i++;
-    		iter.next();
-    	}
-    	assertEquals(6, i);
-    }
-    
-    public void testFindProperty() {
-    	StmtIterator iter = model.listStatements(
-    	  new SimpleSelector(null, RDFS.label, (RDFNode) null));
-    	int i =0;
-    	while (iter.hasNext()) {
-    		i++;
-    		Statement stmt = iter.nextStatement();
-    		assertEquals(RDFS.label, stmt.getPredicate());
-    	}
-    	assertEquals(2, i);
-    }
-    
-    public void testFindObject() {
-    	StmtIterator iter = model.listStatements(
-    	  new SimpleSelector(null, null, RDFS.Resource));
-    	int i =0;
-    	while (iter.hasNext()) {
-    		i++;
-    		Statement stmt = iter.nextStatement();
-    		assertEquals(RDFS.Resource, stmt.getObject());
-    	}
-    	assertEquals(2, i);
-    }
-    
-    public void testFindSubject() {
-    	StmtIterator iter = model.listStatements(
-    	  new SimpleSelector(null, null, RDFS.Resource));
-    	assertTrue(iter.hasNext());
-    	Resource subject = iter.nextStatement()
-    	                       .getSubject();
-    	iter = model.listStatements(
-    	  new SimpleSelector(subject, null, (RDFNode) null));
-    	int i =0;
-    	while (iter.hasNext()) {
-    		i++;
-    		Statement stmt = iter.nextStatement();
-    		assertEquals(subject, stmt.getSubject());
-    	}
-    	assertEquals(3, i);
-    }
-    
-    public void testFindPropertyAndObject() {
-    	StmtIterator iter = model.listStatements(
-    	  new SimpleSelector(null, RDF.value, 123));
-    	int i =0;
-    	while (iter.hasNext()) {
-    		i++;
-    		Statement stmt = iter.nextStatement();
-    		assertEquals(RDF.value, stmt.getPredicate());
-    		assertEquals(123, stmt.getInt()); 
-      	}
-    	assertEquals(2, i);
-    }
-    
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.SimpleSelector;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.StmtIterator;
+import com.hp.hpl.jena.rdf.model.test.helpers.TestingModelFactory;
+import com.hp.hpl.jena.vocabulary.RDF;
+import com.hp.hpl.jena.vocabulary.RDFS;
+
+import junit.framework.Assert;
+
+public class TestSimpleSelector extends AbstractModelTestBase
+{
+
+	public TestSimpleSelector( final TestingModelFactory modelFactory,
+			final String name )
+	{
+		super(modelFactory, name);
+	}
+
+	@Override
+	public void setUp() throws Exception
+	{
+		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());
+	}
+
 }

Added: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatementCreation.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatementCreation.java?rev=1433184&view=auto
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatementCreation.java (added)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatementCreation.java Mon Jan 14 22:38:35 2013
@@ -0,0 +1,190 @@
+/*
+ * 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 com.hp.hpl.jena.rdf.model.test;
+
+import com.hp.hpl.jena.datatypes.xsd.XSDDatatype;
+import com.hp.hpl.jena.rdf.model.Literal;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.Property;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.ResourceFactory;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.test.helpers.TestingModelFactory;
+import com.hp.hpl.jena.vocabulary.RDF;
+import com.hp.hpl.jena.vocabulary.RDFS;
+
+import junit.framework.Assert;
+
+public class TestStatementCreation extends AbstractModelTestBase
+{
+
+	static final String subjURI = "http://aldabaran.hpl.hp.com/foo";
+	static final String predURI = "http://aldabaran.hpl.hp.com/bar";
+
+	protected Resource r;
+	protected Property p;
+
+	public TestStatementCreation( final TestingModelFactory modelFactory,
+			final String name )
+	{
+		super(modelFactory, name);
+	}
+
+	@Override
+	public void setUp() throws Exception
+	{
+		super.setUp();
+		r = model.createResource(TestStatementCreation.subjURI);
+		p = model.createProperty(TestStatementCreation.predURI);
+	}
+
+	@Override
+	public void tearDown() throws Exception
+	{
+		r = null;
+		p = null;
+		super.tearDown();
+	}
+
+	public void testCreateStatementByteMax()
+	{
+		final Statement s = model.createLiteralStatement(r, p, Byte.MAX_VALUE);
+		Assert.assertEquals(r, s.getSubject());
+		Assert.assertEquals(p, s.getPredicate());
+		Assert.assertEquals(Byte.MAX_VALUE, s.getByte());
+	}
+
+	public void testCreateStatementChar()
+	{
+		final Statement s = model.createLiteralStatement(r, p, '$');
+		Assert.assertEquals(r, s.getSubject());
+		Assert.assertEquals(p, s.getPredicate());
+		Assert.assertEquals('$', s.getChar());
+	}
+
+	public void testCreateStatementDouble()
+	{
+		final Statement s = model.createStatement(r, p,
+				model.createTypedLiteral(12345.67890d));
+		Assert.assertEquals(r, s.getSubject());
+		Assert.assertEquals(p, s.getPredicate());
+		Assert.assertEquals(12345.67890d, s.getDouble(), 0.0000005);
+	}
+
+	public void testCreateStatementFactory()
+	{
+		final LitTestObj tv = new LitTestObj(Long.MIN_VALUE);
+		final Statement s = model.createLiteralStatement(r, p, tv);
+		Assert.assertEquals(r, s.getSubject());
+		Assert.assertEquals(p, s.getPredicate());
+		// assertEquals( tv, s.getObject( new LitTestObjF() ) );
+	}
+
+	public void testCreateStatementFloat()
+	{
+		final Statement s = model.createStatement(r, p,
+				model.createTypedLiteral(123.456f));
+		Assert.assertEquals(r, s.getSubject());
+		Assert.assertEquals(p, s.getPredicate());
+		Assert.assertEquals(123.456f, s.getFloat(), 0.0005);
+	}
+
+	public void testCreateStatementIntMax()
+	{
+		final Statement s = model.createLiteralStatement(r, p,
+				Integer.MAX_VALUE);
+		Assert.assertEquals(r, s.getSubject());
+		Assert.assertEquals(p, s.getPredicate());
+		Assert.assertEquals(Integer.MAX_VALUE, s.getInt());
+	}
+
+	public void testCreateStatementLongMax()
+	{
+		final Statement s = model.createLiteralStatement(r, p, Long.MAX_VALUE);
+		Assert.assertEquals(r, s.getSubject());
+		Assert.assertEquals(p, s.getPredicate());
+		Assert.assertEquals(Long.MAX_VALUE, s.getLong());
+	}
+
+	public void testCreateStatementResource()
+	{
+		final Resource tv = model.createResource();
+		final Statement s = model.createStatement(r, p, tv);
+		Assert.assertEquals(r, s.getSubject());
+		Assert.assertEquals(p, s.getPredicate());
+		Assert.assertEquals(tv, s.getResource());
+	}
+
+	public void testCreateStatementShortMax()
+	{
+		final Statement s = model.createLiteralStatement(r, p, Short.MAX_VALUE);
+		Assert.assertEquals(r, s.getSubject());
+		Assert.assertEquals(p, s.getPredicate());
+		Assert.assertEquals(Short.MAX_VALUE, s.getShort());
+	}
+
+	public void testCreateStatementString()
+	{
+		final String string = "this is a plain string", lang = "en";
+		final Statement s = model.createStatement(r, p, string);
+		Assert.assertEquals(r, s.getSubject());
+		Assert.assertEquals(p, s.getPredicate());
+		Assert.assertEquals(string, s.getString());
+		Assert.assertEquals(lang, model.createStatement(r, p, string, lang)
+				.getLanguage());
+	}
+
+	public void testCreateStatementTrue()
+	{
+		final Statement s = model.createLiteralStatement(r, p, true);
+		Assert.assertEquals(r, s.getSubject());
+		Assert.assertEquals(p, s.getPredicate());
+		Assert.assertEquals(true, s.getBoolean());
+	}
+
+	public void testCreateStatementTypeLiteral()
+	{
+		final Model model = ModelFactory.createDefaultModel();
+		final Resource R = model.createResource("http://example/r");
+		final Property P = model.createProperty("http://example/p");
+		model.add(R, P, "2", XSDDatatype.XSDinteger);
+		final Literal L = ResourceFactory.createTypedLiteral("2",
+				XSDDatatype.XSDinteger);
+		Assert.assertTrue(model.contains(R, P, L));
+		Assert.assertFalse(model.contains(R, P, "2"));
+	}
+
+	public void testNotReified()
+	{
+		Statement s1 = null;
+		Statement s2 = null;
+		s1 = model
+				.createStatement(model.createResource(), RDF.type, RDFS.Class);
+		Assert.assertFalse("Should not be reified", s1.isReified());
+		model.add(s1);
+		Assert.assertFalse("Should not be reified", s1.isReified());
+
+		s2 = model
+				.createStatement(model.createResource(), RDF.type, RDFS.Class);
+		Assert.assertFalse("Should not be reified", s2.isReified());
+		model.add(s2);
+		Assert.assertFalse("Should not be reified", s2.isReified());
+	}
+}

Added: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatementMethods.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatementMethods.java?rev=1433184&view=auto
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatementMethods.java (added)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatementMethods.java Mon Jan 14 22:38:35 2013
@@ -0,0 +1,422 @@
+/*
+ * 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 com.hp.hpl.jena.rdf.model.test;
+
+import com.hp.hpl.jena.rdf.model.Alt;
+import com.hp.hpl.jena.rdf.model.Bag;
+import com.hp.hpl.jena.rdf.model.LiteralRequiredException;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.ResourceRequiredException;
+import com.hp.hpl.jena.rdf.model.Seq;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.test.helpers.TestingModelFactory;
+import com.hp.hpl.jena.test.JenaTestBase;
+import com.hp.hpl.jena.vocabulary.RDF;
+
+import junit.framework.Assert;
+
+// import com.hp.hpl.jena.regression.Regression.*;
+
+public class TestStatementMethods extends AbstractModelTestBase
+{
+
+	protected Resource r;
+
+	public TestStatementMethods( final TestingModelFactory modelFactory,
+			final String name )
+	{
+		super(modelFactory, name);
+	}
+
+	protected void checkChangedStatementSP( final Statement changed )
+	{
+		Assert.assertEquals(r, changed.getSubject());
+		Assert.assertEquals(RDF.value, changed.getPredicate());
+	}
+
+	protected void checkCorrectStatements( final Statement sTrue,
+			final Statement changed )
+	{
+		Assert.assertFalse(model.contains(sTrue));
+		Assert.assertFalse(model.containsLiteral(r, RDF.value, true));
+		Assert.assertTrue(model.contains(changed));
+	}
+
+	protected Statement loadInitialStatement()
+	{
+		final Statement sTrue = model
+				.createLiteralStatement(r, RDF.value, true);
+		model.add(sTrue);
+		return sTrue;
+	}
+
+	@Override
+	public void setUp() throws Exception
+	{
+		super.setUp();
+		r = model.createResource();
+	}
+
+	public void testAlt()
+	{
+		final Alt tvAlt = model.createAlt();
+		Assert.assertEquals(tvAlt, model.createStatement(r, RDF.value, tvAlt)
+				.getAlt());
+	}
+
+	public void testBag()
+	{
+		final Bag tvBag = model.createBag();
+		Assert.assertEquals(tvBag, model.createStatement(r, RDF.value, tvBag)
+				.getBag());
+	}
+
+	public void testBoolean()
+	{
+		final Statement s = model.createLiteralStatement(r, RDF.value, true);
+		Assert.assertEquals(model.createTypedLiteral(true), s.getObject());
+		Assert.assertEquals(true, s.getBoolean());
+	}
+
+	public void testByte()
+	{
+		final Statement s = model.createLiteralStatement(r, RDF.value,
+				AbstractModelTestBase.tvByte);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvByte),
+				s.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvByte, s.getLong());
+	}
+
+	public void testChangeObjectBoolean()
+	{
+		final Statement sTrue = loadInitialStatement();
+		final Statement sFalse = sTrue.changeLiteralObject(false);
+		checkChangedStatementSP(sFalse);
+		Assert.assertEquals(model.createTypedLiteral(false), sFalse.getObject());
+		Assert.assertEquals(false, sFalse.getBoolean());
+		checkCorrectStatements(sTrue, sFalse);
+		Assert.assertTrue(model.containsLiteral(r, RDF.value, false));
+	}
+
+	public void testChangeObjectByte()
+	{
+		final Statement sTrue = loadInitialStatement();
+		final Statement changed = sTrue
+				.changeLiteralObject(AbstractModelTestBase.tvByte);
+		checkChangedStatementSP(changed);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvByte),
+				changed.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvByte, changed.getByte());
+		checkCorrectStatements(sTrue, changed);
+		Assert.assertTrue(model.containsLiteral(r, RDF.value,
+				AbstractModelTestBase.tvByte));
+	}
+
+	public void testChangeObjectChar()
+	{
+		final Statement sTrue = loadInitialStatement();
+		final Statement changed = sTrue
+				.changeLiteralObject(AbstractModelTestBase.tvChar);
+		checkChangedStatementSP(changed);
+		Assert.assertEquals(AbstractModelTestBase.tvChar, changed.getChar());
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvChar),
+				changed.getObject());
+		checkCorrectStatements(sTrue, changed);
+		Assert.assertTrue(model.containsLiteral(r, RDF.value,
+				AbstractModelTestBase.tvChar));
+	}
+
+	public void testChangeObjectDouble()
+	{
+		final Statement sTrue = loadInitialStatement();
+		final Statement changed = sTrue
+				.changeLiteralObject(AbstractModelTestBase.tvDouble);
+		checkChangedStatementSP(changed);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvDouble),
+				changed.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvDouble,
+				changed.getDouble(), AbstractModelTestBase.dDelta);
+		checkCorrectStatements(sTrue, changed);
+		Assert.assertTrue(model.containsLiteral(r, RDF.value,
+				AbstractModelTestBase.tvDouble));
+	}
+
+	public void testChangeObjectFloat()
+	{
+		final Statement sTrue = loadInitialStatement();
+		final Statement changed = sTrue
+				.changeLiteralObject(AbstractModelTestBase.tvFloat);
+		checkChangedStatementSP(changed);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvFloat),
+				changed.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvFloat, changed.getFloat(),
+				AbstractModelTestBase.fDelta);
+		checkCorrectStatements(sTrue, changed);
+		Assert.assertTrue(model.containsLiteral(r, RDF.value,
+				AbstractModelTestBase.tvFloat));
+	}
+
+	public void testChangeObjectInt()
+	{
+		final Statement sTrue = loadInitialStatement();
+		final Statement changed = sTrue
+				.changeLiteralObject(AbstractModelTestBase.tvInt);
+		checkChangedStatementSP(changed);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvInt),
+				changed.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvInt, changed.getInt());
+		checkCorrectStatements(sTrue, changed);
+		Assert.assertTrue(model.containsLiteral(r, RDF.value,
+				AbstractModelTestBase.tvInt));
+	}
+
+	public void testChangeObjectLiteral()
+	{
+		final Statement sTrue = loadInitialStatement();
+		model.remove(sTrue);
+		Assert.assertFalse(model.contains(sTrue));
+		Assert.assertFalse(model.containsLiteral(r, RDF.value, true));
+	}
+
+	// public void testResObj()
+	// {
+	// Resource tvResObj = model.createResource( new ResTestObjF() );
+	// assertEquals( tvResObj, model.createStatement( r, RDF.value, tvResObj
+	// ).getResource() );
+	// }
+
+	// public void testLitObj()
+	// {
+	// assertEquals( tvLitObj, model.createLiteralStatement( r, RDF.value,
+	// tvLitObj ).getObject( new LitTestObjF() ) );
+	// }
+
+	public void testChangeObjectLong()
+	{
+		final Statement sTrue = loadInitialStatement();
+		final Statement changed = sTrue
+				.changeLiteralObject(AbstractModelTestBase.tvLong);
+		checkChangedStatementSP(changed);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvLong),
+				changed.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvLong, changed.getLong());
+		checkCorrectStatements(sTrue, changed);
+		Assert.assertTrue(model.containsLiteral(r, RDF.value,
+				AbstractModelTestBase.tvLong));
+	}
+
+	public void testChangeObjectShort()
+	{
+		final Statement sTrue = loadInitialStatement();
+		final Statement changed = sTrue
+				.changeLiteralObject(AbstractModelTestBase.tvShort);
+		checkChangedStatementSP(changed);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvShort),
+				changed.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvShort, changed.getShort());
+		checkCorrectStatements(sTrue, changed);
+		Assert.assertTrue(model.containsLiteral(r, RDF.value,
+				AbstractModelTestBase.tvShort));
+	}
+
+	public void testChangeObjectString()
+	{
+		final Statement sTrue = loadInitialStatement();
+		final Statement changed = sTrue
+				.changeObject(AbstractModelTestBase.tvString);
+		checkChangedStatementSP(changed);
+		Assert.assertEquals(AbstractModelTestBase.tvString, changed.getString());
+		checkCorrectStatements(sTrue, changed);
+		Assert.assertTrue(model.contains(r, RDF.value,
+				AbstractModelTestBase.tvString));
+	}
+
+	public void testChangeObjectStringWithLanguage()
+	{
+		final String lang = "en";
+		final Statement sTrue = loadInitialStatement();
+		final Statement changed = sTrue.changeObject(
+				AbstractModelTestBase.tvString, lang);
+		checkChangedStatementSP(changed);
+		Assert.assertEquals(AbstractModelTestBase.tvString, changed.getString());
+		Assert.assertEquals(lang, changed.getLanguage());
+		checkCorrectStatements(sTrue, changed);
+		Assert.assertTrue(model.contains(r, RDF.value,
+				AbstractModelTestBase.tvString, lang));
+	}
+
+	public void testChangeObjectYByte()
+	{
+		final Statement sTrue = loadInitialStatement();
+		final Statement changed = sTrue
+				.changeLiteralObject(AbstractModelTestBase.tvByte);
+		checkChangedStatementSP(changed);
+		Assert.assertEquals(AbstractModelTestBase.tvByte, changed.getByte());
+		checkCorrectStatements(sTrue, changed);
+		Assert.assertTrue(model.containsLiteral(r, RDF.value,
+				AbstractModelTestBase.tvByte));
+	}
+
+	public void testChar()
+	{
+		final Statement s = model.createLiteralStatement(r, RDF.value,
+				AbstractModelTestBase.tvChar);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvChar),
+				s.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvChar, s.getChar());
+	}
+
+	public void testDouble()
+	{
+		final Statement s = model.createLiteralStatement(r, RDF.value,
+				AbstractModelTestBase.tvDouble);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvDouble),
+				s.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvDouble, s.getDouble(),
+				AbstractModelTestBase.dDelta);
+	}
+
+	public void testFloat()
+	{
+		final Statement s = model.createLiteralStatement(r, RDF.value,
+				AbstractModelTestBase.tvFloat);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvFloat),
+				s.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvFloat, s.getFloat(),
+				AbstractModelTestBase.fDelta);
+	}
+
+	public void testGetLiteralFailure()
+	{
+		try
+		{
+			model.createStatement(r, RDF.value, r).getLiteral();
+			Assert.fail("should trap non-literal object");
+		}
+		catch (final LiteralRequiredException e)
+		{
+			JenaTestBase.pass();
+		}
+	}
+
+	public void testGetResource()
+	{
+		Assert.assertEquals(r, model.createStatement(r, RDF.value, r)
+				.getResource());
+	}
+
+	public void testGetResourceFailure()
+	{
+		try
+		{
+			model.createLiteralStatement(r, RDF.value, false).getResource();
+			Assert.fail("should trap non-resource object");
+		}
+		catch (final ResourceRequiredException e)
+		{
+			JenaTestBase.pass();
+		}
+	}
+
+	public void testGetTrueBoolean()
+	{
+		Assert.assertEquals(true,
+				model.createLiteralStatement(r, RDF.value, true).getLiteral()
+						.getBoolean());
+	}
+
+	public void testInt()
+	{
+		final Statement s = model.createLiteralStatement(r, RDF.value,
+				AbstractModelTestBase.tvInt);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvInt),
+				s.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvInt, s.getInt());
+	}
+
+	// public void testChangeObjectResObject()
+	// {
+	// Resource tvResObj = model.createResource( new ResTestObjF() );
+	// Statement sTrue = loadInitialStatement();
+	// Statement changed = sTrue.changeObject( tvResObj );
+	// checkChangedStatementSP( changed );
+	// assertEquals( tvResObj, changed.getResource() );
+	// checkCorrectStatements( sTrue, changed );
+	// assertTrue( model.contains( r, RDF.value, tvResObj ) );
+	// }
+
+	public void testLong()
+	{
+		final Statement s = model.createLiteralStatement(r, RDF.value,
+				AbstractModelTestBase.tvLong);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvLong),
+				s.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvLong, s.getLong());
+	}
+
+	public void testSeq()
+	{
+		final Seq tvSeq = model.createSeq();
+		Assert.assertEquals(tvSeq, model.createStatement(r, RDF.value, tvSeq)
+				.getSeq());
+	}
+
+	public void testShort()
+	{
+		final Statement s = model.createLiteralStatement(r, RDF.value,
+				AbstractModelTestBase.tvShort);
+		Assert.assertEquals(
+				model.createTypedLiteral(AbstractModelTestBase.tvShort),
+				s.getObject());
+		Assert.assertEquals(AbstractModelTestBase.tvShort, s.getShort());
+	}
+
+	public void testString()
+	{
+		Assert.assertEquals(AbstractModelTestBase.tvString, model
+				.createStatement(r, RDF.value, AbstractModelTestBase.tvString)
+				.getString());
+	}
+
+	public void testStringWithLanguage()
+	{
+		final String lang = "fr";
+		Assert.assertEquals(
+				AbstractModelTestBase.tvString,
+				model.createStatement(r, RDF.value,
+						AbstractModelTestBase.tvString, lang).getString());
+		Assert.assertEquals(
+				lang,
+				model.createStatement(r, RDF.value,
+						AbstractModelTestBase.tvString, lang).getLanguage());
+	}
+}

Modified: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatements.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatements.java?rev=1433184&r1=1433183&r2=1433184&view=diff
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatements.java (original)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/TestStatements.java Mon Jan 14 22:38:35 2013
@@ -1,14 +1,14 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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.
@@ -19,125 +19,137 @@
 package com.hp.hpl.jena.rdf.model.test;
 
 import com.hp.hpl.jena.graph.FrontsTriple;
-import com.hp.hpl.jena.rdf.model.*;
-import junit.framework.*;
-
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.Property;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.test.helpers.ModelHelper;
+import com.hp.hpl.jena.rdf.model.test.helpers.TestingModelFactory;
+import com.hp.hpl.jena.test.JenaTestBase;
 import com.hp.hpl.jena.vocabulary.RDF;
 
-public class TestStatements extends ModelTestBase
-    {
-    public TestStatements( String name )
-        { super( name ); }
-    
-    public static TestSuite suite()
-        { return new TestSuite( TestStatements.class ); }   
-    
-    public void testStatmentMap1Selectors()
-        {
-        Statement s = statement( "sub pred obj" );
-        assertEquals( resource( "sub" ), Statement.Util.getSubject.map1( s ) );
-        assertEquals( resource( "pred" ), Statement.Util.getPredicate.map1( s ) );
-        assertEquals( resource( "obj" ), Statement.Util.getObject.map1( s ) );
-        }
-    
-    /**
-        this case came up when Chris was sorting out ReifedStatement and
-        had mishacked Model.createStatement. A resource created in one
-        model and incorporated into a statement asserted constructed by a
-        different model should test equal to the resource extracted from that
-        statement, even if it's a bnode.
-    */
-    public void testStuff()
-        {
-        Model red = ModelFactory.createDefaultModel();
-        Model blue = ModelFactory.createDefaultModel();
-        Resource r = red.createResource();
-        Property p = red.createProperty( "" );
-        Statement s = blue.createStatement( r, p, r );
-        assertEquals( "subject preserved", r, s.getSubject() );
-        assertEquals( "object preserved", r, s.getObject() );
-        }
-        
-    public void testOtherStuff()
-        {
-        Model A = ModelFactory.createDefaultModel();
-        Model B = ModelFactory.createDefaultModel();
-        Resource S = A.createResource( "jena:S" );
-        Resource R = A.createResource( "jena:R" );
-        Property P = A.createProperty( "jena:P" );
-        RDFNode O = A.createResource( "jena:O" );
-        A.add( S, P, O );
-        B.add( S, P, O );
-        assertTrue( "X1", A.isIsomorphicWith( B ) );
-    /* */
-        A.add( R, RDF.subject, S );
-        B.add( R, RDF.predicate, P );
-        assertFalse( "X2", A.isIsomorphicWith( B ) );
-    /* */
-        A.add( R, RDF.predicate, P );
-        B.add( R, RDF.subject, S );
-        assertTrue( "X3", A.isIsomorphicWith( B ) );
-    /* */
-        A.add( R, RDF.object, O );
-        B.add( R, RDF.type, RDF.Statement );
-        assertFalse( "X4", A.isIsomorphicWith( B ) );
-    /* */
-        A.add( R, RDF.type, RDF.Statement );
-        B.add( R, RDF.object, O );
-        assertTrue( "X5", A.isIsomorphicWith( B ) );
-        }
-        
-    public void testSet()
-        {
-        Model A = ModelFactory.createDefaultModel();
-        Model B = ModelFactory.createDefaultModel();
-        Resource S = A.createResource( "jena:S" );
-        Resource R = A.createResource( "jena:R" );
-        Property P = A.createProperty( "jena:P" );
-        RDFNode O = A.createResource( "jena:O" );
-        Statement spo = A.createStatement( S, P, O );
-        A.add( spo );
-        Statement sps = A.createStatement( S, P, S );
-        assertEquals( sps, spo.changeObject( S ) );
-        assertFalse( A.contains( spo ) );
-        assertTrue( A.contains( sps ) );
-        }
-        
-    public void testPortingBlankNodes()
-        {
-        Model A = ModelFactory.createDefaultModel();
-        Model B = ModelFactory.createDefaultModel();
-        Resource anon = A.createResource();
-        Resource bAnon = anon.inModel( B );
-        assertTrue( "moved resource should still be blank", bAnon.isAnon() );
-        assertEquals( "move resource should equal original", anon, bAnon );
-        }
-        
-    public void testTripleWrapper()
-    	{
-    	Model A = ModelFactory.createDefaultModel();
-    	assertInstanceOf( FrontsTriple.class, statement( A, "s p o" ) );
-    	}
-    
-    /**
-        Feeble test that toString'ing a Statement[Impl] will display the data-type
-        of its object if it has one.
-    */
-    public void testStatementPrintsType()
-        {            
-        Model m = ModelFactory.createDefaultModel();
-        String fakeURI = "fake:URI";
-        Resource S = m.createResource( ) ; 
-        Property P = property( m, "PP" );
-        RDFNode O = m.createTypedLiteral( "42",  fakeURI);
-        Statement st = m.createStatement( S, P, O );
-        assertTrue( st.toString().indexOf( fakeURI ) > 0 );  
-        }
-    
-    public void testHasWellFormedXML()
-        {
-        assertFalse( statement( "s P 1" ).hasWellFormedXML() );
-        assertFalse( statement( "S P '<x>/x>'rdf:XMLLiteral" ).hasWellFormedXML() );
-        assertTrue( statement( "S P '<x></x>'rdf:XMLLiteral" ).hasWellFormedXML() );
-        }
-    }
+import junit.framework.Assert;
+
+public class TestStatements extends AbstractModelTestBase
+{
+	public TestStatements( final TestingModelFactory modelFactory,
+			final String name )
+	{
+		super(modelFactory, name);
+	}
+
+	public void testHasWellFormedXML()
+	{
+		Assert.assertFalse(ModelHelper.statement("s P 1").hasWellFormedXML());
+		Assert.assertFalse(ModelHelper.statement("S P '<x>/x>'rdf:XMLLiteral")
+				.hasWellFormedXML());
+		Assert.assertTrue(ModelHelper.statement("S P '<x></x>'rdf:XMLLiteral")
+				.hasWellFormedXML());
+	}
+
+	public void testOtherStuff()
+	{
+		final Model A = createModel();
+		final Model B = createModel();
+		final Resource S = A.createResource("jena:S");
+		final Resource R = A.createResource("jena:R");
+		final Property P = A.createProperty("jena:P");
+		final RDFNode O = A.createResource("jena:O");
+		A.add(S, P, O);
+		B.add(S, P, O);
+		Assert.assertTrue("X1", A.isIsomorphicWith(B));
+		/* */
+		A.add(R, RDF.subject, S);
+		B.add(R, RDF.predicate, P);
+		Assert.assertFalse("X2", A.isIsomorphicWith(B));
+		/* */
+		A.add(R, RDF.predicate, P);
+		B.add(R, RDF.subject, S);
+		Assert.assertTrue("X3", A.isIsomorphicWith(B));
+		/* */
+		A.add(R, RDF.object, O);
+		B.add(R, RDF.type, RDF.Statement);
+		Assert.assertFalse("X4", A.isIsomorphicWith(B));
+		/* */
+		A.add(R, RDF.type, RDF.Statement);
+		B.add(R, RDF.object, O);
+		Assert.assertTrue("X5", A.isIsomorphicWith(B));
+	}
+
+	public void testPortingBlankNodes()
+	{
+		final Model B = createModel();
+		final Resource anon = model.createResource();
+		final Resource bAnon = anon.inModel(B);
+		Assert.assertTrue("moved resource should still be blank",
+				bAnon.isAnon());
+		Assert.assertEquals("move resource should equal original", anon, bAnon);
+	}
+
+	public void testSet()
+	{
+		final Model A = createModel();
+		createModel();
+		final Resource S = A.createResource("jena:S");
+		A.createResource("jena:R");
+		final Property P = A.createProperty("jena:P");
+		final RDFNode O = A.createResource("jena:O");
+		final Statement spo = A.createStatement(S, P, O);
+		A.add(spo);
+		final Statement sps = A.createStatement(S, P, S);
+		Assert.assertEquals(sps, spo.changeObject(S));
+		Assert.assertFalse(A.contains(spo));
+		Assert.assertTrue(A.contains(sps));
+	}
+
+	/**
+	 * Feeble test that toString'ing a Statement[Impl] will display the
+	 * data-type
+	 * of its object if it has one.
+	 */
+	public void testStatementPrintsType()
+	{
+		final String fakeURI = "fake:URI";
+		final Resource S = model.createResource();
+		final Property P = ModelHelper.property(model, "PP");
+		final RDFNode O = model.createTypedLiteral("42", fakeURI);
+		final Statement st = model.createStatement(S, P, O);
+		Assert.assertTrue(st.toString().indexOf(fakeURI) > 0);
+	}
+
+	public void testStatmentMap1Selectors()
+	{
+		final Statement s = ModelHelper.statement("sub pred obj");
+		Assert.assertEquals(ModelHelper.resource("sub"),
+				Statement.Util.getSubject.map1(s));
+		Assert.assertEquals(ModelHelper.resource("pred"),
+				Statement.Util.getPredicate.map1(s));
+		Assert.assertEquals(ModelHelper.resource("obj"),
+				Statement.Util.getObject.map1(s));
+	}
+
+	/**
+	 * this case came up when Chris was sorting out ReifedStatement and
+	 * had mishacked Model.createStatement. A resource created in one
+	 * model and incorporated into a statement asserted constructed by a
+	 * different model should test equal to the resource extracted from that
+	 * statement, even if it's a bnode.
+	 */
+	public void testStuff()
+	{
+		final Model red = createModel();
+		final Model blue = createModel();
+		final Resource r = red.createResource();
+		final Property p = red.createProperty("");
+		final Statement s = blue.createStatement(r, p, r);
+		Assert.assertEquals("subject preserved", r, s.getSubject());
+		Assert.assertEquals("object preserved", r, s.getObject());
+	}
+
+	public void testTripleWrapper()
+	{
+		JenaTestBase.assertInstanceOf(FrontsTriple.class,
+				ModelHelper.statement(model, "s p o"));
+	}
+}

Added: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/ModelHelper.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/ModelHelper.java?rev=1433184&view=auto
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/ModelHelper.java (added)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/ModelHelper.java Mon Jan 14 22:38:35 2013
@@ -0,0 +1,231 @@
+/*
+ * 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 com.hp.hpl.jena.rdf.model.test.helpers;
+
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.graph.test.GraphTestBase;
+import com.hp.hpl.jena.graph.test.NodeCreateUtils;
+import com.hp.hpl.jena.rdf.model.Literal;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.Property;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.ResourceFactory;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.test.AbstractModelTestBase;
+import com.hp.hpl.jena.shared.PrefixMapping;
+import com.hp.hpl.jena.util.CollectionFactory;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+import org.junit.Ignore;
+
+/**
+    provides useful functionality for testing models, eg building small models
+    from strings, testing equality, etc.
+
+    Currently this class extends GraphTestBase and thus TestCase.
+
+    TODO: Refactoring should remove the TestCase dependency in future.
+
+ */
+@Ignore // ignore this class as a test case.
+public class ModelHelper extends GraphTestBase
+{
+	private ModelHelper(String name)
+	{ super(name); }
+
+
+	protected static Model aModel;
+
+	static {
+		aModel = ModelFactory.createDefaultModel();
+		aModel.setNsPrefixes( PrefixMapping.Extended );
+	}
+
+	protected static final Model empty = ModelFactory.createDefaultModel();
+
+	protected static Model extendedModel(AbstractModelTestBase base)
+	{
+		Model result = base.createModel();
+		result.setNsPrefixes( PrefixMapping.Extended );
+		return result;
+	}
+
+	protected static String nice( RDFNode n )
+	{ return nice( n.asNode() ); }
+
+	/**
+        create a Statement in a given Model with (S, P, O) extracted by parsing a string.
+
+        @param model the model the statement is attached to
+        @param an "S P O" string.
+        @return model.createStatement(S, P, O)
+	 */
+	public static Statement statement( Model m, String fact )
+	{
+		StringTokenizer st = new StringTokenizer( fact );
+		Resource sub = resource( m, st.nextToken() );
+		Property pred = property( m, st.nextToken() );
+		RDFNode obj = rdfNode( m, st.nextToken() );
+		return m.createStatement( sub, pred, obj );
+	}
+
+	public static Statement statement( String fact )
+	{ return statement( aModel, fact ); }
+
+	public static RDFNode rdfNode( Model m, String s )
+	{ return m.asRDFNode( NodeCreateUtils.create( m, s ) ); }
+
+	public static <T extends RDFNode> T rdfNode( Model m, String s, Class<T> c )
+	{ return rdfNode( m, s ).as(  c  );  }
+
+	public static Resource resource()
+	{ return ResourceFactory.createResource(); }
+
+	public static Resource resource( String s )
+	{ return resource( aModel, s ); }
+
+	public static Resource resource( Model m, String s )
+	{ return (Resource) rdfNode( m, s ); }
+
+	public static Property property( String s )
+	{ return property( aModel, s ); }
+
+	public static Property property( Model m, String s )
+	{ return rdfNode( m, s ).as( Property.class ); }
+
+	public static Literal literal( Model m, String s )
+	{ return rdfNode( m, s ).as( Literal.class ); }
+
+	/**
+        Create an array of Statements parsed from a semi-separated string.
+
+        @param model a model to serve as a statement factory
+        @param facts a sequence of semicolon-separated "S P O" facts
+        @return a Statement[] of the (S P O) statements from the string
+	 */
+	public static Statement [] statements( Model m, String facts )
+	{
+		ArrayList<Statement> sl = new ArrayList<Statement>();
+		StringTokenizer st = new StringTokenizer( facts, ";" );
+		while (st.hasMoreTokens()) sl.add( statement( m, st.nextToken() ) );
+		return sl.toArray( new Statement[sl.size()] );
+	}
+
+	/**
+        Create an array of Resources from a whitespace-separated string
+
+        @param model a model to serve as a resource factory
+        @param items a whitespace-separated sequence to feed to resource
+        @return a RDFNode[] of the parsed resources
+	 */
+	public static Resource [] resources( Model m, String items )
+	{
+		ArrayList<Resource> rl = new ArrayList<Resource>();
+		StringTokenizer st = new StringTokenizer( items );
+		while (st.hasMoreTokens()) rl.add( resource( m, st.nextToken() ) );
+		return rl.toArray( new Resource[rl.size()] );
+	}
+
+	/**
+        Answer the set of resources given by the space-separated
+        <code>items</code> string. Each resource specification is interpreted
+        as per <code>resource</code>.
+	 */
+	public static Set<Resource> resourceSet( String items )
+	{
+		Set<Resource> result = new HashSet<Resource>();
+		StringTokenizer st = new StringTokenizer( items );
+		while (st.hasMoreTokens()) result.add( resource(  st.nextToken() ) );
+		return result;
+	}
+
+	/**
+        add to a model all the statements expressed by a string.
+
+        @param model the model to be updated
+        @param facts a sequence of semicolon-separated "S P O" facts
+        @return the updated model
+	 */
+	public static Model modelAdd( Model m, String facts )
+	{
+		StringTokenizer semis = new StringTokenizer( facts, ";" );
+		while (semis.hasMoreTokens()) m.add( statement( m, semis.nextToken() ) );
+		return m;
+	}
+
+	/**
+        makes a model with a given reiifcation style, initialised with statements parsed
+        from a string.
+
+        @param facts a string in semicolon-separated "S P O" format
+        @return a model containing those facts
+	 */
+	public static Model modelWithStatements( AbstractModelTestBase base, String facts )
+	{ return modelAdd( createModel( base ), facts ); }
+
+	/**
+        make a model and give it Extended prefixes
+	 */
+	public static Model createModel( AbstractModelTestBase base )
+	{
+		Model result = base.createModel();
+		result.setNsPrefixes( PrefixMapping.Extended );
+		return result;
+	}
+
+	/**
+        Answer a default model; it exists merely to abbreviate the rather long explicit
+        invocation.
+
+     	@return a new default [aka memory-based] model
+	 */
+	//public static Model createMemModel()
+	//     { return ModelFactory.createDefaultModel(); }
+
+	/**
+        test that two models are isomorphic and fail if they are not.
+
+        @param title a String appearing at the beginning of the failure message
+        @param wanted the model value that is expected
+        @param got the model value to check
+        @exception if the models are not isomorphic
+	 */
+	public static void assertIsoModels( String title, Model wanted, Model got )
+	{
+		if (wanted.isIsomorphicWith( got ) == false)
+		{
+			Map<Node, Object> map = CollectionFactory.createHashedMap();
+			fail( title + ": expected " + nice( wanted.getGraph(), map ) + "\n but had " + nice( got.getGraph(), map ) );
+		}
+	}
+
+	/**
+        Fail if the two models are not isomorphic. See assertIsoModels(String,Model,Model).
+	 */
+	public static  void assertIsoModels( Model wanted, Model got )
+	{ assertIsoModels( "models must be isomorphic", wanted, got ); }
+
+}

Added: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/RecordingModelListener.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/RecordingModelListener.java?rev=1433184&view=auto
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/RecordingModelListener.java (added)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/RecordingModelListener.java Mon Jan 14 22:38:35 2013
@@ -0,0 +1,227 @@
+/*
+ * 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 com.hp.hpl.jena.rdf.model.test.helpers;
+
+import com.hp.hpl.jena.graph.test.GraphTestBase;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelChangedListener;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.StmtIterator;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+import junit.framework.Assert;
+/**
+ * Class to listen to model changes and record them for testing.
+ */
+public class RecordingModelListener implements ModelChangedListener
+{
+	List<Object> history = new ArrayList<Object>();
+
+	@Override
+	public void addedStatement( final Statement s )
+	{
+		record("add", s);
+	}
+
+	@Override
+	public void addedStatements( final List<Statement> statements )
+	{
+		record("addList", statements);
+	}
+
+	@Override
+	public void addedStatements( final Model m )
+	{
+		record("addModel", m);
+	}
+
+	@Override
+	public void addedStatements( final Statement[] statements )
+	{
+		record("add[]", Arrays.asList(statements));
+	}
+
+	@Override
+	public void addedStatements( final StmtIterator statements )
+	{
+		record("addIterator", GraphTestBase.iteratorToList(statements));
+	}
+
+	public void assertHas( final List<?> things )
+	{
+		if (has(things) == false)
+		{
+			Assert.fail("expected " + things + " but got " + history);
+		}
+	}
+
+	public void assertHas( final Object[] things )
+	{
+		if (has(things) == false)
+		{
+			Assert.fail("expected " + Arrays.asList(things) + " but got "
+					+ history);
+		}
+	}
+
+	public void assertHasEnd( final Object[] end )
+	{
+		final List<Object> L = Arrays.asList(end);
+		if (hasEnd(L) == false)
+		{
+			Assert.fail("expected " + L + " at the end of " + history);
+		}
+	}
+
+	public void assertHasStart( final Object[] start )
+	{
+		final List<Object> L = Arrays.asList(start);
+		if (hasStart(L) == false)
+		{
+			Assert.fail("expected " + L + " at the beginning of " + history);
+		}
+	}
+
+	public static boolean checkEquality( final Object o1, final Object o2)
+	{
+		if (o1 == o2)
+		{
+			return true;
+		}
+		if (o1.getClass().isArray() && o2.getClass().isArray())
+		{
+			final Object[] o1a = (Object[])o1;
+			final Object[] o2a = (Object[])o2;
+
+			if (o1a.length == o2a.length)
+			{
+				for (int i=0;i<o1a.length;i++)
+				{
+					if (!checkEquality( o1a[i], o2a[i]))
+					{
+						return false;
+					}
+				}
+				return true;
+			}
+			return false;
+		}
+		else if ((o1 instanceof Collection) && (o2 instanceof Collection))
+		{
+			return checkEquality( ((Collection<Object>)o1).toArray(), ((Collection<Object>)o2).toArray() );
+
+		}
+		else if ((o1 instanceof Model) && (o2 instanceof Model))
+		{
+			return checkEquality( ((Model)o1).listStatements().toList(), ((Model)o2).listStatements().toList());
+
+		}
+		else if ((o1 instanceof Statement) && (o2 instanceof Statement))
+		{
+			return checkEquality( ((Statement)o1).asTriple(), ((Statement)o2).asTriple());
+
+		}
+		else
+		{
+			return o1.equals(o2);
+		}
+	}
+
+	public void clear()
+	{
+		history.clear();
+	}
+
+	public boolean has( final List<?> things )
+	{
+		return has(things.toArray());
+	}
+
+	public boolean has( final Object[] things )
+	{
+		return checkEquality(history.toArray(), things);
+	}
+
+	public boolean hasEnd( final List<Object> L )
+	{
+		return (L.size() <= history.size())
+				&& checkEquality(L, history.subList(history.size() - L.size(),
+						history.size()));
+	}
+
+	public boolean hasStart( final List<Object> L )
+	{
+		return (L.size() <= history.size())
+				&& checkEquality(L, history.subList(0, L.size()));
+	}
+
+	@Override
+	public void notifyEvent( final Model m, final Object event )
+	{
+		record("someEvent", m, event);
+	}
+
+	protected void record( final String tag, final Object info )
+	{
+		history.add(tag);
+		history.add(info);
+	}
+
+	protected void record( final String tag, final Object x, final Object y )
+	{
+		history.add(tag);
+		history.add(x);
+		history.add(y);
+	}
+
+	@Override
+	public void removedStatement( final Statement s )
+	{
+		record("remove", s);
+	}
+
+	@Override
+	public void removedStatements( final List<Statement> statements )
+	{
+		record("removeList", statements);
+	}
+
+	@Override
+	public void removedStatements( final Model m )
+	{
+		record("removeModel", m);
+	}
+
+	@Override
+	public void removedStatements( final Statement[] statements )
+	{
+		record("remove[]", Arrays.asList(statements));
+	}
+
+	@Override
+	public void removedStatements( final StmtIterator statements )
+	{
+		record("removeIterator", GraphTestBase.iteratorToList(statements));
+	}
+
+}

Added: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/TestingModelFactory.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/TestingModelFactory.java?rev=1433184&view=auto
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/TestingModelFactory.java (added)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/model/test/helpers/TestingModelFactory.java Mon Jan 14 22:38:35 2013
@@ -0,0 +1,21 @@
+package com.hp.hpl.jena.rdf.model.test.helpers;
+
+import com.hp.hpl.jena.graph.Graph;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.shared.PrefixMapping;
+import com.hp.hpl.jena.shared.ReificationStyle;
+
+/**
+ * Interface that defines the Testing Model Factory.
+ * 
+ * Implementations of this class will produce models that are to be tested by the
+ * AbstractTestPackage implementations.
+ */
+public interface TestingModelFactory
+{
+	abstract public Model createModel();
+
+	abstract public PrefixMapping getPrefixMapping();
+
+	abstract public Model createModel( Graph base );
+}

Modified: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/regression/TestCaseBasic.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/regression/TestCaseBasic.java?rev=1433184&r1=1433183&r2=1433184&view=diff
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/regression/TestCaseBasic.java (original)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/regression/TestCaseBasic.java Mon Jan 14 22:38:35 2013
@@ -44,6 +44,7 @@ import com.hp.hpl.jena.test.JenaTestBase
  * @author bwm
  * @version $Name: not supported by cvs2svn $ $Revision: 1.1 $ $Date: 2009-06-29 08:55:39 $
  */
+@Deprecated
 public class TestCaseBasic extends JenaTestBase {
 
 	protected Model m1 = null;
@@ -77,337 +78,4 @@ public class TestCaseBasic extends JenaT
 		}
 	}
 
-	public void test1() {
-		try {
-			Regression test = new Regression();
-			test.test1(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void test2() {
-		try {
-			Regression test = new Regression();
-			test.test2(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void test3() {
-		try {
-			Regression test = new Regression();
-			test.test3(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void test4() {
-		try {
-			Regression test = new Regression();
-			test.test4(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void test5() {
-		try {
-			Regression test = new Regression();
-			test.test5(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void test6() throws Exception {
-		try {
-			Regression test = new Regression();
-			test.test6(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-//			System.out.println(e);
-//			assertTrue(false);
-	      System.err.println( "PONGLE" );
-	      throw e;
-		}
-	}
-
-	public void test7() {
-		try {
-			Regression test = new Regression();
-			test.test7(m1, m2);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void test8() {
-	    new Regression().test8( m1 );
-//		try {
-//			Regression test = new Regression();
-//			test.test8(m1);
-//			assertTrue(!test.getErrors());
-//		} catch (Exception e) {
-//			System.out.println(e);
-//			assertTrue(false);
-//		}
-	}
-
-	public void test9() {
-	    new Regression().test9( m2 );
-//		try {
-//			Regression test = new Regression();
-//			test.test9(m2);
-//			assertTrue(!test.getErrors());
-//		} catch (Exception e) {
-//			System.out.println(e);
-//			assertTrue(false);
-//		}
-	}
-
-	public void test10() {
-	    new Regression().test10( m3 );
-//		try {
-//			Regression test = new Regression();
-//			test.test10(m3);
-//			assertTrue(!test.getErrors());
-//		} catch (Exception e) {
-//			System.out.println(e);
-//			assertTrue(false);
-//		}
-	}
-
-	public void test11() {
-	    new Regression().test11( m1, m2 );
-//		try {
-//			Regression test = new Regression();
-//			test.test11(m1, m2);
-//			assertTrue(!test.getErrors());
-//		} catch (Exception e) {
-//			System.out.println(e);
-//			assertTrue(false);
-//		}
-	}
-
-	public void test12() {
-		try {
-			Regression test = new Regression();
-			test.test12(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void test13() {
-		try {
-			Regression test = new Regression();
-			test.test13(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void test14() {
-		try {
-			Regression test = new Regression();
-			test.test14(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void test15() {
-	    new Regression().test15( m1 );
-//		try {
-//			Regression test = new Regression();
-//			test.test15(m1);
-//			assertTrue(!test.getErrors());
-//		} catch (Exception e) {
-//			System.out.println(e);
-//			assertTrue(false);
-//		}
-	}
-
-	public void test16() {
-	    new Regression().test16( m1 );
-//		try {
-//			Regression test = new Regression();
-//			test.test16(m1);
-//			assertTrue(!test.getErrors());
-//		} catch (Exception e) {
-//			System.out.println(e);
-//			assertTrue(false);
-//		}
-	}
-
-	public void test17() {
-	    new Regression().test17( m1 );
-//		try {
-//			Regression test = new Regression();
-//			test.test17(m1);
-//			assertTrue(!test.getErrors());
-//		} catch (Exception e) {
-//			System.out.println(e);
-//			assertTrue(false);
-//		}
-	}
-
-	public void test18() {
-		try {
-			Regression test = new Regression();
-			test.test18(m4);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void test19() {
-		try {
-			Regression test = new Regression();
-			test.test19(m2, m3);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void test97() {
-		try {
-			Regression test = new Regression();
-			test.test97(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-	private GetModel getGetModel() {
-		return new GetModel() {
-
-			Model cache[] = new Model[4];
-			int i = 4;
-			@Override
-            public Model get() {
-				if (i == 4) {
-					try {
-						tearDown();
-						setUp();
-					} catch (Exception e) {
-						throw new RuntimeException(e.getMessage());
-					}
-					cache[0] = m1;
-					cache[1] = m2;
-					cache[2] = m3;
-					cache[3] = m4;
-					i = 0;
-				}
-				return cache[i++];
-			}
-		};
-	}
-	public void testMatch() {
-		try {
-			testMatch test = new testMatch(0xfab, getGetModel());
-			test.test();
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-	/*
-	 * public void testWriterAndReader() { try { testWriterAndReader test = new
-	 * testWriterAndReader(); test.test(m1,m2,m3,m4); assertTrue(!
-	 * test.getErrors()); } catch (Exception e) { System.out.println(e);
-	 * assertTrue(false); } }
-	 */
-	public void testNTripleReader() {
-		try {
-			testNTripleReader test = new testNTripleReader();
-			test.test(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-	/*
-	 * public void testWriterInterface() { try { testWriterInterface test = new
-	 * testWriterInterface(); test.test(m1); assertTrue(! test.getErrors()); }
-	 * catch (Exception e) { System.out.println(e); assertTrue(false); } }
-	 */
-	public void testReaderInterface() {
-		try {
-			testReaderInterface test = new testReaderInterface();
-			test.test(m1);
-			assertTrue(!test.getErrors());
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
-
-	public void soaktest() { // a very crude soak test
-		try {
-			int errCount = 0;
-
-			for (int i = 1; i <= 100; i++) {
-				Regression test = new Regression();
-				test0();
-				test.test1(m1);
-				test.test2(m1);
-				test.test3(m1);
-				test.test4(m1);
-				test.test5(m1);
-				test.test6(m1);
-				test.test7(m1, m2);
-				test.test8(m1);
-				test.test9(m2);
-				test.test10(m3);
-				test.test11(m1, m2);
-				test.test12(m1);
-				test.test13(m1);
-				test.test14(m1);
-				test.test15(m1);
-				test.test16(m1);
-				test.test17(m1);
-				test.test18(m4);
-				test.test19(m2, m3);
-				test.test97(m1);
-				if (test.getErrors())
-					errCount++;
-				if ((i % 10) == 0) {
-					System.out.println(
-						"error count = " + errCount + " rounds = " + i);
-				}
-			}
-		} catch (Exception e) {
-			System.out.println(e);
-			assertTrue(false);
-		}
-	}
 }

Modified: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/TestSharedPackage.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/TestSharedPackage.java?rev=1433184&r1=1433183&r2=1433184&view=diff
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/TestSharedPackage.java (original)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/TestSharedPackage.java Mon Jan 14 22:38:35 2013
@@ -33,7 +33,6 @@ public class TestSharedPackage extends T
         TestSuite result = new TestSuite();
         result.addTest( TestPrefixMapping.suite() );
         result.addTest( TestJenaException.suite() );
-        result.addTest( RandomizedTestSuiteRegression.suite() );
         return result;
         }
     }

Modified: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/test/TestPackage.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/test/TestPackage.java?rev=1433184&r1=1433183&r2=1433184&view=diff
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/test/TestPackage.java (original)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/test/TestPackage.java Mon Jan 14 22:38:35 2013
@@ -49,7 +49,6 @@ public class TestPackage extends TestCas
         addTest(ts,  "XML Output", com.hp.hpl.jena.xmloutput.TestPackage.suite());
         addTest(ts,  "Util", com.hp.hpl.jena.util.TestPackage.suite());
         addTest(ts,  "Jena iterator", com.hp.hpl.jena.util.iterator.test.TestPackage.suite() );
-        addTest(ts,  "Mega", com.hp.hpl.jena.regression.MegaTestSuite.suite());
         addTest(ts,  "Assembler", TestAssemblerPackage.suite() );
         addTest(ts,  "ARP", com.hp.hpl.jena.rdf.arp.TestPackage.suite());
         addTest(ts,  "Vocabularies", com.hp.hpl.jena.vocabulary.test.TestVocabularies.suite() );

Added: jena/trunk/jena-core/src/test/resources/TestReaders.nt
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/resources/TestReaders.nt?rev=1433184&view=auto
==============================================================================
--- jena/trunk/jena-core/src/test/resources/TestReaders.nt (added)
+++ jena/trunk/jena-core/src/test/resources/TestReaders.nt Mon Jan 14 22:38:35 2013
@@ -0,0 +1,21 @@
+         
+# comment at the beginning of a line
+
+                # comment in the middle of a line
+
+# comments on
+# consecutive lines       
+         
+
+
+<http://subject> <http://predicate> <http://object> .
+_:a <http://test/p1> _:b .
+
+_:b <http://test/p2> "foo" .
+
+_:c <http://test/p3> "foo\"\\\n\r\tbar" .
+
+_:d <http://test/p4> "foo
+bar" .
+
+