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/09/14 00:32:06 UTC

svn commit: r1523135 [5/6] - in /jena/Experimental/new-test/src/test/java/com/hp/hpl/jena: graph/ graph/compose/ graph/impl/ mem/ rdf/ rdf/model/ rdf/model/impl/ rdf/model/temp/ shared/ testing_framework/

Added: 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/AbstractSeqMethodsTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractSeqMethodsTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractSeqMethodsTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,1051 @@
+/*
+ * 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;
+
+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;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.Seq;
+import com.hp.hpl.jena.rdf.model.SeqIndexBoundsException;
+import com.hp.hpl.jena.test.JenaTestBase;
+import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
+import com.hp.hpl.jena.vocabulary.RDF;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.*;
+import org.junit.Before;
+import org.junit.Test;
+
+public abstract class AbstractSeqMethodsTest extends
+		AbstractContainerMethodsTest {
+
+	protected LitTestObj aLitTestObj;
+
+	protected Literal tvLiteral;
+
+	protected Resource tvResource;
+
+	// protected Resource tvResObj;
+	protected Object anObject;
+
+	protected Bag tvBag;
+	protected Alt tvAlt;
+	protected Seq tvSeq;
+	protected static final String lang = "fr";
+	protected static final int num = 10;
+
+	protected boolean[] bools(final String s) {
+		final boolean[] result = new boolean[s.length()];
+		for (int i = 0; i < s.length(); i += 1) {
+			result[i] = s.charAt(i) == 't';
+		}
+		return result;
+	}
+
+	@Override
+	protected Class<? extends Container> getContainerClass() {
+		return Seq.class;
+	}
+
+	@Override
+	protected Container createContainer(String uri) {
+		return uri == null ? model.createSeq() : model.createSeq(uri);
+	}
+
+	private void error(final String test, final int n) {
+		fail(test + " -- " + n);
+	}
+
+	@Override
+	protected Resource getContainerType() {
+		return RDF.Seq;
+	}
+
+	@Before
+	public void setUpSeqMethodsTest() throws Exception {
+		aLitTestObj = new LitTestObj(12345);
+		tvLiteral = model.createLiteral("test 12 string 2");
+		tvResource = model.createResource();
+		// tvResObj = model.createResource( new ResTestObjF() );
+		anObject = new LitTestObj(1234);
+		tvBag = model.createBag();
+		tvAlt = model.createAlt();
+		tvSeq = model.createSeq();
+	}
+
+	@Test
+	public void testMoreIndexing() {
+		final int num = 10;
+		final Seq seq = model.createSeq();
+		for (int i = 0; i < num; i += 1) {
+			seq.add(i);
+		}
+
+		try {
+			seq.add(0, false);
+			fail("cannot at at position 0");
+		} catch (final SeqIndexBoundsException e) {
+			JenaTestBase.pass();
+		}
+
+		seq.add(num + 1, false);
+		assertEquals(num + 1, seq.size());
+
+		seq.remove(num + 1);
+		try {
+			seq.add(num + 2, false);
+			fail("cannot add past the end");
+		} catch (final SeqIndexBoundsException e) {
+			JenaTestBase.pass();
+		}
+
+		final int size = seq.size();
+		for (int i = 1; i <= (num - 1); i += 1) {
+			seq.add(i, 1000 + i);
+			assertEquals(1000 + i, seq.getInt(i));
+			assertEquals(0, seq.getInt(i + 1));
+			assertEquals(size + i, seq.size());
+			assertEquals(num - i - 1, seq.getInt(size));
+		}
+	}
+
+	protected void testRemove(final boolean[] retain) {
+		final int num = retain.length;
+		final Seq seq = model.createSeq();
+		for (int i = 0; i < num; i += 1) {
+			seq.add(i);
+		}
+		//
+		final List<RDFNode> retained = new ArrayList<RDFNode>();
+		//
+		final NodeIterator nIter = seq.iterator();
+		for (int i = 0; i < num; i += 1) {
+			final RDFNode x = nIter.nextNode();
+			if (retain[i]) {
+				retained.add(x);
+			} else {
+				nIter.remove();
+			}
+		}
+		//
+		assertFalse(nIter.hasNext());
+		assertEquals(retained, seq.iterator().toList());
+	}
+
+	@Test
+	public void testRemoveA() {
+		testRemove(bools("tttffffftt"));
+	}
+
+	@Test
+	public void testRemoveB() {
+		testRemove(bools("ftftttttft"));
+	}
+
+	@Test
+	public void testRemoveC() {
+		testRemove(bools("ffffffffff"));
+	}
+
+	@Test
+	public void testSeq4() {
+		final String test = "temp";
+		int n = 58305;
+		final Seq seq4 = model.createSeq();
+		n = ((n / 100) * 100) + 100;
+		n++;
+		seq4.add(tvBoolean);
+		n++;
+		if (!(seq4.getBoolean(1) == tvBoolean)) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvByte);
+		n++;
+		if (!(seq4.getByte(2) == tvByte)) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvShort);
+		n++;
+		if (!(seq4.getShort(3) == tvShort)) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvInt);
+		n++;
+		if (!(seq4.getInt(4) == tvInt)) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvLong);
+		n++;
+		if (!(seq4.getLong(5) == tvLong)) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvChar);
+		n++;
+		if (!(seq4.getChar(6) == tvChar)) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvFloat);
+		n++;
+		if (!(seq4.getFloat(7) == tvFloat)) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvDouble);
+		n++;
+		if (!(seq4.getDouble(8) == tvDouble)) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvString);
+		n++;
+		if (!(seq4.getString(9).equals(tvString))) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq4.getLanguage(9).equals(""))) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvString, AbstractSeqMethodsTest.lang);
+		n++;
+		if (!(seq4.getString(10).equals(tvString))) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq4.getLanguage(10).equals(AbstractSeqMethodsTest.lang))) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(anObject);
+		n++;
+		// if (!(seq4.getObject( 11, new LitTestObjF() ).equals( anObject )))
+		// error(
+		// test, n );
+		n++;
+		seq4.add(tvResource);
+		n++;
+		if (!(seq4.getResource(12).equals(tvResource))) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvLiteral);
+		n++;
+		if (!(seq4.getLiteral(13).equals(tvLiteral))) {
+			error(test, n);
+		}
+		n++;
+		// seq4.add( tvResObj );
+		// n++;
+		// if (!(seq4.getResource( 14, new ResTestObjF() ).equals( tvResObj )))
+		// error(
+		// test, n );
+		n++;
+		seq4.add(tvBag);
+		n++;
+		if (!(seq4.getBag(14).equals(tvBag))) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvAlt);
+		n++;
+		if (!(seq4.getAlt(15).equals(tvAlt))) {
+			error(test, n);
+		}
+		n++;
+		seq4.add(tvSeq);
+		n++;
+		if (!(seq4.getSeq(16).equals(tvSeq))) {
+			error(test, n);
+		}
+		n++;
+		try {
+			seq4.getInt(17);
+			error(test, n);
+		} catch (final SeqIndexBoundsException e) {
+			// as required
+		}
+		n++;
+		try {
+			seq4.getInt(0);
+			error(test, n);
+		} catch (final SeqIndexBoundsException e) {
+			// as required
+		}
+	}
+
+	@Test
+	public void testSeq5() {
+		final Seq seq5 = model.createSeq();
+		final String test = "seq5";
+		int n = 0;
+		for (int i = 0; i < AbstractSeqMethodsTest.num; i++) {
+			seq5.add(i);
+		}
+
+		try {
+			n++;
+			seq5.add(0, false);
+			error(test, n);
+		} catch (final SeqIndexBoundsException e) {
+			// as required
+		}
+		seq5.add(AbstractSeqMethodsTest.num + 1, false);
+		if (seq5.size() != (AbstractSeqMethodsTest.num + 1)) {
+			error(test, n);
+		}
+		seq5.remove(AbstractSeqMethodsTest.num + 1);
+		try {
+			n++;
+			seq5.add(AbstractSeqMethodsTest.num + 2, false);
+			error(test, n);
+		} catch (final SeqIndexBoundsException e) {
+			// as required
+		}
+
+		n = ((n / 100) * 100) + 100;
+		final int size = seq5.size();
+		for (int i = 1; i <= (AbstractSeqMethodsTest.num - 1); i++) {
+			n++;
+			seq5.add(i, 1000 + i);
+			n++;
+			if (!(seq5.getInt(i) == (1000 + i))) {
+				error(test, n);
+			}
+			n++;
+			if (!(seq5.getInt(i + 1) == 0)) {
+				error(test, n);
+			}
+			n++;
+			if (!(seq5.size() == (size + i))) {
+				error(test, n);
+			}
+			n++;
+			if (!(seq5.getInt(size) == (AbstractSeqMethodsTest.num - i - 1))) {
+				error(test, n);
+			}
+		}
+	}
+
+	@Test
+	public void testSeq6() {
+		final String test = "seq6";
+		int n = 0;
+		final Seq seq6 = model.createSeq();
+		seq6.add(model.createResource());
+		seq6.add(1, tvBoolean);
+		n++;
+		if (!(seq6.getBoolean(1) == tvBoolean)) {
+			error(test, n);
+		}
+		seq6.add(1, tvByte);
+		n++;
+		if (!(seq6.getByte(1) == tvByte)) {
+			error(test, n);
+		}
+		seq6.add(1, tvShort);
+		n++;
+		if (!(seq6.getShort(1) == tvShort)) {
+			error(test, n);
+		}
+		seq6.add(1, tvInt);
+		n++;
+		if (!(seq6.getInt(1) == tvInt)) {
+			error(test, n);
+		}
+		seq6.add(1, tvLong);
+		n++;
+		if (!(seq6.getLong(1) == tvLong)) {
+			error(test, n);
+		}
+		seq6.add(1, tvChar);
+		n++;
+		if (!(seq6.getChar(1) == tvChar)) {
+			error(test, n);
+		}
+		seq6.add(1, tvFloat);
+		n++;
+		if (!(seq6.getFloat(1) == tvFloat)) {
+			error(test, n);
+		}
+		seq6.add(1, tvDouble);
+		n++;
+		if (!(seq6.getDouble(1) == tvDouble)) {
+			error(test, n);
+		}
+		seq6.add(1, tvString);
+		n++;
+		if (!(seq6.getString(1).equals(tvString))) {
+			error(test, n);
+		}
+		seq6.add(1, tvString, AbstractSeqMethodsTest.lang);
+		n++;
+		if (!(seq6.getString(1).equals(tvString))) {
+			error(test, n);
+		}
+		seq6.add(1, tvResource);
+		n++;
+		if (!(seq6.getResource(1).equals(tvResource))) {
+			error(test, n);
+		}
+		seq6.add(1, tvLiteral);
+		n++;
+		if (!(seq6.getLiteral(1).equals(tvLiteral))) {
+			error(test, n);
+		}
+		seq6.add(1, anObject);
+		n++;
+		// if (!(seq6.getObject( 1, new LitTestObjF() ).equals( anObject )))
+		// error(
+		// test, n );
+
+		n = ((n / 100) * 100) + 100;
+		n++;
+		if (!(seq6.indexOf(anObject) == 1)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvLiteral) == 2)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvResource) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvString, AbstractSeqMethodsTest.lang) == 4)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvString) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvDouble) == 6)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvFloat) == 7)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvChar) == 8)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvLong) == 9)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvInt) == 10)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvShort) == 11)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvByte) == 12)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(tvBoolean) == 13)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq6.indexOf(1234543) == 0)) {
+			error(test, n);
+		}
+	}
+
+	@Test
+	public void testSeq7() {
+		final Seq seq7 = model.createSeq();
+		final String test = "seq7";
+		int n = 0;
+		n = ((n / 100) * 100) + 100;
+		for (int i = 0; i < AbstractSeqMethodsTest.num; i++) {
+			seq7.add(i);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, tvBoolean);
+		n++;
+		if (!(seq7.getBoolean(5) == tvBoolean)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, tvByte);
+		n++;
+		if (!(seq7.getByte(5) == tvByte)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, tvShort);
+		n++;
+		if (!(seq7.getShort(5) == tvShort)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, tvInt);
+		n++;
+		if (!(seq7.getInt(5) == tvInt)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, tvLong);
+		n++;
+		if (!(seq7.getLong(5) == tvLong)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, tvChar);
+		n++;
+		if (!(seq7.getChar(5) == tvChar)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, tvFloat);
+		n++;
+		if (!(seq7.getFloat(5) == tvFloat)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, tvDouble);
+		n++;
+		if (!(seq7.getDouble(5) == tvDouble)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, tvString);
+		n++;
+		if (!(seq7.getString(5).equals(tvString))) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getLanguage(5).equals(""))) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		seq7.set(5, tvString, AbstractSeqMethodsTest.lang);
+		n++;
+		if (!(seq7.getString(5).equals(tvString))) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getLanguage(5).equals(AbstractSeqMethodsTest.lang))) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, tvLiteral);
+		n++;
+		if (!(seq7.getLiteral(5).equals(tvLiteral))) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, tvResource);
+		n++;
+		if (!(seq7.getResource(5).equals(tvResource))) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		seq7.set(5, anObject);
+		n++;
+		// if (!(seq7.getObject( 5, new LitTestObjF() )).equals( anObject ))
+		// error(
+		// test, n );
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+		n = ((n / 100) * 100) + 100;
+		// seq7.set( 5, tvResObj );
+		// n++;
+		// if (!(seq7.getResource( 5, new ResTestObjF() ).equals( tvResObj )))
+		// error(
+		// test, n );
+		n++;
+		if (!(seq7.getInt(4) == 3)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.getInt(6) == 5)) {
+			error(test, n);
+		}
+		n++;
+		if (!(seq7.size() == AbstractSeqMethodsTest.num)) {
+			error(test, n);
+		}
+	}
+
+	@Test
+	public void testSeqAccessByIndexing() {
+		// LitTestObj tvObject = new LitTestObj(12345);
+		final Literal tvLiteral = model.createLiteral("test 12 string 2");
+		final Resource tvResource = model.createResource();
+		// 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 Seq seq = model.createSeq();
+		seq.add(true);
+		assertEquals(true, seq.getBoolean(1));
+		seq.add((byte) 1);
+		assertEquals((byte) 1, seq.getByte(2));
+		seq.add((short) 2);
+		assertEquals((short) 2, seq.getShort(3));
+		seq.add(-1);
+		assertEquals(-1, seq.getInt(4));
+		seq.add(-2);
+		assertEquals(-2, seq.getLong(5));
+		seq.add('!');
+		assertEquals('!', seq.getChar(6));
+		seq.add(123.456f);
+		assertEquals(123.456f, seq.getFloat(7), 0.00005);
+		seq.add(12345.67890);
+		assertEquals(12345.67890, seq.getDouble(8), 0.00000005);
+		seq.add("some string");
+		assertEquals("some string", seq.getString(9));
+		seq.add(tvLitObj);
+		// assertEquals( tvLitObj, seq.getObject( 10, new LitTestObjF() ) );
+		seq.add(tvResource);
+		assertEquals(tvResource, seq.getResource(11));
+		// seq.add( tvResObj );
+		// assertEquals( tvResObj, seq.getResource( 12, new ResTestObjF() ) );
+		seq.add(tvLiteral);
+		assertEquals(tvLiteral, seq.getLiteral(12));
+		seq.add(tvBag);
+		assertEquals(tvBag, seq.getBag(13));
+		seq.add(tvAlt);
+		assertEquals(tvAlt, seq.getAlt(14));
+		seq.add(tvSeq);
+		assertEquals(tvSeq, seq.getSeq(15));
+		//
+		try {
+			seq.getInt(16);
+			fail("there is no element 16");
+		} catch (final SeqIndexBoundsException e) {
+			JenaTestBase.pass();
+		}
+		try {
+			seq.getInt(0);
+			fail("there is no element 0");
+		} catch (final SeqIndexBoundsException e) {
+			JenaTestBase.pass();
+		}
+	}
+
+	@Test
+	public void testSeqAdd() {
+		final Seq seq = model.createSeq();
+		assertEquals(0, seq.size());
+		assertTrue(model.contains(seq, RDF.type, RDF.Seq));
+		//
+		seq.add(tvBoolean);
+		assertTrue(seq.contains(tvBoolean));
+		assertFalse(seq.contains(!tvBoolean));
+		//
+		seq.add(tvByte);
+		assertTrue(seq.contains(tvByte));
+		assertFalse(seq.contains((byte) 101));
+		//
+		seq.add(tvShort);
+		assertTrue(seq.contains(tvShort));
+		assertFalse(seq.contains((short) 102));
+		//
+		seq.add(tvInt);
+		assertTrue(seq.contains(tvInt));
+		assertFalse(seq.contains(-101));
+		//
+		seq.add(tvLong);
+		assertTrue(seq.contains(tvLong));
+		assertFalse(seq.contains(-102));
+		//
+		seq.add(tvChar);
+		assertTrue(seq.contains(tvChar));
+		assertFalse(seq.contains('?'));
+		//
+		seq.add(123.456f);
+		assertTrue(seq.contains(123.456f));
+		assertFalse(seq.contains(456.123f));
+		//
+		seq.add(-123.456d);
+		assertTrue(seq.contains(-123.456d));
+		assertFalse(seq.contains(-456.123d));
+		//
+		seq.add("a string");
+		assertTrue(seq.contains("a string"));
+		assertFalse(seq.contains("a necklace"));
+		//
+		seq.add(model.createLiteral("another string"));
+		assertTrue(seq.contains("another string"));
+		assertFalse(seq.contains("another necklace"));
+		//
+		seq.add(new LitTestObj(12345));
+		assertTrue(seq.contains(new LitTestObj(12345)));
+		assertFalse(seq.contains(new LitTestObj(54321)));
+		//
+		// Resource present = model.createResource( new ResTestObjF() );
+		// Resource absent = model.createResource( new ResTestObjF() );
+		// seq.add( present );
+		// assertTrue( seq.contains( present ) );
+		// assertFalse( seq.contains( absent ) );
+		//
+		assertEquals(11, seq.size());
+	}
+
+	@Test
+	public void testSeqAddInts() {
+		final int num = 10;
+		final Seq seq = model.createSeq();
+		for (int i = 0; i < num; i += 1) {
+			seq.add(i);
+		}
+		assertEquals(num, seq.size());
+		final List<RDFNode> L = seq.iterator().toList();
+		assertEquals(num, L.size());
+		for (int i = 0; i < num; i += 1) {
+			assertEquals(i, ((Literal) L.get(i)).getInt());
+		}
+	}
+
+	@Test
+	public void testSeqInsertByIndexing() {
+		// LitTestObj tvObject = new LitTestObj(12345);
+		final Literal tvLiteral = model.createLiteral("test 12 string 2");
+		final Resource tvResource = model.createResource();
+		// 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 Seq seq = model.createSeq();
+		seq.add(model.createResource());
+		seq.add(1, true);
+		assertEquals(true, seq.getBoolean(1));
+		seq.add(1, (byte) 1);
+		assertEquals((byte) 1, seq.getByte(1));
+		seq.add(1, (short) 2);
+		assertEquals((short) 2, seq.getShort(1));
+		seq.add(1, -1);
+		assertEquals(-1, seq.getInt(1));
+		seq.add(1, -2);
+		assertEquals(-2, seq.getLong(1));
+		seq.add(1, '!');
+		assertEquals('!', seq.getChar(1));
+		seq.add(1, 123.456f);
+		assertEquals(123.456f, seq.getFloat(1), 0.00005);
+		seq.add(1, 12345.67890);
+		assertEquals(12345.67890, seq.getDouble(1), 0.00000005);
+		seq.add(1, "some string");
+		assertEquals("some string", seq.getString(1));
+		seq.add(1, tvLitObj);
+		// assertEquals( tvLitObj, seq.getObject( 1, new LitTestObjF() ) );
+		seq.add(1, tvResource);
+		assertEquals(tvResource, seq.getResource(1));
+		// seq.add( 1, tvResObj );
+		// assertEquals( tvResObj, seq.getResource( 1, new ResTestObjF() ) );
+		seq.add(1, tvLiteral);
+		assertEquals(tvLiteral, seq.getLiteral(1));
+		seq.add(1, tvBag);
+		assertEquals(tvBag, seq.getBag(1));
+		seq.add(1, tvAlt);
+		assertEquals(tvAlt, seq.getAlt(1));
+		seq.add(1, tvSeq);
+		assertEquals(tvSeq, seq.getSeq(1));
+		//
+		assertEquals(0, seq.indexOf(1234543));
+		assertEquals(1, seq.indexOf(tvSeq));
+		assertEquals(2, seq.indexOf(tvAlt));
+		assertEquals(3, seq.indexOf(tvBag));
+		assertEquals(4, seq.indexOf(tvLiteral));
+		assertEquals(5, seq.indexOf(tvResource));
+		assertEquals(6, seq.indexOf(tvLitObj));
+		assertEquals(7, seq.indexOf("some string"));
+		assertEquals(8, seq.indexOf(12345.67890));
+		assertEquals(9, seq.indexOf(123.456f));
+		assertEquals(10, seq.indexOf('!'));
+		assertEquals(11, seq.indexOf(-2));
+		assertEquals(12, seq.indexOf(-1));
+		assertEquals(13, seq.indexOf((short) 2));
+		assertEquals(14, seq.indexOf((byte) 1));
+		assertEquals(15, seq.indexOf(true));
+	}
+
+	@Test
+	public void testSet() {
+		// NodeIterator nIter;
+		// StmtIterator sIter;
+		final Literal tvLiteral = model.createLiteral("test 12 string 2");
+		final Resource tvResource = model.createResource();
+		// Resource tvResObj = model.createResource(new ResTestObjF());
+		// Bag tvBag = model.createBag();
+		// Alt tvAlt = model.createAlt();
+		// Seq tvSeq = model.createSeq();
+		final int num = 10;
+		final Seq seq = model.createSeq();
+
+		for (int i = 0; i < num; i++) {
+			seq.add(i);
+		}
+
+		seq.set(5, tvBoolean);
+		assertEquals(tvBoolean, seq.getBoolean(5));
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		seq.set(5, tvByte);
+		assertEquals(tvByte, seq.getByte(5));
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		seq.set(5, tvShort);
+		assertEquals(tvShort, seq.getShort(5));
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		seq.set(5, tvInt);
+		assertEquals(tvInt, seq.getInt(5));
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		seq.set(5, tvLong);
+		assertEquals(tvLong, seq.getLong(5));
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		seq.set(5, tvString);
+		assertEquals(tvString, seq.getString(5));
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		seq.set(5, tvBoolean);
+		assertEquals(tvBoolean, seq.getBoolean(5));
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		seq.set(5, tvFloat);
+		assertEquals(tvFloat, seq.getFloat(5), 0.00005);
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		seq.set(5, tvDouble);
+		assertEquals(tvDouble, seq.getDouble(5), 0.000000005);
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		seq.set(5, tvLiteral);
+		assertEquals(tvLiteral, seq.getLiteral(5));
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		seq.set(5, tvResource);
+		assertEquals(tvResource, seq.getResource(5));
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		seq.set(5, tvLitObj);
+		// assertEquals( tvLitObj, seq.getObject( 5, new LitTestObjF() ) );
+		assertEquals(3, seq.getInt(4));
+		assertEquals(5, seq.getInt(6));
+		assertEquals(num, seq.size());
+
+		// seq.set( 5, tvResObj );
+		// assertEquals( tvResObj, seq.getResource( 5, new ResTestObjF() ) );
+		// assertEquals( 3, seq.getInt( 4 ) );
+		// assertEquals( 5, seq.getInt( 6 ) );
+		// assertEquals( num, seq.size() );
+	}
+
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractSeqMethodsTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractStatementTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractStatementTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractStatementTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractStatementTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,160 @@
+/*
+ * 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;
+
+import com.hp.hpl.jena.graph.FrontsTriple;
+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.testing_framework.AbstractModelProducerUser;
+import com.hp.hpl.jena.testing_framework.ModelProducerInterface;
+
+import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
+import com.hp.hpl.jena.vocabulary.RDF;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public abstract class AbstractStatementTest extends AbstractModelProducerUser {
+	
+	@Test
+	public void testHasWellFormedXML()
+	{
+		Assert.assertFalse(statement("s P 1").hasWellFormedXML());
+		Assert.assertFalse(statement("S P '<x>/x>'rdf:XMLLiteral")
+				.hasWellFormedXML());
+		Assert.assertTrue(statement("S P '<x></x>'rdf:XMLLiteral")
+				.hasWellFormedXML());
+	}
+
+	@Test
+	public void testOtherStuff()
+	{
+		final Model A = getModelProducer().newModel();
+		final Model B = getModelProducer().newModel();
+		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));
+	}
+
+	@Test
+	public void testPortingBlankNodes()
+	{
+		final Model B = getModelProducer().newModel();
+		final Resource anon = resource(); //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);
+	}
+
+	@Test
+	public void testSet()
+	{
+		final Model A = getModelProducer().newModel();
+		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.
+	 */
+	@Test
+	public void testStatementPrintsType()
+	{
+		final String fakeURI = "fake:URI";
+		final Resource S = resource();
+		final Property P = property( "PP");
+		Model model = getModelProducer().newModel();
+		final RDFNode O = model.createTypedLiteral("42", fakeURI);
+		final Statement st = model.createStatement(S, P, O);
+		Assert.assertTrue(st.toString().indexOf(fakeURI) > 0);
+	}
+
+	@Test
+	public void testStatmentMap1Selectors()
+	{
+		Statement s = statement(getModelProducer().newModel(), "sub pred obj");
+		Assert.assertEquals(resource("sub"),
+				Statement.Util.getSubject.map1(s));
+		Assert.assertEquals(resource("pred"),
+				Statement.Util.getPredicate.map1(s));
+		Assert.assertEquals(resource("obj"),
+				Statement.Util.getObject.map1(s));
+	}
+
+	/**
+	 * 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.
+	 */
+	@Test
+	public void testStuff()
+	{
+		final Model red = getModelProducer().newModel();
+		final Model blue = getModelProducer().newModel();
+		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());
+	}
+
+	@Test
+	public void testTripleWrapper()
+	{
+		assertInstanceOf(FrontsTriple.class,
+				statement(getModelProducer().newModel(), "s p o"));
+	}
+
+	
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractStatementTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AnonIDTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AnonIDTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AnonIDTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AnonIDTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,87 @@
+/*
+ * 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;
+
+import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
+import com.hp.hpl.jena.rdf.model.AnonId;
+import com.hp.hpl.jena.shared.impl.JenaParameters;
+
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+
+/**
+ * Test for anonID generation. (Originally test for the debugging hack
+ * that switches off anonID generation.)
+ */
+public class AnonIDTest 
+{
+
+	/**
+	 * Check that anonIDs are distinct whichever state the flag is in.
+	 */
+	@Test
+	public void doTestAnonID()
+	{
+		final AnonId id1 = AnonId.create();
+		final AnonId id2 = AnonId.create();
+		final AnonId id3 = AnonId.create();
+		final AnonId id4 = AnonId.create();
+
+		assertDiffer(id1, id2);
+		assertDiffer(id1, id3);
+		assertDiffer(id1, id4);
+		assertDiffer(id2, id3);
+		assertDiffer(id2, id4);
+	}
+
+	/**
+	 * Check that anonIDs are distinct whichever state the flag is in.
+	 */
+	@Test
+	public void testAnonID()
+	{
+		final boolean prior = JenaParameters.disableBNodeUIDGeneration;
+		try
+		{
+			JenaParameters.disableBNodeUIDGeneration = false;
+			doTestAnonID();
+			JenaParameters.disableBNodeUIDGeneration = true;
+			doTestAnonID();
+		}
+		finally
+		{
+			JenaParameters.disableBNodeUIDGeneration = prior;
+		}
+	}
+
+	/**
+	 * Test that creation of an AnonId from an AnonId string preserves that
+	 * string and is equal to the original AnonId.
+	 */
+	@Test
+	public void testAnonIdPreserved()
+	{
+		final AnonId anon = AnonId.create();
+		final String id = anon.toString();
+		assertEquals(anon, AnonId.create(id));
+		assertEquals(id, AnonId.create(id).toString());
+	}
+
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AnonIDTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/DefaultModelTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/DefaultModelTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/DefaultModelTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/DefaultModelTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,44 @@
+/*
+ * 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;
+
+
+import com.hp.hpl.jena.testing_framework.AbstractModelProducer;
+import com.hp.hpl.jena.testing_framework.ModelProducerInterface;
+
+
+public class DefaultModelTest extends AbstractModelTest
+    {
+
+    ModelProducerInterface producer = new AbstractModelProducer(){
+
+		@Override
+		protected Model createNewModel() {
+			return ModelFactory.createDefaultModel();
+		}
+
+		};
+
+
+	@Override
+	public ModelProducerInterface getModelProducer() {
+		return producer;
+	}   
+
+    }

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/DefaultModelTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelFactoryTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelFactoryTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelFactoryTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelFactoryTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,132 @@
+/*
+ * 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;
+
+import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
+
+import com.hp.hpl.jena.graph.compose.Union;
+import com.hp.hpl.jena.rdf.model.InfModel;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.impl.ModelCom;
+import com.hp.hpl.jena.reasoner.InfGraph;
+import com.hp.hpl.jena.reasoner.Reasoner;
+import com.hp.hpl.jena.reasoner.rulesys.GenericRuleReasoner;
+import com.hp.hpl.jena.reasoner.rulesys.Rule;
+import com.hp.hpl.jena.shared.PrefixMapping;
+import com.hp.hpl.jena.test.JenaTestBase;
+import com.hp.hpl.jena.testing_framework.AbstractModelProducerUser;
+import com.hp.hpl.jena.testing_framework.ModelProducerInterface;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Tests the ModelFactory code. Very skeletal at the moment. It's really
+ * testing that the methods actually exists, but it doesn't check much in
+ * the way of behaviour.
+ * 
+ */
+
+public class ModelFactoryTest 
+{
+
+	@Test
+	public void testAssembleModelFromModel()
+	{
+		// TODO Assert.assertNotNull( ModelFactory.assembleModelFrom( ModelFactory.createDefaultModel()) );
+	}
+
+	@Test
+	public void testAssmbleModelFromRoot()
+	{
+		// TODO Model assembleModelFrom( Resource root )
+	}
+
+	/**
+	 * Test that ModelFactory.createDefaultModel() exists. [Should check that
+	 * the Model
+	 * is truly a "default" model.]
+	 */
+	@Test
+	public void testCreateDefaultModel()
+	{
+		Model m = ModelFactory.createDefaultModel();
+		try {
+			Assert.assertNotNull(m);
+		}
+		finally {
+			if (m != null)
+			{
+				m.close();
+			}
+		}
+	}
+
+	@Test
+	public void testCreateInfModel()
+	{
+		Model model = ModelFactory.createDefaultModel();
+		final String rule = "-> (eg:r eg:p eg:v).";
+		final Reasoner r = new GenericRuleReasoner(Rule.parseRules(rule));
+		final InfGraph ig = r
+				.bind(model.getGraph());
+		final InfModel im = ModelFactory.createInfModel(ig);
+		JenaTestBase.assertInstanceOf(InfModel.class, im);
+		Assert.assertEquals(1, im.size());
+	}
+
+	/**
+	 * test that a union model is a model over the union of the two underlying
+	 * graphs. (We don't check that Union works - that's done in the Union
+	 * tests, we hope.)
+	 */
+	public void testCreateUnion()
+	{
+		final Model m1 = ModelFactory.createDefaultModel();
+		final Model m2 = ModelFactory.createDefaultModel();
+		final Model m = ModelFactory.createUnion(m1, m2);
+		JenaTestBase.assertInstanceOf(Union.class, m.getGraph());
+		Assert.assertSame(m1.getGraph(), ((Union) m.getGraph()).getL());
+		Assert.assertSame(m2.getGraph(), ((Union) m.getGraph()).getR());
+	}
+
+	public void testFindAssemblerRoots()
+	{
+		// TODO Set ModelFactory.findAssemblerRoots( Model model )
+	}
+
+	public void testGetDefaultPrefixMapping()
+	{
+		Assert.assertSame(ModelCom.getDefaultModelPrefixes(),
+				ModelFactory.getDefaultModelPrefixes());
+	}
+
+	public void testSetDefaultPrefixMapping()
+	{
+		final PrefixMapping original = ModelCom.getDefaultModelPrefixes();
+		final PrefixMapping pm = PrefixMapping.Factory.create();
+		ModelFactory.setDefaultModelPrefixes(pm);
+		Assert.assertSame(pm, ModelCom.getDefaultModelPrefixes());
+		Assert.assertSame(pm, ModelFactory.getDefaultModelPrefixes());
+		ModelCom.setDefaultModelPrefixes(original);
+	}
+
+	
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelFactoryTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelTestBase.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelTestBase.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelTestBase.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelTestBase.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,278 @@
+///*
+// * 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;
+//
+//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.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.Assert;
+//
+///**
+// * provides useful functionality for testing models, eg building small models
+// * from strings, testing equality, etc.
+// */
+//
+//public class ModelTestBase extends GraphTestBase
+//{
+//	protected static Model aModel = ModelTestBase.extendedModel();
+//
+//	protected static final Model empty = ModelFactory.createDefaultModel();
+//
+//	/**
+//	 * Fail if the two models are not isomorphic. See
+//	 * assertIsoModels(String,Model,Model).
+//	 */
+//	public static void assertIsoModels( final Model wanted, final Model got )
+//	{
+//		ModelTestBase.assertIsoModels("models must be isomorphic", wanted, got);
+//	}
+//
+//	/**
+//	 * 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( final String title, final Model wanted,
+//			final Model got )
+//	{
+//		if (wanted.isIsomorphicWith(got) == false)
+//		{
+//			final Map<Node, Object> map = CollectionFactory.createHashedMap();
+//			Assert.fail(title + ": expected "
+//					+ GraphTestBase.nice(wanted.getGraph(), map)
+//					+ "\n but had " + GraphTestBase.nice(got.getGraph(), map));
+//		}
+//	}
+//
+//	/**
+//	 * 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();
+//	}
+//
+//	/**
+//	 * make a model, give it Extended prefixes
+//	 */
+//	public static Model createModel()
+//	{
+//		final Model result = ModelFactory.createDefaultModel();
+//		result.setNsPrefixes(PrefixMapping.Extended);
+//		return result;
+//	}
+//
+//	protected static Model extendedModel()
+//	{
+//		final Model result = ModelFactory.createDefaultModel();
+//		result.setNsPrefixes(PrefixMapping.Extended);
+//		return result;
+//	}
+//
+//	public static Literal literal( final Model m, final String s )
+//	{
+//		return ModelTestBase.rdfNode(m, s).as(Literal.class);
+//	}
+//
+//	/**
+//	 * add to a model all the statements expressed by a string.
+//	 * 
+//	 * @param m
+//	 *            the model to be updated
+//	 * @param facts
+//	 *            a sequence of semicolon-separated "S P O" facts
+//	 * @return the updated model
+//	 */
+//	public static Model modelAdd( final Model m, final String facts )
+//	{
+//		final StringTokenizer semis = new StringTokenizer(facts, ";");
+//		while (semis.hasMoreTokens())
+//		{
+//			m.add(ModelTestBase.statement(m, semis.nextToken()));
+//		}
+//		return m;
+//	}
+//
+//	/**
+//	 * makes a model 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( final String facts )
+//	{
+//		return ModelTestBase.modelAdd(ModelTestBase.createModel(), facts);
+//	}
+//
+//	protected static String nice( final RDFNode n )
+//	{
+//		return GraphTestBase.nice(n.asNode());
+//	}
+//
+//	public static Property property( final Model m, final String s )
+//	{
+//		return ModelTestBase.rdfNode(m, s).as(Property.class);
+//	}
+//
+//	public static Property property( final String s )
+//	{
+//		return ModelTestBase.property(ModelTestBase.aModel, s);
+//	}
+//
+//	public static RDFNode rdfNode( final Model m, final String s )
+//	{
+//		return m.asRDFNode(NodeCreateUtils.create(m, s));
+//	}
+//
+//	public static <T extends RDFNode> T rdfNode( final Model m, final String s,
+//			final Class<T> c )
+//	{
+//		return ModelTestBase.rdfNode(m, s).as(c);
+//	}
+//
+//	protected static Resource resource()
+//	{
+//		return ResourceFactory.createResource();
+//	}
+//
+//	public static Resource resource( final Model m, final String s )
+//	{
+//		return (Resource) ModelTestBase.rdfNode(m, s);
+//	}
+//
+//	public static Resource resource( final String s )
+//	{
+//		return ModelTestBase.resource(ModelTestBase.aModel, s);
+//	}
+//
+//	/**
+//	 * Create an array of Resources from a whitespace-separated string
+//	 * 
+//	 * @param m
+//	 *            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( final Model m, final String items )
+//	{
+//		final ArrayList<Resource> rl = new ArrayList<Resource>();
+//		final StringTokenizer st = new StringTokenizer(items);
+//		while (st.hasMoreTokens())
+//		{
+//			rl.add(ModelTestBase.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( final String items )
+//	{
+//		final Set<Resource> result = new HashSet<Resource>();
+//		final StringTokenizer st = new StringTokenizer(items);
+//		while (st.hasMoreTokens())
+//		{
+//			result.add(ModelTestBase.resource(st.nextToken()));
+//		}
+//		return result;
+//	}
+//
+//	/**
+//	 * create a Statement in a given Model with (S, P, O) extracted by parsing a
+//	 * string.
+//	 * 
+//	 * @param m
+//	 *            the model the statement is attached to
+//	 * @param an
+//	 *            "S P O" string.
+//	 * @return m.createStatement(S, P, O)
+//	 */
+//	public static Statement statement( final Model m, final String fact )
+//	{
+//		final StringTokenizer st = new StringTokenizer(fact);
+//		final Resource sub = ModelTestBase.resource(m, st.nextToken());
+//		final Property pred = ModelTestBase.property(m, st.nextToken());
+//		final RDFNode obj = ModelTestBase.rdfNode(m, st.nextToken());
+//		return m.createStatement(sub, pred, obj);
+//	}
+//
+//	public static Statement statement( final String fact )
+//	{
+//		return ModelTestBase.statement(ModelTestBase.aModel, fact);
+//	}
+//
+//	/**
+//	 * Create an array of Statements parsed from a semi-separated string.
+//	 * 
+//	 * @param m
+//	 *            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( final Model m, final String facts )
+//	{
+//		final ArrayList<Statement> sl = new ArrayList<Statement>();
+//		final StringTokenizer st = new StringTokenizer(facts, ";");
+//		while (st.hasMoreTokens())
+//		{
+//			sl.add(ModelTestBase.statement(m, st.nextToken()));
+//		}
+//		return sl.toArray(new Statement[sl.size()]);
+//	}
+//
+//	public ModelTestBase( final String name )
+//	{
+//		super(name);
+//	}
+//
+//}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelTestBase.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 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=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,219 @@
+/*
+ * 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;
+
+import com.hp.hpl.jena.Jena;
+import com.hp.hpl.jena.n3.N3JenaWriter;
+import com.hp.hpl.jena.n3.N3JenaWriterPP;
+import com.hp.hpl.jena.n3.N3JenaWriterPlain;
+import com.hp.hpl.jena.n3.N3JenaWriterTriples;
+import com.hp.hpl.jena.n3.N3TurtleJenaWriter;
+import com.hp.hpl.jena.rdf.model.RDFWriter;
+import com.hp.hpl.jena.rdf.model.RDFWriterF;
+import com.hp.hpl.jena.rdf.model.impl.NTripleWriter;
+import com.hp.hpl.jena.shared.JenaException;
+import com.hp.hpl.jena.shared.NoWriterForLangException;
+import com.hp.hpl.jena.xmloutput.impl.Abbreviated;
+import com.hp.hpl.jena.xmloutput.impl.Basic;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+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)
+			{
+				loadDefaults();
+			}
+		}
+
+		@Override
+		public RDFWriter getWriter()
+		{
+			return getWriter("RDF/XML");
+		}
+
+		@Override
+		public RDFWriter getWriter( final String lang )
+		{
+			final Class<RDFWriter> result = map.get(lang);
+			if (result == null)
+			{
+				throw new NoWriterForLangException(lang);
+			}
+			try
+			{
+				return result.newInstance();
+			}
+			catch (final Exception e)
+			{
+				throw new JenaException(e);
+			}
+		}
+
+		private void loadDefaults()
+		{
+			setWriterClassName(RDFWriterFTest.TURTLE_WRITER, Jena.PATH
+					+ ".n3.N3TurtleJenaWriter");
+			setWriterClassName(RDFWriterFTest.TURTLE_WRITER_ALT1, Jena.PATH
+					+ ".n3.N3TurtleJenaWriter");
+			setWriterClassName(RDFWriterFTest.TURTLE_WRITER_ALT2, Jena.PATH
+					+ ".n3.N3TurtleJenaWriter");
+			setWriterClassName(RDFWriterFTest.RDF_XML, Jena.PATH
+					+ ".xmloutput.impl.Basic");
+			setWriterClassName(RDFWriterFTest.RDF_XML_ABBREV, Jena.PATH
+					+ ".xmloutput.impl.Abbreviated");
+			setWriterClassName(RDFWriterFTest.N3, Jena.PATH
+					+ ".n3.N3JenaWriter");
+			setWriterClassName(RDFWriterFTest.N3_PLAIN, Jena.PATH
+					+ ".n3.N3JenaWriterPlain");
+			setWriterClassName(RDFWriterFTest.N3_PP, Jena.PATH
+					+ ".n3.N3JenaWriterPP");
+			setWriterClassName(RDFWriterFTest.N3_TRIPLE, Jena.PATH
+					+ ".n3.N3JenaWriterTriples");
+			setWriterClassName(RDFWriterFTest.N3_TRIPLES, Jena.PATH
+					+ ".n3.N3JenaWriterTriples");
+			setWriterClassName(RDFWriterFTest.NTRIPLE, Jena.PATH
+					+ ".rdf.model.impl.NTripleWriter");
+			setWriterClassName(RDFWriterFTest.NTRIPLES, Jena.PATH
+					+ ".rdf.model.impl.NTripleWriter");
+		}
+
+		@Override
+		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" )
+					final Class<RDFWriter> x = (Class<RDFWriter>) c;
+					map.put(lang, x);
+				}
+				return old == null ? null : old.getName();
+			}
+			catch (final ClassNotFoundException e)
+			{
+				throw new JenaException(e);
+			}
+		}
+	}
+
+	public static final String TURTLE_WRITER_ALT2 = N3JenaWriter.turtleWriterAlt2;
+	public static final String TURTLE_WRITER_ALT1 = N3JenaWriter.turtleWriterAlt1;
+
+	public static final String TURTLE_WRITER = N3JenaWriter.turtleWriter;
+	public static final String RDF_XML = "RDF/XML";
+	public static final String RDF_XML_ABBREV = "RDF/XML-ABBREV";
+	public static final String NTRIPLE = "N-TRIPLE";
+	public static final String NTRIPLES = "N-TRIPLES";
+	public static final String N3 = "N3";
+	public static final String N3_PLAIN = "N3-PLAIN";
+	public static final String N3_PP = "N3-PP";
+	public static final String N3_TRIPLE = "N3-TRIPLE";
+
+	public static final String N3_TRIPLES = "N3-TRIPLES";
+
+	@Test
+	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");
+	 * }
+	 */
+
+	private void testWriterAbsent( final String w )
+	{
+		final RDFWriterF x = new RDFWriterMap(false);
+		try
+		{
+			x.getWriter(w);
+		}
+		catch (final NoWriterForLangException e)
+		{
+			Assert.assertEquals(w, e.getMessage());
+		}
+	}
+
+	@Test
+	public void testWritersAbsent()
+	{
+		testWriterAbsent(RDFWriterFTest.TURTLE_WRITER);
+		testWriterAbsent(RDFWriterFTest.TURTLE_WRITER_ALT1);
+		testWriterAbsent(RDFWriterFTest.TURTLE_WRITER_ALT2);
+		testWriterAbsent(RDFWriterFTest.RDF_XML);
+		testWriterAbsent(RDFWriterFTest.RDF_XML_ABBREV);
+		testWriterAbsent(RDFWriterFTest.NTRIPLE);
+		testWriterAbsent(RDFWriterFTest.NTRIPLES);
+		testWriterAbsent(RDFWriterFTest.N3);
+		testWriterAbsent(RDFWriterFTest.N3_PP);
+		testWriterAbsent(RDFWriterFTest.N3_PLAIN);
+		testWriterAbsent(RDFWriterFTest.N3_TRIPLE);
+		testWriterAbsent(RDFWriterFTest.N3_TRIPLES);
+	}
+
+	@Test
+	public void testWritersPresent()
+	{
+		final RDFWriterF x = new RDFWriterMap(true);
+		Assert.assertEquals(N3TurtleJenaWriter.class,
+				x.getWriter(RDFWriterFTest.TURTLE_WRITER).getClass());
+		Assert.assertEquals(N3TurtleJenaWriter.class,
+				x.getWriter(RDFWriterFTest.TURTLE_WRITER_ALT1).getClass());
+		Assert.assertEquals(N3TurtleJenaWriter.class,
+				x.getWriter(RDFWriterFTest.TURTLE_WRITER_ALT2).getClass());
+		Assert.assertEquals(Basic.class, x.getWriter(RDFWriterFTest.RDF_XML)
+				.getClass());
+		Assert.assertEquals(Abbreviated.class,
+				x.getWriter(RDFWriterFTest.RDF_XML_ABBREV).getClass());
+		Assert.assertEquals(NTripleWriter.class,
+				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(N3JenaWriterPP.class,
+				x.getWriter(RDFWriterFTest.N3_PP).getClass());
+		Assert.assertEquals(N3JenaWriterPlain.class,
+				x.getWriter(RDFWriterFTest.N3_PLAIN).getClass());
+		Assert.assertEquals(N3JenaWriterTriples.class,
+				x.getWriter(RDFWriterFTest.N3_TRIPLE).getClass());
+		Assert.assertEquals(N3JenaWriterTriples.class,
+				x.getWriter(RDFWriterFTest.N3_TRIPLES).getClass());
+	}
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 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=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RecordingModelListener.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RecordingModelListener.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,176 @@
+/*
+ * 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;
+
+import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+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;
+
+/**
+ * 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);
+		}
+	}
+
+    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 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 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(); }
+
+    }

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RecordingModelListener.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 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=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceFactoryTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceFactoryTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,228 @@
+/*
+ * 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;
+
+import com.hp.hpl.jena.datatypes.RDFDatatype;
+import com.hp.hpl.jena.datatypes.xsd.XSDDatatype;
+import com.hp.hpl.jena.rdf.model.Literal;
+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 java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
+import org.junit.Assert;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+public class ResourceFactoryTest extends TestCase
+{
+
+	class TestFactory implements ResourceFactory.Interface
+	{
+
+		Resource resource;
+
+		TestFactory( final Resource r )
+		{
+			resource = r;
+		}
+
+		@Override
+		public Literal createLangLiteral( final String string, final String lang )
+		{
+			return null;
+		}
+
+		@Override
+		public Literal createPlainLiteral( final String string )
+		{
+			return null;
+		}
+
+		@Override
+		public Property createProperty( final String uriref )
+		{
+			return null;
+		}
+
+		@Override
+		public Property createProperty( final String namespace,
+				final String localName )
+		{
+			return null;
+		}
+
+		@Override
+		public Resource createResource()
+		{
+			return resource;
+		}
+
+		@Override
+		public Resource createResource( final String uriref )
+		{
+			return null;
+		}
+
+		@Override
+		public Statement createStatement( final Resource subject,
+				final Property predicate, final RDFNode object )
+		{
+			return null;
+		}
+
+		@Override
+		public Literal createTypedLiteral( final Object value )
+		{
+			return null;
+		}
+
+		@Override
+		public Literal createTypedLiteral( final String string,
+				final RDFDatatype datatype )
+		{
+			return null;
+		}
+
+	}
+
+	static final String uri1 = "http://example.org/example#a1";
+
+	static final String uri2 = "http://example.org/example#a2";
+
+	public static TestSuite suite()
+	{
+		return new TestSuite(ResourceFactoryTest.class);
+	}
+
+	public ResourceFactoryTest( final String name )
+	{
+		super(name);
+	}
+
+	public void testCreateLiteral()
+	{
+		final Literal l = ResourceFactory.createPlainLiteral("lex");
+		Assert.assertTrue(l.getLexicalForm().equals("lex"));
+		Assert.assertTrue(l.getLanguage().equals(""));
+		Assert.assertNull(l.getDatatype());
+		Assert.assertNull(l.getDatatypeURI());
+	}
+
+	public void testCreateProperty()
+	{
+		final Property p1 = ResourceFactory
+				.createProperty(ResourceFactoryTest.uri1);
+		Assert.assertTrue(p1.getURI().equals(ResourceFactoryTest.uri1));
+		final Property p2 = ResourceFactory.createProperty(
+				ResourceFactoryTest.uri1, "2");
+		Assert.assertTrue(p2.getURI().equals(ResourceFactoryTest.uri1 + "2"));
+	}
+
+	public void testCreateResource()
+	{
+		Resource r1 = ResourceFactory.createResource();
+		Assert.assertTrue(r1.isAnon());
+		final Resource r2 = ResourceFactory.createResource();
+		Assert.assertTrue(r2.isAnon());
+		Assert.assertTrue(!r1.equals(r2));
+
+		r1 = ResourceFactory.createResource(ResourceFactoryTest.uri1);
+		Assert.assertTrue(r1.getURI().equals(ResourceFactoryTest.uri1));
+	}
+
+	public void testCreateStatement()
+	{
+		final Resource s = ResourceFactory.createResource();
+		final Property p = ResourceFactory
+				.createProperty(ResourceFactoryTest.uri2);
+		final Resource o = ResourceFactory.createResource();
+		final Statement stmt = ResourceFactory.createStatement(s, p, o);
+		Assert.assertTrue(stmt.getSubject().equals(s));
+		Assert.assertTrue(stmt.getPredicate().equals(p));
+		Assert.assertTrue(stmt.getObject().equals(o));
+	}
+
+	public void testCreateTypedLiteral()
+	{
+		final Literal l = ResourceFactory.createTypedLiteral("22",
+				XSDDatatype.XSDinteger);
+		Assert.assertTrue(l.getLexicalForm().equals("22"));
+		Assert.assertTrue(l.getLanguage().equals(""));
+		Assert.assertTrue(l.getDatatype() == XSDDatatype.XSDinteger);
+		Assert.assertTrue(l.getDatatypeURI().equals(
+				XSDDatatype.XSDinteger.getURI()));
+
+	}
+
+	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()
+	{
+		final Calendar testCal = new GregorianCalendar(
+				TimeZone.getTimeZone("GMT"));
+		testCal.set(1999, 4, 30, 15, 9, 32);
+		testCal.set(Calendar.MILLISECOND, 0); // ms field can be undefined on
+		// Linux
+		final Literal lc = ResourceFactory.createTypedLiteral(testCal);
+		Assert.assertEquals("calendar overloading test", ResourceFactory
+				.createTypedLiteral("1999-05-30T15:09:32Z",
+						XSDDatatype.XSDdateTime), lc);
+
+	}
+
+	public void testGetInstance()
+	{
+		ResourceFactory.getInstance();
+		final Resource r1 = ResourceFactory.createResource();
+		Assert.assertTrue(r1.isAnon());
+		final Resource r2 = ResourceFactory.createResource();
+		Assert.assertTrue(r2.isAnon());
+		Assert.assertTrue(!r1.equals(r2));
+	}
+
+	public void testSetInstance()
+	{
+		final Resource r = ResourceFactory.createResource();
+		final ResourceFactory.Interface oldFactory = ResourceFactory
+				.getInstance();
+		final ResourceFactory.Interface factory = new TestFactory(r);
+		try
+		{
+			ResourceFactory.setInstance(factory);
+			Assert.assertTrue(factory.equals(ResourceFactory.getInstance()));
+			Assert.assertTrue(ResourceFactory.createResource() == r);
+		}
+		finally
+		{
+			ResourceFactory.setInstance(oldFactory);
+		}
+	}
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceFactoryTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/SimpleSelectorTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/SimpleSelectorTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/SimpleSelectorTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/SimpleSelectorTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,72 @@
+package com.hp.hpl.jena.rdf.model;
+
+import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class SimpleSelectorTest {
+
+	private Selector check( final Resource S, final Property P, final RDFNode O )
+	{
+		final Selector s = new SimpleSelector(S, P, O);
+		Assert.assertTrue(s.isSimple());
+		Assert.assertEquals(S, s.getSubject());
+		Assert.assertEquals(P, s.getPredicate());
+		Assert.assertEquals(O, s.getObject());
+		return s;
+	}
+
+	@Test
+	public void testSelectors()
+	{
+		Resource A = resource("A");
+		Property B = property("B");
+		Literal ten = literal( "10" );
+		Resource C = resource( "C" );
+		Property D = property("D");
+		Resource E = resource( "_E" );
+		
+		Selector s = check(null, null, null);
+		Assert.assertTrue( s.test( statement( "A, B, C" ) ) );
+		Assert.assertTrue( s.test( statement( "A, D, C" ) ) );
+		Assert.assertTrue( s.test( statement( "A, B, 10" ) ) );
+		Assert.assertTrue( s.test( statement( "C, B, C" ) ) );
+		Assert.assertTrue( s.test( statement( "A, B, _E" ) ) );
+		Assert.assertTrue( s.test( statement( "C, D, _E" ) ) );
+		
+		s = check(resource( "A"), null, null);
+		Assert.assertTrue( s.test( statement( "A, B, C" ) ) );
+		Assert.assertTrue( s.test( statement( "A, D, C" ) ) );
+		Assert.assertTrue( s.test( statement( "A, B, 10" ) ) );
+		Assert.assertFalse( s.test( statement( "C, B, C" ) ) );
+		Assert.assertTrue( s.test( statement( "A, B, _E" ) ) );
+		Assert.assertFalse( s.test( statement( "C, D, _E" ) ) );
+		
+		s = check(null, property( "B"), null);
+		Assert.assertTrue( s.test( statement( "A, B, C" ) ) );
+		Assert.assertFalse( s.test( statement( "A, D, C" ) ) );
+		Assert.assertTrue( s.test( statement( "A, B, 10" ) ) );
+		Assert.assertTrue( s.test( statement( "C, B, C" ) ) );
+		Assert.assertTrue( s.test( statement( "A, B, _E" ) ) );
+		Assert.assertFalse( s.test( statement( "C, D, _E" ) ) );
+		
+		s = check(null, null, literal( "10"));
+		Assert.assertFalse( s.test( statement( "A, B, C" ) ) );
+		Assert.assertFalse( s.test( statement( "A, D, C" ) ) );
+		Assert.assertTrue( s.test( statement( "A, B, 10" ) ) );
+		Assert.assertFalse( s.test( statement( "C, B, C" ) ) );
+		Assert.assertFalse( s.test( statement( "A, B, _E" ) ) );
+		Assert.assertFalse( s.test( statement( "C, D, _E" ) ) );
+
+		s = check(resource( "C"),
+				property( "D"),
+				resource( "_E"));
+		Assert.assertFalse( s.test( statement( "A, B, C" ) ) );
+		Assert.assertFalse( s.test( statement( "A, D, C" ) ) );
+		Assert.assertFalse( s.test( statement( "A, B, 10" ) ) );
+		Assert.assertFalse( s.test( statement( "C, B, C" ) ) );
+		Assert.assertFalse( s.test( statement( "A, B, _E" ) ) );
+		Assert.assertTrue( s.test( statement( "C, D, _E" ) ) );
+	}
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/SimpleSelectorTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/ModelMakerImplTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/ModelMakerImplTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/ModelMakerImplTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/ModelMakerImplTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,84 @@
+/*
+ * 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.impl;
+
+import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
+
+import com.hp.hpl.jena.graph.Graph;
+import com.hp.hpl.jena.graph.GraphMaker;
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.rdf.model.AbstractModelMakerTest;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelMaker;
+import com.hp.hpl.jena.rdf.model.impl.ModelMakerImpl;
+import com.hp.hpl.jena.shared.ReificationStyle;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator;
+import com.hp.hpl.jena.util.iterator.NullIterator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+
+/**
+ * Test ModelMakerImpl using a mock GraphMaker.
+ */
+@SuppressWarnings("deprecation")
+public class ModelMakerImplTest extends AbstractModelMakerTest
+{
+
+
+	@Override
+	protected ModelMaker getModelMaker() {
+		return maker;
+	}
+
+	@Override
+	protected Graph getModelMakerGraph() {
+		return graph;
+	}
+
+	@Override
+	protected GraphMaker getGraphMaker() {
+		return graphMaker;
+	}
+	
+	private ModelMaker maker;
+	private Graph graph;
+	private GraphMaker graphMaker;
+
+	@Before
+	public void setUpModelMakerImplTest()
+	{
+		graph = graphWith("");
+		graphMaker = new MockGraphMaker(graph);
+		maker = new ModelMakerImpl(graphMaker);
+	}
+
+	@After
+	public void teardownModelMakerImplTest()
+	{
+		maker.close();
+		graph.close();
+	}
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/ModelMakerImplTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/PropertyImplTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/PropertyImplTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/PropertyImplTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/PropertyImplTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,54 @@
+/*
+ * 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.impl;
+
+import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
+
+import com.hp.hpl.jena.graph.Graph;
+import com.hp.hpl.jena.graph.GraphMaker;
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.rdf.model.AbstractPropertyTest;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelMaker;
+import com.hp.hpl.jena.rdf.model.Property;
+import com.hp.hpl.jena.rdf.model.impl.ModelMakerImpl;
+import com.hp.hpl.jena.shared.ReificationStyle;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator;
+import com.hp.hpl.jena.util.iterator.NullIterator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import junit.framework.TestCase;
+
+/**
+ * Test ModelMakerImpl using a mock GraphMaker.
+ */
+public class PropertyImplTest extends AbstractPropertyTest
+{
+
+	@Override
+	protected Property createProperty(String uri) {
+		return new PropertyImpl( uri );
+	}
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/PropertyImplTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/AltMethodsTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/AltMethodsTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/AltMethodsTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/AltMethodsTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,26 @@
+package com.hp.hpl.jena.rdf.model.temp;
+
+import com.hp.hpl.jena.rdf.model.AbstractAltMethodsTest;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.testing_framework.AbstractModelProducer;
+import com.hp.hpl.jena.testing_framework.ModelProducerInterface;
+
+public class AltMethodsTest extends AbstractAltMethodsTest {
+
+	AbstractModelProducer producer = new AbstractModelProducer()
+	{
+
+		@Override
+		protected Model createNewModel() {
+			return ModelFactory.createDefaultModel();
+		}
+		
+	};
+	
+	@Override
+	public ModelProducerInterface getModelProducer() {
+		return producer;
+	}
+
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/AltMethodsTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/BagMethodsTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/BagMethodsTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/BagMethodsTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/BagMethodsTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,25 @@
+package com.hp.hpl.jena.rdf.model.temp;
+
+import com.hp.hpl.jena.rdf.model.AbstractBagMethodsTest;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.testing_framework.AbstractModelProducer;
+import com.hp.hpl.jena.testing_framework.ModelProducerInterface;
+
+public class BagMethodsTest extends AbstractBagMethodsTest {
+
+	AbstractModelProducer producer = new AbstractModelProducer()
+	{
+
+		@Override
+		protected Model createNewModel() {
+			return ModelFactory.createDefaultModel();
+		}
+		
+	};
+	
+	@Override
+	public ModelProducerInterface getModelProducer() {
+		return producer;
+	}
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/BagMethodsTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/FindPropertiesTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/FindPropertiesTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/FindPropertiesTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/FindPropertiesTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,27 @@
+package com.hp.hpl.jena.rdf.model.temp;
+
+import com.hp.hpl.jena.rdf.model.AbstractFindPropertiesTests;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.testing_framework.AbstractModelProducer;
+import com.hp.hpl.jena.testing_framework.ModelProducerInterface;
+
+
+
+public class FindPropertiesTest extends AbstractFindPropertiesTests {
+
+	AbstractModelProducer producer = new AbstractModelProducer()
+	{
+
+		@Override
+		protected Model createNewModel() {
+			return ModelFactory.createDefaultModel();
+		}
+		
+	};
+	
+	@Override
+	public ModelProducerInterface getModelProducer() {
+		return producer;
+	}
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/FindPropertiesTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/IteratorTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/IteratorTest.java?rev=1523135&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/IteratorTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/IteratorTest.java Fri Sep 13 22:32:05 2013
@@ -0,0 +1,26 @@
+package com.hp.hpl.jena.rdf.model.temp;
+
+import com.hp.hpl.jena.rdf.model.AbstractIteratorTest;
+import com.hp.hpl.jena.rdf.model.AbstractModelTest;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.testing_framework.AbstractModelProducer;
+import com.hp.hpl.jena.testing_framework.ModelProducerInterface;
+
+public class IteratorTest extends AbstractIteratorTest {
+
+	AbstractModelProducer producer = new AbstractModelProducer()
+	{
+
+		@Override
+		protected Model createNewModel() {
+			return ModelFactory.createDefaultModel();
+		}
+		
+	};
+	
+	@Override
+	public ModelProducerInterface getModelProducer() {
+		return producer;
+	}
+}

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/temp/IteratorTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain