You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2013/10/09 19:16:18 UTC

svn commit: r1530718 [8/10] - in /jena/Experimental/new-test: ./ src/test/java/com/hp/hpl/jena/graph/ src/test/java/com/hp/hpl/jena/graph/compose/ src/test/java/com/hp/hpl/jena/graph/impl/ src/test/java/com/hp/hpl/jena/mem/ src/test/java/com/hp/hpl/jen...

Copied: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFReaderFContractTests.java (from r1525287, jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFReaderFContractTests.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFReaderFContractTests.java?p2=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFReaderFContractTests.java&p1=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFReaderFContractTests.java&r1=1525287&r2=1530718&rev=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFReaderFContractTests.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFReaderFContractTests.java Wed Oct  9 17:16:15 2013
@@ -4,115 +4,115 @@ import java.io.InputStream;
 import java.io.Reader;
 
 import org.junit.Test;
+import org.xenei.junit.contract.Contract;
+
 import com.hp.hpl.jena.shared.NoReaderForLangException;
+import org.xenei.junit.contract.IProducer;
 import com.hp.hpl.jena.testing_framework.TestFileData;
 import static org.junit.Assert.*;
 import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
 
-public abstract class AbstractRDFReaderFContractTests {
-	
-	protected abstract RDFReaderF getRDFReaderF();
-	
+@Contract(RDFReaderF.class)
+public abstract class RDFReaderFContractTests {
+
+	@Contract.Inject( "org.xenei.junit.contract.IProducer<%s>" )
+	protected abstract IProducer<RDFReaderF> getRDFReaderFProducer();
+
 	@Test
-	public void testGetReader() throws Exception
-	{
-		RDFReader reader = getRDFReaderF().getReader();
-		
+	public void testGetReader() throws Exception {
+		RDFReader reader = getRDFReaderFProducer().newInstance().getReader();
+
 		Model model = ModelFactory.createDefaultModel();
 		// read the RDF file just to make sure we can
-		
-		txnBegin( model );
+
+		txnBegin(model);
 		reader.read(model, TestFileData.getRDFName());
-		txnCommit( model );
+		txnCommit(model);
 	}
-	
+
 	@Test
-	public void testGetReader_String() throws Exception
-	{
+	public void testGetReader_String() throws Exception {
 		/*
-		RDF/XML - default
-		RDF/XML-ABBREV
-		N-TRIPLE
-		N3
-		*/
+		 * RDF/XML - default RDF/XML-ABBREV N-TRIPLE N3
+		 */
 		Model model = ModelFactory.createDefaultModel();
-		RDFReader reader = getRDFReaderF().getReader( "RDF/XML");		
+		RDFReader reader = getRDFReaderFProducer().newInstance().getReader(
+				"RDF/XML");
 		// read the RDF file just to make sure we can
-		txnBegin( model );
+		txnBegin(model);
 		reader.read(model, TestFileData.getRDFName());
-		txnCommit( model );
-		
-		
+		txnCommit(model);
+
 		model = ModelFactory.createDefaultModel();
-		reader = getRDFReaderF().getReader( "RDF/XML-ABBREV");		
+		reader = getRDFReaderFProducer().newInstance().getReader(
+				"RDF/XML-ABBREV");
 		// read the RDF file just to make sure we can
-		txnBegin( model );
+		txnBegin(model);
 		reader.read(model, TestFileData.getRDFName());
-		txnCommit( model );
-		
+		txnCommit(model);
+
 		model = ModelFactory.createDefaultModel();
-		reader = getRDFReaderF().getReader( "N-TRIPLE");		
+		reader = getRDFReaderFProducer().newInstance().getReader("N-TRIPLE");
 		// read the RDF file just to make sure we can
-		txnBegin( model );
+		txnBegin(model);
 		reader.read(model, TestFileData.getTTLName());
-		txnCommit( model );
-		
+		txnCommit(model);
+
 		model = ModelFactory.createDefaultModel();
-		reader = getRDFReaderF().getReader( "N3");		
+		reader = getRDFReaderFProducer().newInstance().getReader("N3");
 		// read the RDF file just to make sure we can
-		txnBegin( model );
+		txnBegin(model);
 		reader.read(model, TestFileData.getTTLName());
-		txnCommit( model );
-		
+		txnCommit(model);
+
 		// try invalid value
 		try {
-			reader = getRDFReaderF().getReader( "foo");	
-		}
-		catch (NoReaderForLangException expected)
-		{
+			reader = getRDFReaderFProducer().newInstance().getReader("foo");
+		} catch (NoReaderForLangException expected) {
 			// expected
 		}
-		
+
 	}
-	
+
 	@Test
-	public void testSetReaderClassName() throws Exception
-	{
-		
-		String before = getRDFReaderF().setReaderClassName("foo", DummyReader.class.getName());
-		
-		assertNull( "Should not be an existing name", before );
-		
-		RDFReader reader = getRDFReaderF().getReader("foo");
-		assertEquals( "Wrong reader type", DummyReader.class, reader.getClass());
-		
+	public void testSetReaderClassName() throws Exception {
+
+		String before = getRDFReaderFProducer().newInstance()
+				.setReaderClassName("foo", DummyReader.class.getName());
+
+		assertNull("Should not be an existing name", before);
+
+		RDFReader reader = getRDFReaderFProducer().newInstance().getReader(
+				"foo");
+		assertEquals("Wrong reader type", DummyReader.class, reader.getClass());
+
 		// FIXME add test when remove reader is available
-		//String s2 = getRDFReaderF().setReaderClassName("foo", null);
-		//assertEquals(  DummyReader.class.getCanonicalName(), s2 );
-		
-		//reader = getRDFReaderF().getReader("foo");
-		//assertNull( "should not return a reder", reader );
+		// String s2 = getRDFReaderF().setReaderClassName("foo", null);
+		// assertEquals( DummyReader.class.getCanonicalName(), s2 );
+
+		// reader = getRDFReaderF().getReader("foo");
+		// assertNull( "should not return a reder", reader );
 
 	}
-	
+
 	public static class DummyReader implements RDFReader {
 
 		@Override
 		public void read(Model model, Reader r, String base) {
 			// TODO Auto-generated method stub
-			
+
 		}
 
 		@Override
 		public void read(Model model, InputStream r, String base) {
 			// TODO Auto-generated method stub
-			
+
 		}
 
 		@Override
 		public void read(Model model, String url) {
 			// TODO Auto-generated method stub
-			
+
 		}
 
 		@Override
@@ -126,7 +126,7 @@ public abstract class AbstractRDFReaderF
 			// TODO Auto-generated method stub
 			return null;
 		}
-		
+
 	}
 
 }

Copied: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFContractTests.java (from r1525287, jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFWriterFContractTests.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFContractTests.java?p2=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFContractTests.java&p1=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFWriterFContractTests.java&r1=1525287&r2=1530718&rev=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFWriterFContractTests.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFContractTests.java Wed Oct  9 17:16:15 2013
@@ -5,99 +5,106 @@ import java.io.OutputStream;
 import java.io.Writer;
 
 import org.junit.Test;
+import org.xenei.junit.contract.Contract;
+
 import com.hp.hpl.jena.shared.NoWriterForLangException;
+import org.xenei.junit.contract.IProducer;
 import com.hp.hpl.jena.testing_framework.TestFileData;
 import static org.junit.Assert.*;
 
-public abstract class AbstractRDFWriterFContractTests {
-	
-	protected abstract RDFWriterF getRDFWriterF();
-	
-	private Model model = ModelFactory.createModelForGraph( TestFileData.getGraph() );
-	
+@Contract(RDFWriterF.class)
+public abstract class RDFWriterFContractTests {
+
+	@Contract.Inject( "org.xenei.junit.contract.IProducer<%s>" )
+	protected abstract IProducer<RDFWriterF> getRDFWriterFProducer();
+
+	private Model model = ModelFactory.createModelForGraph(TestFileData
+			.getGraph());
+
 	@Test
-	public void testGetWriter() throws Exception
-	{
-		RDFWriter writer = getRDFWriterF().getWriter();
-		
+	public void testGetWriter() throws Exception {
+		RDFWriter writer = getRDFWriterFProducer().newInstance().getWriter();
+
 		// write the RDF file just to make sure we can
-		writer.write(model, new ByteArrayOutputStream(), "http://example.com/base/");
+		writer.write(model, new ByteArrayOutputStream(),
+				"http://example.com/base/");
 	}
-	
+
 	@Test
-	public void testGetWriter_String() throws Exception
-	{
+	public void testGetWriter_String() throws Exception {
 		/*
-		RDF/XML - default
-		RDF/XML-ABBREV
-		N-TRIPLE
-		N3
-		*/
+		 * RDF/XML - default RDF/XML-ABBREV N-TRIPLE N3
+		 */
 		Model model = ModelFactory.createDefaultModel();
-		RDFWriter writer = getRDFWriterF().getWriter( "RDF/XML");		
+		RDFWriter writer = getRDFWriterFProducer().newInstance().getWriter(
+				"RDF/XML");
 		// read the RDF file just to make sure we can
-		writer.write(model, new ByteArrayOutputStream(), "http://example.com/base/");
-		
-		
-		
+		writer.write(model, new ByteArrayOutputStream(),
+				"http://example.com/base/");
+
 		model = ModelFactory.createDefaultModel();
-		writer = getRDFWriterF().getWriter( "RDF/XML-ABBREV");		
+		writer = getRDFWriterFProducer().newInstance().getWriter(
+				"RDF/XML-ABBREV");
 		// read the RDF file just to make sure we can
-		writer.write(model, new ByteArrayOutputStream(), "http://example.com/base/");
-		
+		writer.write(model, new ByteArrayOutputStream(),
+				"http://example.com/base/");
+
 		model = ModelFactory.createDefaultModel();
-		writer = getRDFWriterF().getWriter( "N-TRIPLE");		
+		writer = getRDFWriterFProducer().newInstance().getWriter("N-TRIPLE");
 		// read the RDF file just to make sure we can
-		writer.write(model, new ByteArrayOutputStream(), "http://example.com/base/");
-		
+		writer.write(model, new ByteArrayOutputStream(),
+				"http://example.com/base/");
+
 		model = ModelFactory.createDefaultModel();
-		writer = getRDFWriterF().getWriter( "N3");		
+		writer = getRDFWriterFProducer().newInstance().getWriter("N3");
 		// read the RDF file just to make sure we can
-		writer.write(model, new ByteArrayOutputStream(), "http://example.com/base/");
-		
+		writer.write(model, new ByteArrayOutputStream(),
+				"http://example.com/base/");
+
 		// try invalid value
 		try {
-			writer = getRDFWriterF().getWriter( "foo");	
-		}
-		catch (NoWriterForLangException expected)
-		{
+			writer = getRDFWriterFProducer().newInstance().getWriter("foo");
+		} catch (NoWriterForLangException expected) {
 			// expected
 		}
-		
+
 	}
-	
+
 	@Test
-	public void testSetWriterClassName() throws Exception
-	{
-		
-		String before = getRDFWriterF().setWriterClassName("foo", DummyWriter.class.getName());
-		
-		assertNull( "Should not be an existing name", before );
-		
-		RDFWriter writer = getRDFWriterF().getWriter("foo");
-		assertEquals( "Wrong reader type", DummyWriter.class, writer.getClass());
-		
+	public void testSetWriterClassName() throws Exception {
+
+		String before = getRDFWriterFProducer().newInstance()
+				.setWriterClassName("foo", DummyWriter.class.getName());
+
+		assertNull("Should not be an existing name", before);
+
+		RDFWriter writer = getRDFWriterFProducer().newInstance().getWriter(
+				"foo");
+		assertEquals("Wrong reader type", DummyWriter.class, writer.getClass());
+
 		// FIXME add test when remove reader is available
-//		String s2 = getRDFWriterF().setWriterClassName("foo", null);
-//		assertEquals(  DummyWriter.class.getCanonicalName(), s2 );
-//		
-//		writer = getRDFWriterF().getWriter("foo");
-//		assertNull( "should not return a reder", writer );
+		// String s2 =
+		// getRDFWriterFProducer().newInstance().setWriterClassName("foo",
+		// null);
+		// assertEquals( DummyWriter.class.getCanonicalName(), s2 );
+		//
+		// writer = getRDFWriterFProducer().newInstance().getWriter("foo");
+		// assertNull( "should not return a reder", writer );
 
 	}
-	
+
 	public static class DummyWriter implements RDFWriter {
 
 		@Override
 		public void write(Model model, Writer out, String base) {
 			// TODO Auto-generated method stub
-			
+
 		}
 
 		@Override
 		public void write(Model model, OutputStream out, String base) {
 			// TODO Auto-generated method stub
-			
+
 		}
 
 		@Override
@@ -112,7 +119,6 @@ public abstract class AbstractRDFWriterF
 			return null;
 		}
 
-		
 	}
 
 }

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFTest.java?rev=1530718&r1=1530717&r2=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFTest.java Wed Oct  9 17:16:15 2013
@@ -38,46 +38,35 @@ import java.util.Map;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class RDFWriterFTest 
-{
-	public static class RDFWriterMap implements RDFWriterF
-	{
+public class RDFWriterFTest {
+	public static class RDFWriterMap implements RDFWriterF {
 		protected final Map<String, Class<RDFWriter>> map = new HashMap<String, Class<RDFWriter>>();
 
-		public RDFWriterMap( final boolean preloadDefaults )
-		{
-			if (preloadDefaults)
-			{
+		public RDFWriterMap(final boolean preloadDefaults) {
+			if (preloadDefaults) {
 				loadDefaults();
 			}
 		}
 
 		@Override
-		public RDFWriter getWriter()
-		{
+		public RDFWriter getWriter() {
 			return getWriter("RDF/XML");
 		}
 
 		@Override
-		public RDFWriter getWriter( final String lang )
-		{
+		public RDFWriter getWriter(final String lang) {
 			final Class<RDFWriter> result = map.get(lang);
-			if (result == null)
-			{
+			if (result == null) {
 				throw new NoWriterForLangException(lang);
 			}
-			try
-			{
+			try {
 				return result.newInstance();
-			}
-			catch (final Exception e)
-			{
+			} catch (final Exception e) {
 				throw new JenaException(e);
 			}
 		}
 
-		private void loadDefaults()
-		{
+		private void loadDefaults() {
 			setWriterClassName(RDFWriterFTest.TURTLE_WRITER, Jena.PATH
 					+ ".n3.N3TurtleJenaWriter");
 			setWriterClassName(RDFWriterFTest.TURTLE_WRITER_ALT1, Jena.PATH
@@ -105,23 +94,18 @@ public class RDFWriterFTest 
 		}
 
 		@Override
-		public String setWriterClassName( final String lang,
-				final String className )
-		{
-			try
-			{
+		public String setWriterClassName(final String lang,
+				final String className) {
+			try {
 				final Class<RDFWriter> old = map.get(lang);
 				final Class<?> c = Class.forName(className);
-				if (RDFWriter.class.isAssignableFrom(c))
-				{
-					@SuppressWarnings( "unchecked" )
+				if (RDFWriter.class.isAssignableFrom(c)) {
+					@SuppressWarnings("unchecked")
 					final Class<RDFWriter> x = (Class<RDFWriter>) c;
 					map.put(lang, x);
 				}
 				return old == null ? null : old.getName();
-			}
-			catch (final ClassNotFoundException e)
-			{
+			} catch (final ClassNotFoundException e) {
 				throw new JenaException(e);
 			}
 		}
@@ -143,36 +127,27 @@ public class RDFWriterFTest 
 	public static final String N3_TRIPLES = "N3-TRIPLES";
 
 	@Test
-	public void testDefaultWriter()
-	{
+	public void testDefaultWriter() {
 		final RDFWriterF x = new RDFWriterMap(true);
 		Assert.assertEquals(x.getWriter("RDF/XML").getClass(), x.getWriter()
 				.getClass());
 	}
 
 	/*
-	 * public void testMe()
-	 * {
-	 * Assert.fail("SPOO");
-	 * }
+	 * public void testMe() { Assert.fail("SPOO"); }
 	 */
 
-	private void testWriterAbsent( final String w )
-	{
+	private void testWriterAbsent(final String w) {
 		final RDFWriterF x = new RDFWriterMap(false);
-		try
-		{
+		try {
 			x.getWriter(w);
-		}
-		catch (final NoWriterForLangException e)
-		{
+		} catch (final NoWriterForLangException e) {
 			Assert.assertEquals(w, e.getMessage());
 		}
 	}
 
 	@Test
-	public void testWritersAbsent()
-	{
+	public void testWritersAbsent() {
 		testWriterAbsent(RDFWriterFTest.TURTLE_WRITER);
 		testWriterAbsent(RDFWriterFTest.TURTLE_WRITER_ALT1);
 		testWriterAbsent(RDFWriterFTest.TURTLE_WRITER_ALT2);
@@ -188,8 +163,7 @@ public class RDFWriterFTest 
 	}
 
 	@Test
-	public void testWritersPresent()
-	{
+	public void testWritersPresent() {
 		final RDFWriterF x = new RDFWriterMap(true);
 		Assert.assertEquals(N3TurtleJenaWriter.class,
 				x.getWriter(RDFWriterFTest.TURTLE_WRITER).getClass());
@@ -205,8 +179,8 @@ public class RDFWriterFTest 
 				x.getWriter(RDFWriterFTest.NTRIPLE).getClass());
 		Assert.assertEquals(NTripleWriter.class,
 				x.getWriter(RDFWriterFTest.NTRIPLES).getClass());
-		Assert.assertEquals(N3JenaWriter.class, x
-				.getWriter(RDFWriterFTest.N3).getClass());
+		Assert.assertEquals(N3JenaWriter.class, x.getWriter(RDFWriterFTest.N3)
+				.getClass());
 		Assert.assertEquals(N3JenaWriterPP.class,
 				x.getWriter(RDFWriterFTest.N3_PP).getClass());
 		Assert.assertEquals(N3JenaWriterPlain.class,

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RecordingModelListener.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RecordingModelListener.java?rev=1530718&r1=1530717&r2=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RecordingModelListener.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RecordingModelListener.java Wed Oct  9 17:16:15 2013
@@ -20,207 +20,75 @@ package com.hp.hpl.jena.rdf.model;
 
 import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
 
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 
-import org.junit.Assert;
-
 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 com.hp.hpl.jena.testing_framework.AbstractRecordingListener;
 
 /**
  * This testing listener records the event names and data, and provides a method
  * for comparing the actual with the expected history.
  */
-public class RecordingModelListener implements ModelChangedListener
-    {
-	
-	@SuppressWarnings("unchecked")
-    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);
-		}
-	}
-
-    private List<Object> history = new ArrayList<Object>();
-    
-    @Override
-    public void addedStatement( Statement s )
-        { record( "add", s ); }
-        
-    @Override
-    public void addedStatements( Statement [] statements )
-        { record( "add[]", Arrays.asList( statements ) ); }
-        
-    @Override
-    public void addedStatements( List<Statement> statements )
-        { record( "addList", statements ); }
-        
-    @Override
-    public void addedStatements( StmtIterator statements )
-        { record( "addIterator", iteratorToList( statements ) ); }
-        
-    @Override
-    public void addedStatements( Model m )
-        { record( "addModel", m ); }
-        
-    @Override
-    public void removedStatements( Statement [] statements )
-        { record( "remove[]", Arrays.asList( statements ) ); }
-    
-   @Override
-public void removedStatement( Statement s )
-        { record( "remove", s ); }
-        
-    @Override
-    public void removedStatements( List<Statement> statements )
-        { record( "removeList", statements ); }
-        
-    @Override
-    public void removedStatements( StmtIterator statements )
-        { record( "removeIterator", iteratorToList( statements ) ); }
-        
-    @Override
-    public void removedStatements( Model m )
-        { record( "removeModel", m ); }
-    
-    @Override
-    public void notifyEvent( Model m, Object event )
-        { record( "someEvent", m, event ); }
-    
-    protected void record( String tag, Object x, Object y )
-        { history.add( tag ); history.add( x ); history.add( y ); }
-        
-    protected void record( String tag, Object info )
-        { history.add( tag ); history.add( info ); }
-        
-    public boolean has( Object ... things ) 
-        { return history.equals( Arrays.asList( things ) ); }
-        
-    public void assertHas( Object ... things )
-        {
-        if (has( things ) == false)
-            Assert.fail( "expected " + Arrays.asList( things ) + " but got " + history );
-        }   
-    
-    public void assertEmpty()
-    {
-    	if (history.size() > 0)
-    	{
-    		Assert.fail( "Should be no history but got "+history );
-    	}
-    }
-    
-    public boolean has( List<?> things )
-            { return history.equals( things ); } 
-        
-    public boolean hasStart( List<Object> L )
-        { return L.size() <= history.size() && L.equals( history.subList( 0, L.size() ) ); }
-    
-    public boolean hasEnd( List<Object> L )
-        { return L.size() <= history.size() && L.equals( history.subList( history.size() - L.size(), history.size() ) ); }
-    
-    public void assertHas( List<?> things )
-        { if (has( things ) == false) Assert.fail( "expected " + things + " but got " + history ); }  
-
-    public void assertContains( Object... things )
-    { if (contains( things ) == false) Assert.fail( "expected " + things + " but got " + history ); }  
-
-    public void assertHasStart( Object... start )
-        { 
-        List<Object> L = Arrays.asList( start );
-        if (hasStart( L ) == false) Assert.fail( "expected " + L + " at the beginning of " + history );
-        }
-    
-    public void assertHasEnd( Object... end )
-        {
-        List<Object> L = Arrays.asList( end );
-        if (hasEnd( L ) == false) Assert.fail( "expected " + L + " at the end of " + history );        
-        }
-    
-    public void clear()
-    { history.clear(); }
-
-    public boolean contains( Object ...objects )
-    {
-    	for (int i=0;i<history.size();i++)
-    	{
-    		if (history.get(i).equals( objects[0]))
-    		{
-    			boolean found = true;
-    			for (int j=1;j<objects.length;j++)
-    			{
-    				if (i+j >=  history.size())
-    				{
-    					found = false;
-    					break;
-    				}
-    				if (! history.get(i+j).equals(objects[j]))
-    				{
-    					found = false;
-    					break;
-    				}
-    			}
-    			if (found)
-    			{
-    				return true;
-    			}
-    		}
-    	
-    	}
-    	return false;
-    
-    	}
-    
-    public Iterator<Object> from( Object start )
-    {
-    	Iterator<Object> iter = history.iterator();
-    	while (iter.hasNext() && !iter.next().equals( start ))
-    		; // loop
-    	return iter;
-    }
-    }
+public class RecordingModelListener extends AbstractRecordingListener implements
+		ModelChangedListener {
+
+	@Override
+	public void addedStatement(Statement s) {
+		record("add", s);
+	}
+
+	@Override
+	public void addedStatements(Statement[] statements) {
+		record("add[]", Arrays.asList(statements));
+	}
+
+	@Override
+	public void addedStatements(List<Statement> statements) {
+		record("addList", statements);
+	}
+
+	@Override
+	public void addedStatements(StmtIterator statements) {
+		record("addIterator", iteratorToList(statements));
+	}
+
+	@Override
+	public void addedStatements(Model m) {
+		record("addModel", m);
+	}
+
+	@Override
+	public void removedStatements(Statement[] statements) {
+		record("remove[]", Arrays.asList(statements));
+	}
+
+	@Override
+	public void removedStatement(Statement s) {
+		record("remove", s);
+	}
+
+	@Override
+	public void removedStatements(List<Statement> statements) {
+		record("removeList", statements);
+	}
+
+	@Override
+	public void removedStatements(StmtIterator statements) {
+		record("removeIterator", iteratorToList(statements));
+	}
+
+	@Override
+	public void removedStatements(Model m) {
+		record("removeModel", m);
+	}
+
+	@Override
+	public void notifyEvent(Model m, Object event) {
+		record("someEvent", m, event);
+	}
+
+}

Copied: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceContractTests.java (from r1525417, jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractResourceTest.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceContractTests.java?p2=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceContractTests.java&p1=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractResourceTest.java&r1=1525417&r2=1530718&rev=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractResourceTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceContractTests.java Wed Oct  9 17:16:15 2013
@@ -26,6 +26,7 @@ import com.hp.hpl.jena.rdf.model.Literal
 import com.hp.hpl.jena.rdf.model.RDFNode;
 import com.hp.hpl.jena.rdf.model.Resource;
 import com.hp.hpl.jena.shared.PropertyNotFoundException;
+import com.hp.hpl.jena.testing_framework.INodeProducer;
 
 import com.hp.hpl.jena.vocabulary.RDF;
 
@@ -36,708 +37,739 @@ import java.util.List;
 
 import static org.junit.Assert.*;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.xenei.junit.contract.Contract;
 
 /**
  * This class tests various properties of RDFNodes.
  */
-public abstract class AbstractResourceTest extends AbstractRDFNodeContractTests {
+@Contract(Resource.class)
+public abstract class ResourceContractTests {
 
 	private Resource r;
 	private RecordingModelListener SL;
-	
+	private Model model;
+
+	@Contract.Inject("com.hp.hpl.jena.testing_framework.INodeProducer<%s>")
+	public abstract INodeProducer<Resource> getResourceProducer();
+
 	@Before
-	public final void setupAbstractResourceTest()
-	{
-		assertTrue( "Resource producer shoudl retrun a resource", node.isResource() );
-		r = (Resource) node;
+	public final void setupAbstractResourceTests() {
+		r = getResourceProducer().newInstance();
+		model = r.getModel();
 		SL = new RecordingModelListener();
 	}
-	
+
+	@After
+	public final void afterResourceContractTests() {
+		getResourceProducer().cleanUp();
+	}
+
 	@Test
 	public void testRemoveAll_Property() {
 		final String ps = "x P a; x P b", rest = "x Q c; y P a; y Q b";
-		
-		txnBegin( model );
-		modelAdd( model , ps+ "; " + rest);
-		txnCommit( model );
-		r = model.getResource( resource("x").getURI() );
-		
-		model.register( SL );
-		
+
+		txnBegin(model);
+		modelAdd(model, ps + "; " + rest);
+		txnCommit(model);
+		r = model.getResource(resource("x").getURI());
+
+		model.register(SL);
+
 		// delete nothing
-		txnBegin( model );
-		assertSame(r, r.removeAll( property("Z")));
-		txnCommit( model );
-		SL.assertHasStart( "someEvent", model, new GraphEvents( "remove", new Triple( r.asNode(), property("Z").asNode(), Node.ANY)) );
-		
+		txnBegin(model);
+		assertSame(r, r.removeAll(property("Z")));
+		txnCommit(model);
+		SL.assertHasStart("someEvent", model, new GraphEvents("remove",
+				new Triple(r.asNode(), property("Z").asNode(), Node.ANY)));
+
 		SL.clear();
 		// delete some
-		txnBegin( model );
+		txnBegin(model);
 		assertSame(r, r.removeAll(property("P")));
-		txnCommit( model );
-		SL.assertContains( "remove", statement( "x P a"));
-		SL.assertContains( "remove", statement( "x P b"));
-		SL.assertContains( "someEvent", model, new GraphEvents( "remove", new Triple( r.asNode(), property("P").asNode(), Node.ANY)) );
-		
-		assertIsoModels("x's P-values should go",
-				memModel(rest), r.getModel());
+		txnCommit(model);
+		SL.assertContains("remove", statement("x P a"));
+		SL.assertContains("remove", statement("x P b"));
+		SL.assertContains("someEvent", model, new GraphEvents("remove",
+				new Triple(r.asNode(), property("P").asNode(), Node.ANY)));
+
+		assertIsoModels("x's P-values should go", memModel(rest), r.getModel());
 	}
 
 	@Test
-	public void testAddLiteralPassesLiteralUnmodified()
-	{
-		model.register( SL );
-		txnBegin( model );
+	public void testAddLiteralPassesLiteralUnmodified() {
+		model.register(SL);
+		txnBegin(model);
 		final Literal lit = model.createLiteral("spoo");
-		assertSame( r, r.addLiteral(RDF.value, lit));
-		txnCommit( model );
+		assertSame(r, r.addLiteral(RDF.value, lit));
+		txnCommit(model);
 		assertTrue("model should contain unmodified literal",
 				model.contains(null, RDF.value, lit));
-		SL.assertHasStart( "add", statement( r, RDF.value, lit));	
+		SL.assertHasStart("add", statement(r, RDF.value, lit));
 	}
 
 	@Test
-	public void testAddLiteral_Property_boolean()
-	{
-		model.register( SL );
-		txnBegin( model );
-		assertSame( r, r.addLiteral(RDF.value, true));
-		txnCommit( model );
-		assertEquals(model.createTypedLiteral(true),
-				r.getProperty(RDF.value).getLiteral());
-		SL.assertHasStart( "add", statement( r, RDF.value, model.createTypedLiteral(true)));
+	public void testAddLiteral_Property_boolean() {
+		model.register(SL);
+		txnBegin(model);
+		assertSame(r, r.addLiteral(RDF.value, true));
+		txnCommit(model);
+		assertEquals(model.createTypedLiteral(true), r.getProperty(RDF.value)
+				.getLiteral());
+		SL.assertHasStart("add",
+				statement(r, RDF.value, model.createTypedLiteral(true)));
 	}
 
 	@Test
-	public void testAddLiteral_Property_char()
-	{
-		model.register( SL );
-		txnBegin( model );
-		assertSame( r, r.addLiteral(RDF.value, 'x'));
-		txnCommit( model );
-		assertEquals(model.createTypedLiteral('x'),
-				r.getProperty(RDF.value).getLiteral());
-		SL.assertHasStart( "add", statement( r, RDF.value, model.createTypedLiteral('x')));	
+	public void testAddLiteral_Property_char() {
+		model.register(SL);
+		txnBegin(model);
+		assertSame(r, r.addLiteral(RDF.value, 'x'));
+		txnCommit(model);
+		assertEquals(model.createTypedLiteral('x'), r.getProperty(RDF.value)
+				.getLiteral());
+		SL.assertHasStart("add",
+				statement(r, RDF.value, model.createTypedLiteral('x')));
 	}
 
 	@Test
-	public void testAddLiteral_Property_double()
-	{
-		model.register( SL );
-		txnBegin( model );
-		assertSame( r, r.addLiteral(RDF.value, 1.0d) );
-		txnCommit( model );
-		assertEquals(model.createTypedLiteral(1.0d),
-				r.getProperty(RDF.value).getLiteral());
-		SL.assertHasStart( "add", statement( r, RDF.value, model.createTypedLiteral(1.0d)));
+	public void testAddLiteral_Property_double() {
+		model.register(SL);
+		txnBegin(model);
+		assertSame(r, r.addLiteral(RDF.value, 1.0d));
+		txnCommit(model);
+		assertEquals(model.createTypedLiteral(1.0d), r.getProperty(RDF.value)
+				.getLiteral());
+		SL.assertHasStart("add",
+				statement(r, RDF.value, model.createTypedLiteral(1.0d)));
 	}
 
 	@Test
-	public void testAddLiteral_Property_float()
-	{
-		model.register( SL );
-		txnBegin( model );
-		assertSame(r, r.addLiteral(RDF.value, 1.0f) );
-		txnCommit( model );
-		assertEquals(model.createTypedLiteral(1.0f),
-				r.getProperty(RDF.value).getLiteral());
-		SL.assertHasStart( "add", statement( r, RDF.value, model.createTypedLiteral(1.0f)));
+	public void testAddLiteral_Property_float() {
+		model.register(SL);
+		txnBegin(model);
+		assertSame(r, r.addLiteral(RDF.value, 1.0f));
+		txnCommit(model);
+		assertEquals(model.createTypedLiteral(1.0f), r.getProperty(RDF.value)
+				.getLiteral());
+		SL.assertHasStart("add",
+				statement(r, RDF.value, model.createTypedLiteral(1.0f)));
 	}
 
 	@Test
-	public void testAddLiteral_Property_int()
-	{
-		model.register( SL );
-		txnBegin( model );
-		 assertSame( r, r.addLiteral( RDF.value, 1 ));
-		 txnCommit( model );
-		 logAssertEquals( this.getClass(), "Literal types should be correct",  model.createTypedLiteral( 1 ), r.getProperty( RDF.value
-		 ).getLiteral() );
-		 assertEquals( "Literal types should be correct",  model.createTypedLiteral( 1L ), r.getProperty( RDF.value
-				 ).getLiteral() );
-		 SL.assertHasStart( "add", statement( r, RDF.value, model.createTypedLiteral( 1L )));
+	public void testAddLiteral_Property_int() {
+		model.register(SL);
+		txnBegin(model);
+		assertSame(r, r.addLiteral(RDF.value, 1));
+		txnCommit(model);
+		logAssertEquals(this.getClass(), "Literal types should be correct",
+				model.createTypedLiteral(1), r.getProperty(RDF.value)
+						.getLiteral());
+		assertEquals("Literal types should be correct",
+				model.createTypedLiteral(1L), r.getProperty(RDF.value)
+						.getLiteral());
+		SL.assertHasStart("add",
+				statement(r, RDF.value, model.createTypedLiteral(1L)));
 	}
 
 	@Test
-	public void testAddLiteral_Property_long()
-	{
-		model.register( SL );
-		txnBegin( model );
+	public void testAddLiteral_Property_long() {
+		model.register(SL);
+		txnBegin(model);
 		assertSame(r, r.addLiteral(RDF.value, 1L));
-		txnCommit( model );
-		assertEquals(model.createTypedLiteral(1L),
-				r.getProperty(RDF.value).getLiteral());
-		SL.assertHasStart( "add", statement( r, RDF.value, model.createTypedLiteral(1L)));
+		txnCommit(model);
+		assertEquals(model.createTypedLiteral(1L), r.getProperty(RDF.value)
+				.getLiteral());
+		SL.assertHasStart("add",
+				statement(r, RDF.value, model.createTypedLiteral(1L)));
 	}
 
 	@Test
-	public void testAddLiteral_Property_Object()
-	{	
+	public void testAddLiteral_Property_Object() {
 		final Object z = new Object();
-		model.register( SL );
-		txnBegin( model );
+		model.register(SL);
+		txnBegin(model);
 		r.addLiteral(RDF.value, z);
-		txnCommit( model );
-		assertEquals(model.createTypedLiteral(z),
-				r.getProperty(RDF.value).getLiteral());
-		SL.assertHasStart( "add", statement( r, RDF.value, model.createTypedLiteral(z)));
+		txnCommit(model);
+		assertEquals(model.createTypedLiteral(z), r.getProperty(RDF.value)
+				.getLiteral());
+		SL.assertHasStart("add",
+				statement(r, RDF.value, model.createTypedLiteral(z)));
+	}
+
+	@Test
+	public void testAddLiteral_Property_String() {
+		model.register(SL);
+		txnBegin(model);
+		r.addLiteral(RDF.value, "foo");
+		txnCommit(model);
+		assertEquals(model.createTypedLiteral("foo"), r.getProperty(RDF.value)
+				.getLiteral());
+		SL.assertHasStart("add",
+				statement(r, RDF.value, model.createTypedLiteral("foo")));
 	}
 
 	@Test
-	public void testAddLiteral_Property_String()
-	{
-		model.register( SL );
-		txnBegin( model );
-		r.addLiteral( RDF.value, "foo" );
-		txnCommit( model );
-		assertEquals(model.createTypedLiteral("foo"),
-				r.getProperty(RDF.value).getLiteral());
-		SL.assertHasStart( "add", statement( r, RDF.value, model.createTypedLiteral("foo")));
-	}
-	
-	@Test
-	public void testBegin()
-	{
-		if (model.supportsTransactions())
-		{
+	public void testBegin() {
+		if (model.supportsTransactions()) {
 			r.begin();
 			r.abort();
-		}
-		else
-		{
+		} else {
 			try {
 				r.begin();
-				fail( "Should have thrown exception");
-			} catch (UnsupportedOperationException expected)
-			{
+				fail("Should have thrown exception");
+			} catch (UnsupportedOperationException expected) {
 				// expected
 			}
 		}
 	}
-	
+
 	@Test
-	public void testAbort()
-	{
-		if (model.supportsTransactions())
-		{
-			assertEquals( "Model is empty", 0, model.listStatements().toList().size());
+	public void testAbort() {
+		if (model.supportsTransactions()) {
+			assertEquals("Model is empty", 0, model.listStatements().toList()
+					.size());
 			r.begin();
-			r.addLiteral( RDF.value, "foo" );
+			r.addLiteral(RDF.value, "foo");
 			r.abort();
-			assertEquals( "Model is empty", 0, model.listStatements().toList().size());
-		}
-		else
-		{
+			assertEquals("Model is empty", 0, model.listStatements().toList()
+					.size());
+		} else {
 			try {
 				r.abort();
-				fail( "Should have thrown exception");
-			} catch (UnsupportedOperationException expected)
-			{
+				fail("Should have thrown exception");
+			} catch (UnsupportedOperationException expected) {
 				// expected
 			}
 		}
 	}
-	
+
 	@Test
-	public void testCommit()
-	{
-		if (model.supportsTransactions())
-		{
-			assertEquals( "Model is empty", 0, model.listStatements().toList().size());
+	public void testCommit() {
+		if (model.supportsTransactions()) {
+			assertEquals("Model is empty", 0, model.listStatements().toList()
+					.size());
 			r.begin();
-			r.addLiteral( RDF.value, "foo" );
+			r.addLiteral(RDF.value, "foo");
 			r.commit();
-			assertEquals( "Model is empty", 1, model.listStatements().toList().size());
-		}
-		else
-		{
+			assertEquals("Model is empty", 1, model.listStatements().toList()
+					.size());
+		} else {
 			try {
 				r.abort();
-				fail( "Should have thrown exception");
-			} catch (UnsupportedOperationException expected)
-			{
+				fail("Should have thrown exception");
+			} catch (UnsupportedOperationException expected) {
 				// expected
 			}
 		}
 	}
 
-
 	/*
-	 * A resource can only be equal to another resource. If both resources are not anonymous, 
-	 * then they are equal if the URI's are equal. If both resources are anonymous, they are 
-	 * equal only if there Id's are the same. If one resource is anonymous and the other is not, 
-	 * then they are not equal.
-	 * 
+	 * A resource can only be equal to another resource. If both resources are
+	 * not anonymous, then they are equal if the URI's are equal. If both
+	 * resources are anonymous, they are equal only if there Id's are the same.
+	 * If one resource is anonymous and the other is not, then they are not
+	 * equal.
 	 */
 	@Test
-	public void testEquals_Object()
-	{
+	public void testEquals_Object() {
 		Resource r1 = model.createResource();
 		Resource r2 = model.createResource();
-		assertNotEquals( "Anonymous resources with different Ids", r1, r2);
+		assertNotEquals("Anonymous resources with different Ids", r1, r2);
+
+		r1 = model.createResource(AnonId.create("1"));
+		r2 = model.createResource(AnonId.create("1"));
+		assertEquals("Anonymous resources with same Ids", r1, r2);
+
+		r1 = model.createResource("http://example.com/one");
+		r2 = model.createResource("http://example.com/two");
+		assertNotEquals("resources with different URIs", r1, r2);
+
+		r1 = model.createResource("http://example.com/same");
+		r2 = model.createResource("http://example.com/same");
+		assertEquals("resources with same URIs", r1, r2);
 
-		r1 = model.createResource( AnonId.create("1"));
-		r2 = model.createResource( AnonId.create("1"));
-		assertEquals( "Anonymous resources with same Ids", r1, r2);
-		
-		r1 = model.createResource( "http://example.com/one");
-		r2 = model.createResource( "http://example.com/two");
-		assertNotEquals( "resources with different URIs", r1, r2);
-		
-		r1 = model.createResource( "http://example.com/same");
-		r2 = model.createResource( "http://example.com/same");
-		assertEquals( "resources with same URIs", r1, r2);
-		
-		r1 = model.createResource( "http://example.com/one");
-		r2 = model.createResource( AnonId.create("1"));
-		assertNotEquals( "anon and uri resource", r1, r2);
+		r1 = model.createResource("http://example.com/one");
+		r2 = model.createResource(AnonId.create("1"));
+		assertNotEquals("anon and uri resource", r1, r2);
 	}
-	
+
 	@Test
-	public void testGetId()
-	{
+	public void testGetId() {
 		AnonId id = AnonId.create("5");
-		r = model.createResource( id );
-		assertEquals( id, r.getId() );
-		
+		r = model.createResource(id);
+		assertEquals(id, r.getId());
+
 		id = AnonId.create("foo");
-		r = model.createResource( id );
-		assertEquals( id, r.getId() );
-		
-		r = model.createResource( "http://example.com/foo" );
+		r = model.createResource(id);
+		assertEquals(id, r.getId());
+
+		r = model.createResource("http://example.com/foo");
 		try {
-		assertNull( "An acceptable value, perhaps exception should be required", r.getId() );
-		} catch (UnsupportedOperationException exprected)
-		{
+			assertNull(
+					"An acceptable value, perhaps exception should be required",
+					r.getId());
+		} catch (UnsupportedOperationException exprected) {
 			// expected
 		}
 	}
-	
+
 	@Test
-	public void testGetLocalName()
-	{
+	public void testGetLocalName() {
 		// simple case
-		assertEquals( "foo", model.createResource( "http://example.com/foo" ).getLocalName() );
-		
-		assertEquals( "colon", model.createResource( "http://example.com/has:colon" ).getLocalName() );
-		assertEquals( "space", model.createResource( "http://example.com/with a space" ).getLocalName() );
-		assertEquals( "dashStart", model.createResource( "http://example.com/-dashStart" ).getLocalName() );
-		assertEquals( "octothorp", model.createResource( "http://example.com/has#octothorp" ).getLocalName() );
-		assertEquals( "slash", model.createResource( "http://example.com/has/slash" ).getLocalName() );
-		assertEquals( "numericStart", model.createResource( "http://example.com/1numericStart" ).getLocalName() );
-		assertEquals( "dotStart", model.createResource( "http://example.com/.dotStart" ).getLocalName() );
-		assertEquals( "all numeric returns empty string", "", model.createResource( "http://example.com/12345" ).getLocalName() );
-		assertEquals( "uri only returns empty string", "", model.createResource( "http://example.com#" ).getLocalName() );
-		assertEquals( "uri only returns empty string", "", model.createResource( "http://example.com/" ).getLocalName() );
-		assertEquals( "octothorp", model.createResource( "http://example.com/has#multiple#octothorp" ).getLocalName() );
+		assertEquals("foo", model.createResource("http://example.com/foo")
+				.getLocalName());
+
+		assertEquals("colon",
+				model.createResource("http://example.com/has:colon")
+						.getLocalName());
+		assertEquals("space",
+				model.createResource("http://example.com/with a space")
+						.getLocalName());
+		assertEquals("dashStart",
+				model.createResource("http://example.com/-dashStart")
+						.getLocalName());
+		assertEquals("octothorp",
+				model.createResource("http://example.com/has#octothorp")
+						.getLocalName());
+		assertEquals("slash",
+				model.createResource("http://example.com/has/slash")
+						.getLocalName());
+		assertEquals("numericStart",
+				model.createResource("http://example.com/1numericStart")
+						.getLocalName());
+		assertEquals("dotStart",
+				model.createResource("http://example.com/.dotStart")
+						.getLocalName());
+		assertEquals("all numeric returns empty string", "", model
+				.createResource("http://example.com/12345").getLocalName());
+		assertEquals("uri only returns empty string", "",
+				model.createResource("http://example.com#").getLocalName());
+		assertEquals("uri only returns empty string", "",
+				model.createResource("http://example.com/").getLocalName());
+		assertEquals(
+				"octothorp",
+				model.createResource(
+						"http://example.com/has#multiple#octothorp")
+						.getLocalName());
 	}
 
 	@Test
-	public void testGetNameSpace()
-	{
+	public void testGetNameSpace() {
 		// simple case
-		assertEquals( "http://example.com/", model.createResource( "http://example.com/foo" ).getNameSpace() );
-		
-		assertEquals( "http://example.com/has:", model.createResource( "http://example.com/has:colon" ).getNameSpace() );
-		assertEquals( "http://example.com/with a ", model.createResource( "http://example.com/with a space" ).getNameSpace() );
-		assertEquals( "http://example.com/-", model.createResource( "http://example.com/-dashStart" ).getNameSpace() );
-		assertEquals( "http://example.com/has#", model.createResource( "http://example.com/has#octothorp" ).getNameSpace() );
-		assertEquals( "http://example.com/has/", model.createResource( "http://example.com/has/slash" ).getNameSpace() );
-		assertEquals( "http://example.com/1", model.createResource( "http://example.com/1numericStart" ).getNameSpace() );
-		assertEquals( "http://example.com/.", model.createResource( "http://example.com/.dotStart" ).getNameSpace() );
-		assertEquals( "all numeric returns empty string", "http://example.com/12345", model.createResource( "http://example.com/12345" ).getNameSpace() );
-		assertEquals( "uri only returns uri", "http://example.com#", model.createResource( "http://example.com#" ).getNameSpace() );
-		assertEquals( "uri only returns uri", "http://example.com/", model.createResource( "http://example.com/" ).getNameSpace() );
-		assertEquals( "http://example.com/has#multiple#", model.createResource( "http://example.com/has#multiple#octothorp" ).getNameSpace() );
-	
-	
+		assertEquals("http://example.com/",
+				model.createResource("http://example.com/foo").getNameSpace());
+
+		assertEquals("http://example.com/has:",
+				model.createResource("http://example.com/has:colon")
+						.getNameSpace());
+		assertEquals("http://example.com/with a ",
+				model.createResource("http://example.com/with a space")
+						.getNameSpace());
+		assertEquals("http://example.com/-",
+				model.createResource("http://example.com/-dashStart")
+						.getNameSpace());
+		assertEquals("http://example.com/has#",
+				model.createResource("http://example.com/has#octothorp")
+						.getNameSpace());
+		assertEquals("http://example.com/has/",
+				model.createResource("http://example.com/has/slash")
+						.getNameSpace());
+		assertEquals("http://example.com/1",
+				model.createResource("http://example.com/1numericStart")
+						.getNameSpace());
+		assertEquals("http://example.com/.",
+				model.createResource("http://example.com/.dotStart")
+						.getNameSpace());
+		assertEquals("all numeric returns empty string",
+				"http://example.com/12345",
+				model.createResource("http://example.com/12345").getNameSpace());
+		assertEquals("uri only returns uri", "http://example.com#", model
+				.createResource("http://example.com#").getNameSpace());
+		assertEquals("uri only returns uri", "http://example.com/", model
+				.createResource("http://example.com/").getNameSpace());
+		assertEquals(
+				"http://example.com/has#multiple#",
+				model.createResource(
+						"http://example.com/has#multiple#octothorp")
+						.getNameSpace());
+
 	}
 
 	@Test
-	public void testGetProperty_Property()
-	{
-		txnBegin( model );
-		modelAdd( model, "x p 17; x P y");
-		txnCommit( model );
+	public void testGetProperty_Property() {
+		txnBegin(model);
+		modelAdd(model, "x p 17; x P y");
+		txnCommit(model);
 		r = model.createResource("eh:/x");
-		
+
 		Statement stmt = null;
-		
+
 		stmt = r.getProperty(RDF.type);
-		assertNull( "Missing value should return null", stmt );
-		stmt = r.getRequiredProperty( property("P"));
-		assertEquals( r, stmt.getSubject());
-		assertEquals( property( "P"), stmt.getPredicate());
-		assertEquals( rdfNode( "y" ), stmt.getObject());
+		assertNull("Missing value should return null", stmt);
+		stmt = r.getRequiredProperty(property("P"));
+		assertEquals(r, stmt.getSubject());
+		assertEquals(property("P"), stmt.getPredicate());
+		assertEquals(rdfNode("y"), stmt.getObject());
 
 	}
-	
-	@Test
-	public void testGetPropertyResourceValue_Property()
-	{
-		txnBegin( model );
-		modelAdd( model, "x p 17; x P y");
-		txnCommit( model );
+
+	@Test
+	public void testGetPropertyResourceValue_Property() {
+		txnBegin(model);
+		modelAdd(model, "x p 17; x P y");
+		txnCommit(model);
 		r = model.createResource("eh:/x");
-		
+
 		// check for missing value
-		assertNull("value is missing", r.getPropertyResourceValue(property("q")));
-		
+		assertNull("value is missing",
+				r.getPropertyResourceValue(property("q")));
+
 		// check where value is literal
-		assertNull( "value is literal", r.getPropertyResourceValue(property("p")));
-		
+		assertNull("value is literal",
+				r.getPropertyResourceValue(property("p")));
+
 		Resource r2 = r.getPropertyResourceValue(property("P"));
-		assertNotNull( r2 );
-		assertEquals( resource("y"), r2 );
+		assertNotNull(r2);
+		assertEquals(resource("y"), r2);
 	}
-	
+
 	@Test
-	public void testGetRequiredProperty_Property()
-	{
-		txnBegin( model );
-		modelAdd( model, "x p 17; x P y");
-		txnCommit( model );
+	public void testGetRequiredProperty_Property() {
+		txnBegin(model);
+		modelAdd(model, "x p 17; x P y");
+		txnCommit(model);
 		r = model.createResource("eh:/x");
-		
-		try
-		{
+
+		try {
 			r.getRequiredProperty(RDF.type);
 			fail("missing property should throw PropertyNotFoundException");
-		}
-		catch (final PropertyNotFoundException expected)
-		{
+		} catch (final PropertyNotFoundException expected) {
 			// expected
 		}
-		Statement stmt = r.getRequiredProperty( property("P"));
-		assertEquals( r, stmt.getSubject());
-		assertEquals( property( "P"), stmt.getPredicate());
-		assertEquals( rdfNode( "y" ), stmt.getObject());
-
-	}
-	
-	@Test
-	public void testGetURI()
-	{
-		assertNull( r.getURI());
-		assertEquals( "http://example.com/foo", model.createResource( "http://example.com/foo" ).getURI());
-	}
-	
-	@Test
-	public void testHasLiteral_Property_boolean()
-	{
-		txnBegin( model );
-			r.addLiteral(RDF.value, false);
-		txnCommit( model );
-		
+		Statement stmt = r.getRequiredProperty(property("P"));
+		assertEquals(r, stmt.getSubject());
+		assertEquals(property("P"), stmt.getPredicate());
+		assertEquals(rdfNode("y"), stmt.getObject());
+
+	}
+
+	@Test
+	public void testGetURI() {
+		assertNull(r.getURI());
+		assertEquals("http://example.com/foo",
+				model.createResource("http://example.com/foo").getURI());
+	}
+
+	@Test
+	public void testHasLiteral_Property_boolean() {
+		txnBegin(model);
+		r.addLiteral(RDF.value, false);
+		txnCommit(model);
+
 		assertTrue(r.hasLiteral(RDF.value, false));
 		assertFalse(r.hasLiteral(RDF.value, true));
 	}
-	
-	
-	
+
 	@Test
-	public void testHasLiteral_Property_byte()
-	{
+	public void testHasLiteral_Property_byte() {
 		byte b = "B".getBytes()[0];
 		byte b2 = "C".getBytes()[0];
-		
-		txnBegin( model );
-			r.addLiteral(RDF.value, b);
-			txnCommit( model );
-			assertTrue(r.hasLiteral(RDF.value, b));
-			assertFalse(r.hasLiteral(RDF.value, b2));
+
+		txnBegin(model);
+		r.addLiteral(RDF.value, b);
+		txnCommit(model);
+		assertTrue(r.hasLiteral(RDF.value, b));
+		assertFalse(r.hasLiteral(RDF.value, b2));
 	}
-	
+
 	@Test
-	public void testHasLiteral_Property_short()
-	{
+	public void testHasLiteral_Property_short() {
 		short s = 5;
 		short s2 = 6;
-		
-		txnBegin( model );
-			r.addLiteral(RDF.value, s);
-			txnCommit( model );
-			assertTrue(r.hasLiteral(RDF.value, s));
-			assertFalse(r.hasLiteral(RDF.value, s2));
-	}
-	
-	@Test
-	public void testHasLiteral_Property_char()
-	{
-		txnBegin( model );
-			r.addLiteral(RDF.value, 'x');
-			txnCommit( model );
-			assertTrue(r.hasLiteral(RDF.value, 'x'));
-			assertFalse(r.hasLiteral(RDF.value, 'y'));
-
-	}
-	
-	@Test
-	public void testHasLiteral_Property_double()
-	{
-		txnBegin( model );
+
+		txnBegin(model);
+		r.addLiteral(RDF.value, s);
+		txnCommit(model);
+		assertTrue(r.hasLiteral(RDF.value, s));
+		assertFalse(r.hasLiteral(RDF.value, s2));
+	}
+
+	@Test
+	public void testHasLiteral_Property_char() {
+		txnBegin(model);
+		r.addLiteral(RDF.value, 'x');
+		txnCommit(model);
+		assertTrue(r.hasLiteral(RDF.value, 'x'));
+		assertFalse(r.hasLiteral(RDF.value, 'y'));
+
+	}
+
+	@Test
+	public void testHasLiteral_Property_double() {
+		txnBegin(model);
 		r.addLiteral(RDF.value, 1.0d);
-		txnCommit( model );
+		txnCommit(model);
 		assertTrue(r.hasLiteral(RDF.value, 1.0d));
-		assertFalse(r.hasLiteral(RDF.value, 2.0d));	
-		assertFalse(r.hasLiteral(RDF.value, 1.0f));	
+		assertFalse(r.hasLiteral(RDF.value, 2.0d));
+		assertFalse(r.hasLiteral(RDF.value, 1.0f));
 	}
 
 	@Test
-	public void testHasLiteral_Property_float()
-	{
-		txnBegin( model );
+	public void testHasLiteral_Property_float() {
+		txnBegin(model);
 		r.addLiteral(RDF.value, 1.0f);
-		txnCommit( model );
+		txnCommit(model);
 		assertTrue(r.hasLiteral(RDF.value, 1.0f));
 		assertFalse(r.hasLiteral(RDF.value, 2.0f));
 		assertFalse(r.hasLiteral(RDF.value, 1.0d));
 	}
-	
+
 	@Test
-	public void testHasLiteral_Property_long()
-	{
-		txnBegin( model );
+	public void testHasLiteral_Property_long() {
+		txnBegin(model);
 		r.addLiteral(RDF.value, 1L);
-		txnCommit( model );
+		txnCommit(model);
 		assertTrue(r.hasLiteral(RDF.value, 1L));
 		assertFalse(r.hasLiteral(RDF.value, 2L));
-		logAssertFalse( this.getClass(), "literal should not be an int", r.hasLiteral(RDF.value, 1));
+		logAssertFalse(this.getClass(), "literal should not be an int",
+				r.hasLiteral(RDF.value, 1));
 	}
-	
+
 	@Test
-	public void testHasLiteral_Property_int()
-	{
-		txnBegin( model );
+	public void testHasLiteral_Property_int() {
+		txnBegin(model);
 		r.addLiteral(RDF.value, 1);
-		txnCommit( model );
+		txnCommit(model);
 		assertTrue(r.hasLiteral(RDF.value, 1));
 		assertFalse(r.hasLiteral(RDF.value, 2));
-		logAssertFalse(this.getClass(), "literal should not be a long", r.hasLiteral(RDF.value, 1L));
+		logAssertFalse(this.getClass(), "literal should not be a long",
+				r.hasLiteral(RDF.value, 1L));
 	}
-	
+
 	@Test
-	public void testHasLiteral_Property_Object()
-	{
+	public void testHasLiteral_Property_Object() {
 		final Object z = new Object();
-		txnBegin( model );
-	r.addLiteral(RDF.value, z);
-		txnCommit( model );
-	assertTrue(r.hasLiteral(RDF.value, z));
-	assertFalse(r.hasLiteral(RDF.value, new Object()));
-	}
-	
-	@Test
-	public void testHasProperty_Property()
-	{
-		final RDFNode rdf = rdfNode( "http://example.com/rdf");
-		txnBegin( model );
-	r.addProperty(RDF.value, rdf);
-		txnCommit( model );
-	assertTrue(r.hasProperty(RDF.value));
-	assertFalse(r.hasProperty(RDF.type));
-	assertTrue(r.hasProperty(null));
+		txnBegin(model);
+		r.addLiteral(RDF.value, z);
+		txnCommit(model);
+		assertTrue(r.hasLiteral(RDF.value, z));
+		assertFalse(r.hasLiteral(RDF.value, new Object()));
+	}
+
+	@Test
+	public void testHasProperty_Property() {
+		final RDFNode rdf = rdfNode("http://example.com/rdf");
+		txnBegin(model);
+		r.addProperty(RDF.value, rdf);
+		txnCommit(model);
+		assertTrue(r.hasProperty(RDF.value));
+		assertFalse(r.hasProperty(RDF.type));
+		assertTrue(r.hasProperty(null));
 	}
 
 	@Test
-	public void testHasProperty_Property_RDFNode()
-	{
-		final RDFNode rdf = rdfNode( "http://example.com/rdf");
-		txnBegin( model );
-	r.addProperty(RDF.value, rdf);
-		txnCommit( model );
-	assertTrue(r.hasProperty(RDF.value, rdf));
-	assertFalse(r.hasProperty(RDF.value, rdfNode( "http://example.com/rdf2")));
-	assertFalse(r.hasProperty(RDF.type, rdf));
-	assertTrue(r.hasProperty(null, rdf));
-	assertTrue(r.hasProperty(null, (RDFNode)null));
+	public void testHasProperty_Property_RDFNode() {
+		final RDFNode rdf = rdfNode("http://example.com/rdf");
+		txnBegin(model);
+		r.addProperty(RDF.value, rdf);
+		txnCommit(model);
+		assertTrue(r.hasProperty(RDF.value, rdf));
+		assertFalse(r
+				.hasProperty(RDF.value, rdfNode("http://example.com/rdf2")));
+		assertFalse(r.hasProperty(RDF.type, rdf));
+		assertTrue(r.hasProperty(null, rdf));
+		assertTrue(r.hasProperty(null, (RDFNode) null));
 	}
 
 	@Test
-	public void testHasProperty_Property_String()
-	{
-		txnBegin( model );
+	public void testHasProperty_Property_String() {
+		txnBegin(model);
 		r.addProperty(RDF.value, "foo");
-		txnCommit( model );
-		assertTrue( r.hasProperty( RDF.value, "foo"));
+		txnCommit(model);
+		assertTrue(r.hasProperty(RDF.value, "foo"));
 		try {
-		r.hasProperty( RDF.value, (String)null);
-		fail( "Should throw null pointer exception");
-		}
-		catch (NullPointerException expected)
-		{
+			r.hasProperty(RDF.value, (String) null);
+			fail("Should throw null pointer exception");
+		} catch (NullPointerException expected) {
 			// expected
 		}
-		assertFalse( r.hasProperty( RDF.type, "foo"));
-		assertTrue( r.hasProperty( null, "foo"));
+		assertFalse(r.hasProperty(RDF.type, "foo"));
+		assertTrue(r.hasProperty(null, "foo"));
 	}
-	
+
 	@Test
-	public void testHasProperty_Property_String_String()
-	{
-		txnBegin( model );
+	public void testHasProperty_Property_String_String() {
+		txnBegin(model);
 		r.addProperty(RDF.value, "foo", "fr");
-		txnCommit( model );
-		
-		assertTrue( r.hasProperty( RDF.value, "foo", "fr"));
-		assertFalse( r.hasProperty( RDF.value, "foo", "en"));
-		assertFalse( r.hasProperty( RDF.value, "foo", null ));
+		txnCommit(model);
+
+		assertTrue(r.hasProperty(RDF.value, "foo", "fr"));
+		assertFalse(r.hasProperty(RDF.value, "foo", "en"));
+		assertFalse(r.hasProperty(RDF.value, "foo", null));
 		try {
-		 r.hasProperty( RDF.value, null, "fr");
-		}
-		catch (NullPointerException expected)
-		{
+			r.hasProperty(RDF.value, null, "fr");
+		} catch (NullPointerException expected) {
 			// expected
-		}	
-		try {
-		 r.hasProperty( RDF.value, null, null);
 		}
-		catch (NullPointerException expected)
-		{
+		try {
+			r.hasProperty(RDF.value, null, null);
+		} catch (NullPointerException expected) {
 			// expected
-		}	
+		}
 	}
 
 	@Test
-	public void testHasURI()
-	{
+	public void testHasURI() {
 		r = model.createResource();
-		assertFalse( model.createResource().hasURI( "http://example.com/foo"));
-		assertFalse( model.createResource( AnonId.create("foo")).hasURI( AnonId.create("foo").getLabelString()));
-		assertFalse( model.createResource( "urn:foo:bar").hasURI( "http://example.com/foo"));
-		assertTrue( model.createResource("http://example.com/foo").hasURI( "http://example.com/foo"));
-	}
-	
-	@Test
-	public void testlistProperties()
-	{
-		Property[] props = { property("P"), property("Q"), property("R"), property("S") };
-		txnBegin( model );
-		r.addLiteral( property( "P") , "foo");
-		r.addLiteral( property( "Q") , "foo");
-		r.addLiteral( property( "R") , "foo");
-		r.addLiteral( property( "S") , "foo");
-		r.addLiteral( property( "S") , "bar");
-		txnCommit( model );
-	
+		assertFalse(model.createResource().hasURI("http://example.com/foo"));
+		assertFalse(model.createResource(AnonId.create("foo")).hasURI(
+				AnonId.create("foo").getLabelString()));
+		assertFalse(model.createResource("urn:foo:bar").hasURI(
+				"http://example.com/foo"));
+		assertTrue(model.createResource("http://example.com/foo").hasURI(
+				"http://example.com/foo"));
+	}
+
+	@Test
+	public void testlistProperties() {
+		Property[] props = { property("P"), property("Q"), property("R"),
+				property("S") };
+		txnBegin(model);
+		r.addLiteral(property("P"), "foo");
+		r.addLiteral(property("Q"), "foo");
+		r.addLiteral(property("R"), "foo");
+		r.addLiteral(property("S"), "foo");
+		r.addLiteral(property("S"), "bar");
+		txnCommit(model);
+
 		List<Statement> lst = r.listProperties().toList();
-		List<Property> pLst = Arrays.asList( props );
-		assertEquals( 5, lst.size() );
-		for (Statement s : lst ) {
-			assertTrue( "missing "+s.getPredicate(), pLst.contains(s.getPredicate()) );
+		List<Property> pLst = Arrays.asList(props);
+		assertEquals(5, lst.size());
+		for (Statement s : lst) {
+			assertTrue("missing " + s.getPredicate(),
+					pLst.contains(s.getPredicate()));
 			assertEquals(r, s.getSubject());
-		}	
+		}
 	}
-	
+
 	@Test
-	public void testlistProperties_Property()
-	{
-		txnBegin( model );
-		r.addLiteral( property( "P") , "foo");
-		r.addLiteral( property( "Q") , "foo");
-		r.addLiteral( property( "R") , "foo");
-		r.addLiteral( property( "S") , "foo");
-		r.addLiteral( property( "S") , "bar");
-		txnCommit( model );
-	
-		List<Statement> lst = r.listProperties( property("P")).toList();
-		assertEquals( 1, lst.size() );
-		assertEquals( property("P"), lst.get(0).getPredicate() );
+	public void testlistProperties_Property() {
+		txnBegin(model);
+		r.addLiteral(property("P"), "foo");
+		r.addLiteral(property("Q"), "foo");
+		r.addLiteral(property("R"), "foo");
+		r.addLiteral(property("S"), "foo");
+		r.addLiteral(property("S"), "bar");
+		txnCommit(model);
+
+		List<Statement> lst = r.listProperties(property("P")).toList();
+		assertEquals(1, lst.size());
+		assertEquals(property("P"), lst.get(0).getPredicate());
 		assertEquals(r, lst.get(0).getSubject());
-		
-		lst = r.listProperties( property("S")).toList();
-		assertEquals( 2, lst.size() );
-		assertEquals( property("S"), lst.get(0).getPredicate() );
+
+		lst = r.listProperties(property("S")).toList();
+		assertEquals(2, lst.size());
+		assertEquals(property("S"), lst.get(0).getPredicate());
 		assertEquals(r, lst.get(0).getSubject());
-		assertEquals( property("S"), lst.get(1).getPredicate() );
+		assertEquals(property("S"), lst.get(1).getPredicate());
 		assertEquals(r, lst.get(1).getSubject());
-		
-		List<String> pLst = Arrays.asList( "foo", "bar" );
-		for (Statement s : lst ) {
-			assertTrue( "missing "+s.getObject(), pLst.contains(s.getObject().asLiteral().getString()) );
+
+		List<String> pLst = Arrays.asList("foo", "bar");
+		for (Statement s : lst) {
+			assertTrue("missing " + s.getObject(),
+					pLst.contains(s.getObject().asLiteral().getString()));
 		}
-		
 
 	}
-	
+
 	@Test
-	public void testRemoveProperties()
-	{
-		txnBegin( model );
-		r.addLiteral( property( "P") , "foo");
-		r.addLiteral( property( "Q") , "foo");
-		r.addLiteral( property( "R") , "foo");
-		r.addLiteral( property( "S") , "foo");
-		r.addLiteral( property( "S") , "bar");
-		modelAdd( model, "x P y; x S 'foo'");
-		txnCommit( model );
-		
-		Literal vFoo = model.createTypedLiteral( "foo" );
-		Literal vBar = model.createTypedLiteral( "bar" );
-		
-		model.register( SL );
-		txnBegin( model );
-		r.removeProperties();
-		txnCommit( model );
-		
-		SL.assertContains( "remove", statement( r, property( "P"), vFoo ));
-		SL.assertContains( "remove", statement( r, property( "Q"), vFoo ));
-		SL.assertContains( "remove", statement( r, property( "R"), vFoo ));
-		SL.assertContains( "remove", statement( r, property( "S"), vFoo ));
-		SL.assertContains( "remove", statement( r, property( "S"), vBar ));
-		SL.assertContains( "remove", statement( r, property( "P"), vFoo ));
-		SL.assertContains( "someEvent", model, new GraphEvents( "remove", new Triple( r.asNode(), Node.ANY, Node.ANY )));
-
-		assertEquals( "Should have removed all 'r' statements", 0, model.listStatements( r, null, (RDFNode)null).toList().size());
-		assertEquals( "Should have remaining statements", 2, model.listStatements().toList().size());
-	}
+	public void testRemoveProperties() {
+		txnBegin(model);
+		r.addLiteral(property("P"), "foo");
+		r.addLiteral(property("Q"), "foo");
+		r.addLiteral(property("R"), "foo");
+		r.addLiteral(property("S"), "foo");
+		r.addLiteral(property("S"), "bar");
+		modelAdd(model, "x P y; x S 'foo'");
+		txnCommit(model);
 
+		Literal vFoo = model.createTypedLiteral("foo");
+		Literal vBar = model.createTypedLiteral("bar");
 
+		model.register(SL);
+		txnBegin(model);
+		r.removeProperties();
+		txnCommit(model);
 
-//// FIXME implement this
-
-//
-//
-//	@Test
-//	public void testLiteral()throws Exception
-//	{
-//		Model model = getModelProducer().newModel();
-//		Resource r = setUp( model );
-//		assertTrue(r.hasProperty(RDF.value, tvLiteral));
-//	}
-//
-
-//
-//
-//
-//	
-//
-//	@Test
-//	public void testShort()throws Exception
-//	{
-//		Model model = getModelProducer().newModel();
-//		Resource r = setUp( model );
-//		assertTrue(r
-//				.hasLiteral(RDF.value, tvShort));
-//	}
-//
-//	@Test
-//	public void testString()throws Exception
-//	{
-//		Model model = getModelProducer().newModel();
-//		Resource r = setUp( model );
-//		assertTrue(r.hasProperty(RDF.value,
-//				tvString));
-//	}
-//
-//	@Test
-//	public void testStringWithLanguage()throws Exception
-//	{
-//		Model model = getModelProducer().newModel();
-//		Resource r = setUp( model );
-//		assertTrue(r.hasProperty(RDF.value,
-//				tvString, lang));
-//	}
+		SL.assertContains("remove", statement(r, property("P"), vFoo));
+		SL.assertContains("remove", statement(r, property("Q"), vFoo));
+		SL.assertContains("remove", statement(r, property("R"), vFoo));
+		SL.assertContains("remove", statement(r, property("S"), vFoo));
+		SL.assertContains("remove", statement(r, property("S"), vBar));
+		SL.assertContains("remove", statement(r, property("P"), vFoo));
+		SL.assertContains("someEvent", model, new GraphEvents("remove",
+				new Triple(r.asNode(), Node.ANY, Node.ANY)));
+
+		assertEquals("Should have removed all 'r' statements", 0, model
+				.listStatements(r, null, (RDFNode) null).toList().size());
+		assertEquals("Should have remaining statements", 2, model
+				.listStatements().toList().size());
+	}
+
+	@Test
+	public void testInModel() {
+		Model m = memModel("");
+		assertEquals(model, r.getModel());
+		Resource r2 = r.inModel(m);
+		assertEquals("Resource not moved to new model", m, r2.getModel());
+		assertEquals("resource should equal original", r, r2);
+	}
+
+	// // FIXME implement this
+
+	//
+	//
+	// @Test
+	// public void testLiteral()throws Exception
+	// {
+	// Model model = getModelProducer().newModel();
+	// Resource r = setUp( model );
+	// assertTrue(r.hasProperty(RDF.value, tvLiteral));
+	// }
+	//
+
+	//
+	//
+	//
+	//
+	//
+	// @Test
+	// public void testShort()throws Exception
+	// {
+	// Model model = getModelProducer().newModel();
+	// Resource r = setUp( model );
+	// assertTrue(r
+	// .hasLiteral(RDF.value, tvShort));
+	// }
+	//
+	// @Test
+	// public void testString()throws Exception
+	// {
+	// Model model = getModelProducer().newModel();
+	// Resource r = setUp( model );
+	// assertTrue(r.hasProperty(RDF.value,
+	// tvString));
+	// }
+	//
+	// @Test
+	// public void testStringWithLanguage()throws Exception
+	// {
+	// Model model = getModelProducer().newModel();
+	// Resource r = setUp( model );
+	// assertTrue(r.hasProperty(RDF.value,
+	// tvString, lang));
+	// }
 }

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceFactoryTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceFactoryTest.java?rev=1530718&r1=1530717&r2=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceFactoryTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceFactoryTest.java Wed Oct  9 17:16:15 2013
@@ -35,73 +35,61 @@ import org.junit.Assert;
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
-public class ResourceFactoryTest extends TestCase
-{
+public class ResourceFactoryTest extends TestCase {
 
-	class TestFactory implements ResourceFactory.Interface
-	{
+	class TestFactory implements ResourceFactory.Interface {
 
 		Resource resource;
 
-		TestFactory( final Resource r )
-		{
+		TestFactory(final Resource r) {
 			resource = r;
 		}
 
 		@Override
-		public Literal createLangLiteral( final String string, final String lang )
-		{
+		public Literal createLangLiteral(final String string, final String lang) {
 			return null;
 		}
 
 		@Override
-		public Literal createPlainLiteral( final String string )
-		{
+		public Literal createPlainLiteral(final String string) {
 			return null;
 		}
 
 		@Override
-		public Property createProperty( final String uriref )
-		{
+		public Property createProperty(final String uriref) {
 			return null;
 		}
 
 		@Override
-		public Property createProperty( final String namespace,
-				final String localName )
-		{
+		public Property createProperty(final String namespace,
+				final String localName) {
 			return null;
 		}
 
 		@Override
-		public Resource createResource()
-		{
+		public Resource createResource() {
 			return resource;
 		}
 
 		@Override
-		public Resource createResource( final String uriref )
-		{
+		public Resource createResource(final String uriref) {
 			return null;
 		}
 
 		@Override
-		public Statement createStatement( final Resource subject,
-				final Property predicate, final RDFNode object )
-		{
+		public Statement createStatement(final Resource subject,
+				final Property predicate, final RDFNode object) {
 			return null;
 		}
 
 		@Override
-		public Literal createTypedLiteral( final Object value )
-		{
+		public Literal createTypedLiteral(final Object value) {
 			return null;
 		}
 
 		@Override
-		public Literal createTypedLiteral( final String string,
-				final RDFDatatype datatype )
-		{
+		public Literal createTypedLiteral(final String string,
+				final RDFDatatype datatype) {
 			return null;
 		}
 
@@ -111,18 +99,15 @@ public class ResourceFactoryTest extends
 
 	static final String uri2 = "http://example.org/example#a2";
 
-	public static TestSuite suite()
-	{
+	public static TestSuite suite() {
 		return new TestSuite(ResourceFactoryTest.class);
 	}
 
-	public ResourceFactoryTest( final String name )
-	{
+	public ResourceFactoryTest(final String name) {
 		super(name);
 	}
 
-	public void testCreateLiteral()
-	{
+	public void testCreateLiteral() {
 		final Literal l = ResourceFactory.createPlainLiteral("lex");
 		Assert.assertTrue(l.getLexicalForm().equals("lex"));
 		Assert.assertTrue(l.getLanguage().equals(""));
@@ -130,8 +115,7 @@ public class ResourceFactoryTest extends
 		Assert.assertNull(l.getDatatypeURI());
 	}
 
-	public void testCreateProperty()
-	{
+	public void testCreateProperty() {
 		final Property p1 = ResourceFactory
 				.createProperty(ResourceFactoryTest.uri1);
 		Assert.assertTrue(p1.getURI().equals(ResourceFactoryTest.uri1));
@@ -140,8 +124,7 @@ public class ResourceFactoryTest extends
 		Assert.assertTrue(p2.getURI().equals(ResourceFactoryTest.uri1 + "2"));
 	}
 
-	public void testCreateResource()
-	{
+	public void testCreateResource() {
 		Resource r1 = ResourceFactory.createResource();
 		Assert.assertTrue(r1.isAnon());
 		final Resource r2 = ResourceFactory.createResource();
@@ -152,8 +135,7 @@ public class ResourceFactoryTest extends
 		Assert.assertTrue(r1.getURI().equals(ResourceFactoryTest.uri1));
 	}
 
-	public void testCreateStatement()
-	{
+	public void testCreateStatement() {
 		final Resource s = ResourceFactory.createResource();
 		final Property p = ResourceFactory
 				.createProperty(ResourceFactoryTest.uri2);
@@ -164,8 +146,7 @@ public class ResourceFactoryTest extends
 		Assert.assertTrue(stmt.getObject().equals(o));
 	}
 
-	public void testCreateTypedLiteral()
-	{
+	public void testCreateTypedLiteral() {
 		final Literal l = ResourceFactory.createTypedLiteral("22",
 				XSDDatatype.XSDinteger);
 		Assert.assertTrue(l.getLexicalForm().equals("22"));
@@ -176,16 +157,14 @@ public class ResourceFactoryTest extends
 
 	}
 
-	public void testCreateTypedLiteralObject()
-	{
+	public void testCreateTypedLiteralObject() {
 		final Literal l = ResourceFactory.createTypedLiteral(new Integer(22));
 		Assert.assertEquals("22", l.getLexicalForm());
 		Assert.assertEquals("", l.getLanguage());
 		Assert.assertEquals(XSDDatatype.XSDint, l.getDatatype());
 	}
 
-	public void testCreateTypedLiteralOverload()
-	{
+	public void testCreateTypedLiteralOverload() {
 		final Calendar testCal = new GregorianCalendar(
 				TimeZone.getTimeZone("GMT"));
 		testCal.set(1999, 4, 30, 15, 9, 32);
@@ -198,8 +177,7 @@ public class ResourceFactoryTest extends
 
 	}
 
-	public void testGetInstance()
-	{
+	public void testGetInstance() {
 		ResourceFactory.getInstance();
 		final Resource r1 = ResourceFactory.createResource();
 		Assert.assertTrue(r1.isAnon());
@@ -208,20 +186,16 @@ public class ResourceFactoryTest extends
 		Assert.assertTrue(!r1.equals(r2));
 	}
 
-	public void testSetInstance()
-	{
+	public void testSetInstance() {
 		final Resource r = ResourceFactory.createResource();
 		final ResourceFactory.Interface oldFactory = ResourceFactory
 				.getInstance();
 		final ResourceFactory.Interface factory = new TestFactory(r);
-		try
-		{
+		try {
 			ResourceFactory.setInstance(factory);
 			Assert.assertTrue(factory.equals(ResourceFactory.getInstance()));
 			Assert.assertTrue(ResourceFactory.createResource() == r);
-		}
-		finally
-		{
+		} finally {
 			ResourceFactory.setInstance(oldFactory);
 		}
 	}

Copied: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/SeqContractTests.java (from r1525287, jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractSeqMethodsTest.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/SeqContractTests.java?p2=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/SeqContractTests.java&p1=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractSeqMethodsTest.java&r1=1525287&r2=1530718&rev=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractSeqMethodsTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/SeqContractTests.java Wed Oct  9 17:16:15 2013
@@ -20,7 +20,6 @@ package com.hp.hpl.jena.rdf.model;
 
 import com.hp.hpl.jena.rdf.model.Alt;
 import com.hp.hpl.jena.rdf.model.Bag;
-import com.hp.hpl.jena.rdf.model.Container;
 import com.hp.hpl.jena.rdf.model.Literal;
 import com.hp.hpl.jena.rdf.model.NodeIterator;
 import com.hp.hpl.jena.rdf.model.RDFNode;
@@ -28,6 +27,8 @@ import com.hp.hpl.jena.rdf.model.Resourc
 import com.hp.hpl.jena.rdf.model.Seq;
 import com.hp.hpl.jena.rdf.model.SeqIndexBoundsException;
 import com.hp.hpl.jena.test.JenaTestBase;
+import com.hp.hpl.jena.testing_framework.IContainerProducer;
+
 import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
 import com.hp.hpl.jena.vocabulary.RDF;
 
@@ -35,11 +36,17 @@ import java.util.ArrayList;
 import java.util.List;
 
 import static org.junit.Assert.*;
+
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.xenei.junit.contract.Contract;
+
+@Contract(Seq.class)
+public abstract class SeqContractTests {
 
-public abstract class AbstractSeqMethodsTest extends
-		AbstractContainerMethodsTest {
+	@Contract.Inject("com.hp.hpl.jena.testing_framework.IContainerProducer<%s>")
+	public abstract IContainerProducer<Seq> getSeqProducer();
 
 	protected LitTestObj aLitTestObj;
 
@@ -47,7 +54,6 @@ public abstract class AbstractSeqMethods
 
 	protected Resource tvResource;
 
-	// protected Resource tvResObj;
 	protected Object anObject;
 
 	protected Bag tvBag;
@@ -64,41 +70,47 @@ public abstract class AbstractSeqMethods
 		return result;
 	}
 
-	@Override
-	protected Class<? extends Container> getContainerClass() {
-		return Seq.class;
+	@After
+	public final void afterSeqContractTests() {
+		getSeqProducer().cleanUp();
 	}
 
-	@Override
-	protected Container createContainer(String uri) {
-		return uri == null ? model.createSeq() : model.createSeq(uri);
-	}
+	// @Override
+	// protected Class<? extends Container> getContainerClass() {
+	// return Seq.class;
+	// }
+	//
+	// @Override
+	// protected Container createContainer(String uri) {
+	// return uri == null ? getSeqProducer().newInstance() :
+	// getSeqProducer().newInstance(uri);
+	// }
 
 	private void error(final String test, final int n) {
 		fail(test + " -- " + n);
 	}
 
-	@Override
-	protected Resource getContainerType() {
-		return RDF.Seq;
-	}
+	// @Override
+	// protected Resource getContainerType() {
+	// return RDF.Seq;
+	// }
 
 	@Before
-	final public void setUpSeqMethodsTest() throws Exception {
+	final public void beforeSeqContractTests() throws Exception {
 		aLitTestObj = new LitTestObj(12345);
-		tvLiteral = model.createLiteral("test 12 string 2");
-		tvResource = model.createResource();
+		tvLiteral = literal("'test 12 string 2'");
+		tvResource = resource();
 		// tvResObj = model.createResource( new ResTestObjF() );
 		anObject = new LitTestObj(1234);
-		tvBag = model.createBag();
-		tvAlt = model.createAlt();
-		tvSeq = model.createSeq();
+		tvBag = getSeqProducer().getModel().createBag();
+		tvAlt = getSeqProducer().getModel().createAlt();
+		tvSeq = getSeqProducer().newInstance();
 	}
 
 	@Test
 	public void testMoreIndexing() {
 		final int num = 10;
-		final Seq seq = model.createSeq();
+		final Seq seq = getSeqProducer().newInstance();
 		for (int i = 0; i < num; i += 1) {
 			seq.add(i);
 		}
@@ -133,7 +145,7 @@ public abstract class AbstractSeqMethods
 
 	protected void testRemove(final boolean[] retain) {
 		final int num = retain.length;
-		final Seq seq = model.createSeq();
+		final Seq seq = getSeqProducer().newInstance();
 		for (int i = 0; i < num; i += 1) {
 			seq.add(i);
 		}
@@ -173,7 +185,7 @@ public abstract class AbstractSeqMethods
 	public void testSeq4() {
 		final String test = "temp";
 		int n = 58305;
-		final Seq seq4 = model.createSeq();
+		final Seq seq4 = getSeqProducer().newInstance();
 		n = ((n / 100) * 100) + 100;
 		n++;
 		seq4.add(tvBoolean);
@@ -234,13 +246,13 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		seq4.add(tvString, AbstractSeqMethodsTest.lang);
+		seq4.add(tvString, SeqContractTests.lang);
 		n++;
 		if (!(seq4.getString(10).equals(tvString))) {
 			error(test, n);
 		}
 		n++;
-		if (!(seq4.getLanguage(10).equals(AbstractSeqMethodsTest.lang))) {
+		if (!(seq4.getLanguage(10).equals(SeqContractTests.lang))) {
 			error(test, n);
 		}
 		n++;
@@ -303,10 +315,10 @@ public abstract class AbstractSeqMethods
 
 	@Test
 	public void testSeq5() {
-		final Seq seq5 = model.createSeq();
+		final Seq seq5 = getSeqProducer().newInstance();
 		final String test = "seq5";
 		int n = 0;
-		for (int i = 0; i < AbstractSeqMethodsTest.num; i++) {
+		for (int i = 0; i < SeqContractTests.num; i++) {
 			seq5.add(i);
 		}
 
@@ -317,14 +329,14 @@ public abstract class AbstractSeqMethods
 		} catch (final SeqIndexBoundsException e) {
 			// as required
 		}
-		seq5.add(AbstractSeqMethodsTest.num + 1, false);
-		if (seq5.size() != (AbstractSeqMethodsTest.num + 1)) {
+		seq5.add(SeqContractTests.num + 1, false);
+		if (seq5.size() != (SeqContractTests.num + 1)) {
 			error(test, n);
 		}
-		seq5.remove(AbstractSeqMethodsTest.num + 1);
+		seq5.remove(SeqContractTests.num + 1);
 		try {
 			n++;
-			seq5.add(AbstractSeqMethodsTest.num + 2, false);
+			seq5.add(SeqContractTests.num + 2, false);
 			error(test, n);
 		} catch (final SeqIndexBoundsException e) {
 			// as required
@@ -332,7 +344,7 @@ public abstract class AbstractSeqMethods
 
 		n = ((n / 100) * 100) + 100;
 		final int size = seq5.size();
-		for (int i = 1; i <= (AbstractSeqMethodsTest.num - 1); i++) {
+		for (int i = 1; i <= (SeqContractTests.num - 1); i++) {
 			n++;
 			seq5.add(i, 1000 + i);
 			n++;
@@ -348,7 +360,7 @@ public abstract class AbstractSeqMethods
 				error(test, n);
 			}
 			n++;
-			if (!(seq5.getInt(size) == (AbstractSeqMethodsTest.num - i - 1))) {
+			if (!(seq5.getInt(size) == (SeqContractTests.num - i - 1))) {
 				error(test, n);
 			}
 		}
@@ -358,8 +370,8 @@ public abstract class AbstractSeqMethods
 	public void testSeq6() {
 		final String test = "seq6";
 		int n = 0;
-		final Seq seq6 = model.createSeq();
-		seq6.add(model.createResource());
+		final Seq seq6 = getSeqProducer().newInstance();
+		seq6.add(resource());
 		seq6.add(1, tvBoolean);
 		n++;
 		if (!(seq6.getBoolean(1) == tvBoolean)) {
@@ -405,7 +417,7 @@ public abstract class AbstractSeqMethods
 		if (!(seq6.getString(1).equals(tvString))) {
 			error(test, n);
 		}
-		seq6.add(1, tvString, AbstractSeqMethodsTest.lang);
+		seq6.add(1, tvString, SeqContractTests.lang);
 		n++;
 		if (!(seq6.getString(1).equals(tvString))) {
 			error(test, n);
@@ -440,7 +452,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq6.indexOf(tvString, AbstractSeqMethodsTest.lang) == 4)) {
+		if (!(seq6.indexOf(tvString, SeqContractTests.lang) == 4)) {
 			error(test, n);
 		}
 		n++;
@@ -487,11 +499,11 @@ public abstract class AbstractSeqMethods
 
 	@Test
 	public void testSeq7() {
-		final Seq seq7 = model.createSeq();
+		final Seq seq7 = getSeqProducer().newInstance();
 		final String test = "seq7";
 		int n = 0;
 		n = ((n / 100) * 100) + 100;
-		for (int i = 0; i < AbstractSeqMethodsTest.num; i++) {
+		for (int i = 0; i < SeqContractTests.num; i++) {
 			seq7.add(i);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -509,7 +521,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -527,7 +539,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -545,7 +557,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -563,7 +575,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -581,7 +593,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -599,7 +611,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -617,7 +629,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -635,7 +647,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -657,16 +669,16 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
-		seq7.set(5, tvString, AbstractSeqMethodsTest.lang);
+		seq7.set(5, tvString, SeqContractTests.lang);
 		n++;
 		if (!(seq7.getString(5).equals(tvString))) {
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.getLanguage(5).equals(AbstractSeqMethodsTest.lang))) {
+		if (!(seq7.getLanguage(5).equals(SeqContractTests.lang))) {
 			error(test, n);
 		}
 		n++;
@@ -678,7 +690,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -696,7 +708,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -714,7 +726,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -732,7 +744,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 		n = ((n / 100) * 100) + 100;
@@ -750,7 +762,7 @@ public abstract class AbstractSeqMethods
 			error(test, n);
 		}
 		n++;
-		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+		if (!(seq7.size() == SeqContractTests.num)) {
 			error(test, n);
 		}
 	}
@@ -758,15 +770,15 @@ public abstract class AbstractSeqMethods
 	@Test
 	public void testSeqAccessByIndexing() {
 		// LitTestObj tvObject = new LitTestObj(12345);
-		final Literal tvLiteral = model.createLiteral("test 12 string 2");
-		final Resource tvResource = model.createResource();
+		final Literal tvLiteral = literal("'test 12 string 2'");
+		final Resource tvResource = resource();
 		// Resource tvResObj = model.createResource(new ResTestObjF());
 		final Object tvLitObj = new LitTestObj(1234);
-		final Bag tvBag = model.createBag();
-		final Alt tvAlt = model.createAlt();
-		final Seq tvSeq = model.createSeq();
+		final Bag tvBag = getSeqProducer().getModel().createBag();
+		final Alt tvAlt = getSeqProducer().getModel().createAlt();
+		final Seq tvSeq = getSeqProducer().newInstance();
 		//
-		final Seq seq = model.createSeq();
+		final Seq seq = getSeqProducer().newInstance();
 		seq.add(true);
 		assertEquals(true, seq.getBoolean(1));
 		seq.add((byte) 1);
@@ -816,9 +828,9 @@ public abstract class AbstractSeqMethods
 
 	@Test
 	public void testSeqAdd() {
-		final Seq seq = model.createSeq();
+		final Seq seq = getSeqProducer().newInstance();
 		assertEquals(0, seq.size());
-		assertTrue(model.contains(seq, RDF.type, RDF.Seq));
+		assertTrue(getSeqProducer().getModel().contains(seq, RDF.type, RDF.Seq));
 		//
 		seq.add(tvBoolean);
 		assertTrue(seq.contains(tvBoolean));
@@ -856,7 +868,7 @@ public abstract class AbstractSeqMethods
 		assertTrue(seq.contains("a string"));
 		assertFalse(seq.contains("a necklace"));
 		//
-		seq.add(model.createLiteral("another string"));
+		seq.add(literal("'another string'"));
 		assertTrue(seq.contains("another string"));
 		assertFalse(seq.contains("another necklace"));
 		//
@@ -876,7 +888,7 @@ public abstract class AbstractSeqMethods
 	@Test
 	public void testSeqAddInts() {
 		final int num = 10;
-		final Seq seq = model.createSeq();
+		final Seq seq = getSeqProducer().newInstance();
 		for (int i = 0; i < num; i += 1) {
 			seq.add(i);
 		}
@@ -891,16 +903,16 @@ public abstract class AbstractSeqMethods
 	@Test
 	public void testSeqInsertByIndexing() {
 		// LitTestObj tvObject = new LitTestObj(12345);
-		final Literal tvLiteral = model.createLiteral("test 12 string 2");
-		final Resource tvResource = model.createResource();
+		final Literal tvLiteral = literal("'test 12 string 2'");
+		final Resource tvResource = resource();
 		// Resource tvResObj = model.createResource(new ResTestObjF());
 		final Object tvLitObj = new LitTestObj(1234);
-		final Bag tvBag = model.createBag();
-		final Alt tvAlt = model.createAlt();
-		final Seq tvSeq = model.createSeq();
+		final Bag tvBag = getSeqProducer().getModel().createBag();
+		final Alt tvAlt = getSeqProducer().getModel().createAlt();
+		final Seq tvSeq = getSeqProducer().newInstance();
 
-		final Seq seq = model.createSeq();
-		seq.add(model.createResource());
+		final Seq seq = getSeqProducer().newInstance();
+		seq.add(resource());
 		seq.add(1, true);
 		assertEquals(true, seq.getBoolean(1));
 		seq.add(1, (byte) 1);
@@ -956,14 +968,14 @@ public abstract class AbstractSeqMethods
 	public void testSet() {
 		// NodeIterator nIter;
 		// StmtIterator sIter;
-		final Literal tvLiteral = model.createLiteral("test 12 string 2");
-		final Resource tvResource = model.createResource();
+		final Literal tvLiteral = literal("'test 12 string 2'");
+		final Resource tvResource = resource();
 		// Resource tvResObj = model.createResource(new ResTestObjF());
 		// Bag tvBag = model.createBag();
 		// Alt tvAlt = model.createAlt();
-		// Seq tvSeq = model.createSeq();
+		// Seq tvSeq = getSeqProducer().newInstance();
 		final int num = 10;
-		final Seq seq = model.createSeq();
+		final Seq seq = getSeqProducer().newInstance();
 
 		for (int i = 0; i < num; i++) {
 			seq.add(i);