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 2014/01/05 12:28:05 UTC

svn commit: r1555482 [1/6] - in /jena/Experimental/new-test: ./ src/test/java/ 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/...

Author: claude
Date: Sun Jan  5 11:28:03 2014
New Revision: 1555482

URL: http://svn.apache.org/r1555482
Log:
Converted to junit-contracts v0.0.4
Fixed ModelConContractTest so that it properly checks for language tags.

Added:
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/InfModelContractTests.java   (with props)
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/InfModelTest.java   (with props)
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/reasoner/
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/reasoner/InfGraphContractTests.java   (with props)
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/AbstractInfModelProducer.java   (with props)
    jena/Experimental/new-test/src/test/java/test.java   (with props)
Modified:
    jena/Experimental/new-test/pom.xml
    jena/Experimental/new-test/src/test/java/GraphMemPlainTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/AbstractGraphSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphContractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphEventManagerContractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphExtractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphMakerContractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphWithPerformContractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/ReifierTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/TransactionHandlerContractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DeltaSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DeltaTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DifferenceSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DifferenceTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DisjointUnionSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DisjointUnionTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/IntersectionSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/IntersectionTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionReifierTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/PolyadicPrefixMappingTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/UnionTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/CollectionGraphSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/CollectionGraphTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/FileGraphMakerTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/FileGraphSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/FileGraphTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/TripleStoreContractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/WrappedGraphSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/WrappedGraphTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/mem/BunchMapContractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/mem/GraphMemSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/mem/GraphMemTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/mem/TripleBunchContractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/IRIResolverTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterCommonTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPPTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterParameterizedTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPlainTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTriplesTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3TurtleJenaWriterTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/turtle/TurtleParserTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/turtle/TurtleReaderTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/turtle/TurtleTestSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/turtle/TurtleTestVocab.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractModelContractSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFWriterTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AltContractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/BagContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ContainerContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/LockContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelConContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelGraphInterfaceContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/PropertyContractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFListContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFNodeContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFReaderFContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFWriterFContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ResourceContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/SeqContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/StatementContractTests.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/impl/ModelComSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/shared/PrefixMappingContractTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/shared/RandomOrderGraphTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/shared/impl/PrefixMappingTest.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/AbstractGraphProducer.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/AbstractModelProducer.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/ContractTemplate.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TestFileData.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TestUtils.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/manifest/ManifestSuite.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/tuples/TupleItem.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/tuples/TupleSet.java
    jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/util/iterator/ExtendedIteratorContractTests.java

Modified: jena/Experimental/new-test/pom.xml
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/pom.xml?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/pom.xml (original)
+++ jena/Experimental/new-test/pom.xml Sun Jan  5 11:28:03 2014
@@ -48,7 +48,7 @@
 		<dependency>
 			<groupId>org.xenei</groupId>
 			<artifactId>junit-contracts</artifactId>
-			<version>0.0.2</version>
+			<version>0.0.4</version>
 			<!-- <scope>test</scope> -->
 		</dependency>
 	</dependencies>
@@ -63,6 +63,18 @@
 					<target>1.6</target>
 				</configuration>
 			</plugin>
+			<plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.4</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
 		</plugins>
 	</build>
 </project>
\ No newline at end of file

Modified: jena/Experimental/new-test/src/test/java/GraphMemPlainTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/GraphMemPlainTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/GraphMemPlainTest.java (original)
+++ jena/Experimental/new-test/src/test/java/GraphMemPlainTest.java Sun Jan  5 11:28:03 2014
@@ -16,20 +16,16 @@
  * limitations under the License.
  */
 
-
-
-import java.util.HashSet;
-
 import org.junit.runner.RunWith;
 import org.xenei.junit.contract.ContractImpl;
 import org.xenei.junit.contract.ContractSuite;
 import org.xenei.junit.contract.Contract.Inject;
 
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.graph.impl.CollectionGraph;
+import com.hp.hpl.jena.graph.Graph;
 import com.hp.hpl.jena.sparql.graph.GraphMemPlain;
 import com.hp.hpl.jena.testing_framework.AbstractGraphProducer;
 import org.xenei.junit.contract.IProducer;
+import static com.hp.hpl.jena.testing_framework.GraphHelper.*;
 
 @RunWith(ContractSuite.class)
 @ContractImpl(GraphMemPlain.class)
@@ -42,6 +38,16 @@ public class GraphMemPlainTest {
 			return new GraphMemPlain();
 		}
 
+		@Override
+		public Graph[] getDependsOn(Graph g) {
+			return null;
+		}
+
+		@Override
+		public Graph[] getNotDependsOn(Graph g) {
+			return new Graph[] { memGraph() };
+		}
+
 	};
 
 	@Inject

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/AbstractGraphSuite.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/AbstractGraphSuite.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/AbstractGraphSuite.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/AbstractGraphSuite.java Sun Jan  5 11:28:03 2014
@@ -17,18 +17,6 @@
  */
 package com.hp.hpl.jena.graph;
 
-import java.util.Arrays;
-import java.util.Collection;
-import org.junit.Ignore;
-import org.junit.runner.RunWith;
-import org.xenei.junit.contract.Contract;
-import org.xenei.junit.contract.ContractImpl;
-import org.xenei.junit.contract.ContractSuite;
-import org.xenei.junit.contract.Dynamic;
-
-import com.hp.hpl.jena.shared.PrefixMapping;
-import org.xenei.junit.contract.IProducer;
-
 //@Ignore
 //public abstract class AbstractGraphSuite implements Dynamic {
 //
@@ -190,4 +178,4 @@ import org.xenei.junit.contract.IProduce
 //
 //	}
 //
-//}
+// }

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphContractTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphContractTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphContractTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphContractTest.java Sun Jan  5 11:28:03 2014
@@ -26,11 +26,10 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 import org.junit.After;
-import org.junit.Ignore;
-import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.xenei.junit.contract.Contract;
+import org.xenei.junit.contract.ContractTest;
 
 import static org.junit.Assert.*;
 
@@ -49,8 +48,7 @@ import com.hp.hpl.jena.shared.PrefixMapp
 import com.hp.hpl.jena.shared.ClosedException;
 import com.hp.hpl.jena.shared.DeleteDeniedException;
 import com.hp.hpl.jena.shared.PrefixMapping;
-import org.xenei.junit.contract.IProducer;
-
+import com.hp.hpl.jena.testing_framework.AbstractGraphProducer;
 import com.hp.hpl.jena.testing_framework.ContractTemplate;
 import com.hp.hpl.jena.testing_framework.NodeCreateUtils;
 import com.hp.hpl.jena.util.iterator.ClosableIterator;
@@ -65,37 +63,27 @@ import static com.hp.hpl.jena.testing_fr
  * to deliver a Graph of interest.
  */
 @Contract(Graph.class)
-@Ignore
-public class GraphContractTest<T extends Graph> extends ContractTemplate<T> {
+public class GraphContractTest<T extends Graph> extends
+		ContractTemplate<AbstractGraphProducer<T>> {
 
 	private static final Logger LOG = LoggerFactory
 			.getLogger(GraphContractTest.class);
 
 	protected RecordingGraphListener GL = new RecordingGraphListener();
 
-	// public GraphContractTest() {
-	// setProducer( new AbstractGraphProducer<T>() {
-	//
-	// @Override
-	// protected T createNewGraph() {
-	// return (T) new GraphMem();
-	// }
-	//
-	// });
-	// }
-
 	@Contract.Inject
-	public final void setGraphContractTestProducer(IProducer<T> graphProducer) {
+	public final void setGraphContractTestProducer(
+			AbstractGraphProducer<T> graphProducer) {
 		super.setProducer(graphProducer);
 	}
 
 	@After
-	public final void afterAbstractGraphTest() {
+	public final void afterGraphContractTest() {
 		getProducer().cleanUp();
 		GL.clear();
 	}
 
-	@Test
+	@ContractTest
 	public void testAdd_Triple() {
 		Graph graph = getProducer().newInstance();
 		graph.getEventManager().register(GL);
@@ -142,7 +130,7 @@ public class GraphContractTest<T extends
 	 * emptyness isn't available. This is why we go round the houses and test
 	 * that expected ~= initialContent + addedStuff - removed - initialContent.
 	 */
-	@Test
+	@ContractTest
 	public void testClear() {
 		Graph graph = getProducer().newInstance();
 		Graph base = copy(graph);
@@ -175,7 +163,7 @@ public class GraphContractTest<T extends
 
 	}
 
-	@Test
+	@ContractTest
 	public void testClose() {
 		Graph graph = graphWith(getProducer().newInstance(),
 				"S P O; S P2 O2; S3 P P3");
@@ -185,89 +173,132 @@ public class GraphContractTest<T extends
 		graph.close();
 		assertTrue("Graph should be closed", graph.isClosed());
 
-		txnBegin(graph);
+		// exception may be thrown on begin or on execution.
 		try {
-			graph.add(triple("S P O"));
+			txnBegin(graph);
+			try {
+				graph.add(triple("S P O"));
+				fail("added when closed");
+			} catch (Exception expected) {
+				GL.assertEmpty();
+				// expected
+			} finally {
+				txnRollback(graph);
+			}
 		} catch (Exception expected) {
+			GL.assertEmpty();
 			// expected
-		} finally {
-			txnRollback(graph);
 		}
 
-		txnBegin(graph);
 		try {
-			graph.delete(triple("x R y"));
-			fail("delete when closed");
-		} catch (ClosedException c) {
-			// Expected
-		} finally {
-			txnRollback(graph);
+			txnBegin(graph);
+			try {
+				graph.delete(triple("x R y"));
+				fail("delete when closed");
+			} catch (ClosedException c) {
+				// Expected
+			} finally {
+				txnRollback(graph);
+				GL.assertEmpty();
+			}
+		} catch (Exception expected) {
 			GL.assertEmpty();
+			// expected
 		}
 
-		txnBegin(graph);
 		try {
-			graph.add(triple("x R y"));
-			fail("add when closed");
-		} catch (ClosedException c) { /* as required */
-		} finally {
-			txnRollback(graph);
+			txnBegin(graph);
+
+			try {
+				graph.add(triple("x R y"));
+				fail("add when closed");
+			} catch (ClosedException c) { /* as required */
+			} finally {
+				txnRollback(graph);
+				GL.assertEmpty();
+			}
+		} catch (Exception expected) {
 			GL.assertEmpty();
+			// expected
 		}
 
-		txnBegin(graph);
 		try {
-			graph.contains(triple("x R y"));
-			fail("contains[triple] when closed");
-		} catch (ClosedException c) { /* as required */
-		} finally {
-			txnRollback(graph);
+			txnBegin(graph);
+			try {
+				graph.contains(triple("x R y"));
+				fail("contains[triple] when closed");
+			} catch (ClosedException c) { /* as required */
+			} finally {
+				txnRollback(graph);
+				GL.assertEmpty();
+			}
+		} catch (Exception expected) {
 			GL.assertEmpty();
+			// expected
 		}
 
-		txnBegin(graph);
 		try {
-			graph.contains(Node.ANY, Node.ANY, Node.ANY);
-			fail("contains[SPO] when closed");
-		} catch (ClosedException c) { /* as required */
-		} finally {
-			txnRollback(graph);
+			txnBegin(graph);
+			try {
+				graph.contains(Node.ANY, Node.ANY, Node.ANY);
+				fail("contains[SPO] when closed");
+			} catch (ClosedException c) { /* as required */
+			} finally {
+				txnRollback(graph);
+				GL.assertEmpty();
+			}
+		} catch (Exception expected) {
 			GL.assertEmpty();
+			// expected
 		}
 
-		txnBegin(graph);
 		try {
-			graph.find(triple("x R y"));
-			fail("find [triple] when closed");
-		} catch (ClosedException c) { /* as required */
-		} finally {
-			txnRollback(graph);
+			txnBegin(graph);
+			try {
+				graph.find(triple("x R y"));
+				fail("find [triple] when closed");
+			} catch (ClosedException c) { /* as required */
+			} finally {
+				txnRollback(graph);
+				GL.assertEmpty();
+			}
+		} catch (Exception expected) {
 			GL.assertEmpty();
+			// expected
 		}
 
-		txnBegin(graph);
-
 		try {
-			graph.find(Node.ANY, Node.ANY, Node.ANY);
-			fail("find[SPO] when closed");
-		} catch (ClosedException c) { /* as required */
-		} finally {
-			txnRollback(graph);
+			txnBegin(graph);
+			try {
+				graph.find(Node.ANY, Node.ANY, Node.ANY);
+				fail("find[SPO] when closed");
+			} catch (ClosedException c) { /* as required */
+			} finally {
+				txnRollback(graph);
+				GL.assertEmpty();
+			}
+		} catch (Exception expected) {
 			GL.assertEmpty();
+			// expected
 		}
 
-		txnBegin(graph);
 		try {
-			graph.size();
-			fail("size when closed (" + this.getClass() + ")");
-		} catch (ClosedException c) { /* as required */
-		} finally {
-			txnRollback(graph);
+			txnBegin(graph);
+			try {
+				graph.size();
+				fail("size when closed (" + this.getClass() + ")");
+			} catch (ClosedException c) { /* as required */
+			} finally {
+				txnRollback(graph);
+				GL.assertEmpty();
+			}
+		} catch (Exception expected) {
 			GL.assertEmpty();
+			// expected
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testContains_Node_Node_Node() {
 		Graph graph = graphWith(getProducer().newInstance(),
 				"S P O; S2 P2 O2; S3 P3 O3");
@@ -282,7 +313,7 @@ public class GraphContractTest<T extends
 		assertTrue(graph.contains(node("S"), Node.ANY, Node.ANY));
 	}
 
-	@Test
+	@ContractTest
 	public void testContains_Node_Node_Node_RepeatedSubjectDoesNotConceal() {
 
 		Graph g = graphWith(getProducer().newInstance(), "s P o; s Q r");
@@ -300,7 +331,7 @@ public class GraphContractTest<T extends
 		assertTrue(g.contains(any, Q, any));
 	}
 
-	@Test
+	@ContractTest
 	public void testContains_Node_Node_Node_ByValue() {
 		Node x = node("x");
 		Node P = node("P");
@@ -308,18 +339,24 @@ public class GraphContractTest<T extends
 				.handlesLiteralTyping()) {
 			Graph g1 = graphWith(getProducer().newInstance(),
 					"x P '1'xsd:integer");
-			assertTrue(String.format( "literal type equality failed, does %s really implement literal typing", g1.getClass()),g1.contains(x, P, node("'01'xsd:int")));
+			assertTrue(
+					String.format(
+							"literal type equality failed, does %s really implement literal typing",
+							g1.getClass()), g1.contains(x, P,
+							node("'01'xsd:int")));
 			//
 			Graph g2 = graphWith(getProducer().newInstance(), "x P '1'xsd:int");
-			assertTrue("Literal equality with '1'xsd:integer failed", g2.contains(x, P, node("'1'xsd:integer")));
+			assertTrue("Literal equality with '1'xsd:integer failed",
+					g2.contains(x, P, node("'1'xsd:integer")));
 			//
 			Graph g3 = graphWith(getProducer().newInstance(),
 					"x P '123'xsd:string");
-			assertTrue("Literal equality with '123' failed", g3.contains(x, P, node("'123'")));
+			assertTrue("Literal equality with '123' failed",
+					g3.contains(x, P, node("'123'")));
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testContains_Node_Node_Node_Concrete() {
 		Node s = node("s");
 		Node P = node("P");
@@ -335,8 +372,10 @@ public class GraphContractTest<T extends
 		Graph g = graphWith(getProducer().newInstance(),
 				"s P o; _x _R _y; x S 0");
 		assertTrue("Graph should have contained s P o", g.contains(s, P, o));
-		assertTrue("Graph should have contained _x _R _y", g.contains(_x, _R, _y));
-		assertTrue("Graph should have contained x S 'O'", g.contains(x, S, node("0")));
+		assertTrue("Graph should have contained _x _R _y",
+				g.contains(_x, _R, _y));
+		assertTrue("Graph should have contained x S 'O'",
+				g.contains(x, S, node("0")));
 		/* */
 		assertFalse(g.contains(s, P, node("Oh")));
 		assertFalse(g.contains(S, P, node("O")));
@@ -345,7 +384,7 @@ public class GraphContractTest<T extends
 		assertFalse(g.contains(x, S, node("1")));
 	}
 
-	@Test
+	@ContractTest
 	public void testContains_Node_Node_Node_Fluid() {
 		Node x = node("x");
 		Node R = node("R");
@@ -370,7 +409,7 @@ public class GraphContractTest<T extends
 		assertFalse(g.contains(a, node("S"), Node.ANY));
 	}
 
-	@Test
+	@ContractTest
 	public void testContains_Triple() {
 		Graph graph = graphWith(getProducer().newInstance(),
 				"S P O; S2 P2 O2; S3 P3 O3");
@@ -386,7 +425,7 @@ public class GraphContractTest<T extends
 
 	}
 
-	@Test
+	@ContractTest
 	public void testContains_Triple_RepeatedSubjectDoesNotConceal() {
 
 		Graph g = graphWith(getProducer().newInstance(), "s P o; s Q r");
@@ -398,26 +437,31 @@ public class GraphContractTest<T extends
 		assertTrue(g.contains(triple("?? Q ??")));
 	}
 
-	@Test
+	@ContractTest
 	public void testContains_Triple_ByValue() {
 
 		if (getProducer().newInstance().getCapabilities()
 				.handlesLiteralTyping()) {
 			Graph g1 = graphWith(getProducer().newInstance(),
 					"x P '1'xsd:integer");
-			assertTrue( String.format( "did not find x P '01'xsd:int, does %s really implement literal typing", g1.getClass()),
+			assertTrue(
+					String.format(
+							"did not find x P '01'xsd:int, does %s really implement literal typing",
+							g1.getClass()),
 					g1.contains(triple("x P '01'xsd:int")));
 			//
 			Graph g2 = graphWith(getProducer().newInstance(), "x P '1'xsd:int");
-			assertTrue("did not find x P '1'xsd:integer", g2.contains(triple("x P '1'xsd:integer")));
+			assertTrue("did not find x P '1'xsd:integer",
+					g2.contains(triple("x P '1'xsd:integer")));
 			//
 			Graph g3 = graphWith(getProducer().newInstance(),
 					"x P '123'xsd:string");
-			assertTrue("did not find x P '123'xsd:string",g3.contains(triple("x P '123'")));
+			assertTrue("did not find x P '123'xsd:string",
+					g3.contains(triple("x P '123'")));
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testContains_Triple_Concrete() {
 		Graph g = graphWith(getProducer().newInstance(),
 				"s P o; _x _R _y; x S 0");
@@ -432,7 +476,7 @@ public class GraphContractTest<T extends
 		assertFalse(g.contains(triple("x S 1")));
 	}
 
-	@Test
+	@ContractTest
 	public void testContains_Triple_Fluid() {
 		Graph g = graphWith(getProducer().newInstance(), "x R y; a P b");
 		assertTrue(g.contains(triple("?? R y")));
@@ -454,7 +498,7 @@ public class GraphContractTest<T extends
 	/**
 	 * Inference graphs can not be empty
 	 */
-	@Test
+	@ContractTest
 	public void testDelete_Triple() {
 		Graph graph = graphWith(getProducer().newInstance(),
 				"S P O; S2 P2 O2; S3 P3 O3");
@@ -489,7 +533,7 @@ public class GraphContractTest<T extends
 				Node.ANY));
 	}
 
-	@Test
+	@ContractTest
 	public void testDelete_Triple_FromNothing() {
 		Graph g = getProducer().newInstance();
 		g.getEventManager().register(GL);
@@ -499,12 +543,27 @@ public class GraphContractTest<T extends
 		GL.assertContains("delete", g, triple("quint rdf:subject S"));
 	}
 
-	@Test
+	@ContractTest
 	public void testDependsOn() {
-		LOG.warn("testDependsOn should be overridden");
+		Graph g = getProducer().newInstance();
+		Graph[] depGraphs = getProducer().getDependsOn(g);
+		if (depGraphs != null) {
+			for (Graph dg : depGraphs) {
+				assertTrue(
+						String.format("Graph %s should depend upon %s", g, dg),
+						g.dependsOn(dg));
+			}
+		}
+		depGraphs = getProducer().getNotDependsOn(g);
+		if (depGraphs != null) {
+			for (Graph dg : depGraphs) {
+				assertFalse(String.format("Graph %s should not depend upon %s",
+						g, dg), g.dependsOn(dg));
+			}
+		}
 	}
 
-	@Test
+	@ContractTest
 	public void testFind_Node_Node_Node() {
 		Graph graph = graphWith(getProducer().newInstance(),
 				"S P O; S2 P2 O2; S3 P3 O3");
@@ -545,7 +604,7 @@ public class GraphContractTest<T extends
 
 	}
 
-	@Test
+	@ContractTest
 	public void testFind_Node_Node_Node_ByFluidTriple() {
 		Node x = node("x");
 		Node y = node("y");
@@ -557,7 +616,7 @@ public class GraphContractTest<T extends
 		assertEquals(expect, g.find(x, y, Node.ANY).toSet());
 	}
 
-	@Test
+	@ContractTest
 	public void testFind_Node_Node_Node_ProgrammaticValues() {
 		Graph g = getProducer().newInstance();
 		if (g.getCapabilities().handlesLiteralTyping()) {
@@ -587,7 +646,10 @@ public class GraphContractTest<T extends
 				fail(e.getMessage());
 			}
 			txnCommit(g);
-			assertEquals(String.format( "Should have found 4 elements, does %s really implement literal typing", g.getClass()),
+			assertEquals(
+					String.format(
+							"Should have found 4 elements, does %s really implement literal typing",
+							g.getClass()),
 					4,
 					iteratorToSet(
 							g.find(Node.ANY, P, NodeCreateUtils.create("42")))
@@ -595,7 +657,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testFind_Node_Node_Node_MatchLanguagedLiteralCaseInsensitive() {
 		Graph m = graphWith(getProducer().newInstance(), "a p 'chat'en");
 		if (m.getCapabilities().handlesLiteralTyping()) {
@@ -608,7 +670,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testFind_Node_Node_Node_NoMatchAgainstUnlanguagesLiteral() {
 		Graph m = graphWith(getProducer().newInstance(),
 				"a p 'chat'en; a p 'chat'");
@@ -622,7 +684,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testFind_Triple() {
 		Graph graph = graphWith(getProducer().newInstance(),
 				"S P O; S2 P2 O2; S3 P3 O3");
@@ -662,7 +724,7 @@ public class GraphContractTest<T extends
 
 	}
 
-	@Test
+	@ContractTest
 	public void testFind_Triple_ByFluidTriple() {
 		Graph g = graphWith(getProducer().newInstance(), "x y z ");
 		Set<Triple> expect = tripleSet("x y z");
@@ -671,7 +733,7 @@ public class GraphContractTest<T extends
 		assertEquals(expect, g.find(triple("x y ??")).toSet());
 	}
 
-	@Test
+	@ContractTest
 	public void testFind_Triple_ProgrammaticValues() {
 		Graph g = getProducer().newInstance();
 		if (g.getCapabilities().handlesLiteralTyping()) {
@@ -701,7 +763,10 @@ public class GraphContractTest<T extends
 				fail(e.getMessage());
 			}
 			txnCommit(g);
-			assertEquals(String.format( "Should have found 4 elements, does %s really implement literal typing", g.getClass()),
+			assertEquals(
+					String.format(
+							"Should have found 4 elements, does %s really implement literal typing",
+							g.getClass()),
 					4,
 					iteratorToSet(
 							g.find(new Triple(Node.ANY, P, NodeCreateUtils
@@ -709,10 +774,10 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testFind_Triple_MatchLanguagedLiteralCaseInsensitive() {
 		Graph m = graphWith(getProducer().newInstance(), "a p 'chat'en");
-		if (m.getCapabilities().handlesLiteralTyping()) {
+		//if (m.getCapabilities().handlesLiteralTyping()) {
 			Node chaten = node("'chat'en"), chatEN = node("'chat'EN");
 			assertDiffer(chaten, chatEN);
 			assertTrue(chaten.sameValueAs(chatEN));
@@ -721,14 +786,14 @@ public class GraphContractTest<T extends
 					.toList().size());
 			assertEquals(1, m.find(new Triple(Node.ANY, Node.ANY, chatEN))
 					.toList().size());
-		}
+		//}
 	}
 
-	@Test
+	@ContractTest
 	public void testFind_Triple_NoMatchAgainstUnlanguagesLiteral() {
 		Graph m = graphWith(getProducer().newInstance(),
 				"a p 'chat'en; a p 'chat'");
-		if (m.getCapabilities().handlesLiteralTyping()) {
+		//if (m.getCapabilities().handlesLiteralTyping()) {
 			Node chaten = node("'chat'en"), chatEN = node("'chat'EN");
 			assertDiffer(chaten, chatEN);
 			assertTrue(chaten.sameValueAs(chatEN));
@@ -737,10 +802,10 @@ public class GraphContractTest<T extends
 					.toList().size());
 			assertEquals(1, m.find(new Triple(Node.ANY, Node.ANY, chatEN))
 					.toList().size());
-		}
+		//}
 	}
 
-	@Test
+	@ContractTest
 	public void testGetCapabilities() {
 		Graph g = getProducer().newInstance();
 		Capabilities c = g.getCapabilities();
@@ -777,13 +842,13 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testGetEventManager() {
 		assertNotNull("Must return an EventManager", getProducer()
 				.newInstance().getEventManager());
 	}
 
-	@Test
+	@ContractTest
 	public void testGetPrefixMapping() {
 		Graph g = getProducer().newInstance();
 		PrefixMapping pm = g.getPrefixMapping();
@@ -800,7 +865,7 @@ public class GraphContractTest<T extends
 
 	}
 
-	@Test
+	@ContractTest
 	public void testGetStatisticsHandler() {
 		Graph g = getProducer().newInstance();
 		GraphStatisticsHandler sh = g.getStatisticsHandler();
@@ -811,14 +876,14 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testGetTransactionHandler() {
 		Graph g = getProducer().newInstance();
 		assertNotNull("Must return a Transaction handler",
 				g.getTransactionHandler());
 	}
 
-	@Test
+	@ContractTest
 	public void testIsClosed() {
 		Graph g = getProducer().newInstance();
 		assertFalse("Graph created in closed state", g.isClosed());
@@ -827,7 +892,7 @@ public class GraphContractTest<T extends
 				g.isClosed());
 	}
 
-	@Test
+	@ContractTest
 	public void testIsEmpty() {
 		Graph g = getProducer().newInstance();
 		if (!g.isEmpty()) {
@@ -850,7 +915,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testIsIsomorphicWith_Graph() {
 		Graph graph = getProducer().newInstance();
 		Graph g2 = memGraph();
@@ -902,7 +967,7 @@ public class GraphContractTest<T extends
 	 * and test that expected ~= initialContent + addedStuff - removed -
 	 * initialContent.
 	 */
-	@Test
+	@ContractTest
 	public void testRemove_Node_Node_Node() {
 		for (int i = 0; i < cases.length; i += 1)
 			for (int j = 0; j < 3; j += 1) {
@@ -939,7 +1004,7 @@ public class GraphContractTest<T extends
 			}
 	}
 
-	@Test
+	@ContractTest
 	public void testRemove_ByIterator() {
 		testRemove("?? ?? ??", "?? ?? ??");
 		testRemove("S ?? ??", "S ?? ??");
@@ -975,7 +1040,7 @@ public class GraphContractTest<T extends
 	 * This test case was generated by Ian and was caused by GraphMem not
 	 * keeping up with changes to the find interface.
 	 */
-	@Test
+	@ContractTest
 	public void testFindAndContains() {
 		Graph g = getProducer().newInstance();
 		Node r = NodeCreateUtils.create("r"), s = NodeCreateUtils.create("s"), p = NodeCreateUtils
@@ -996,7 +1061,7 @@ public class GraphContractTest<T extends
 	 * Check that contains respects by-value semantics.
 	 */
 
-	@Test
+	@ContractTest
 	public void testAGraph() {
 		String title = this.getClass().getName();
 		Graph g = getProducer().newInstance();
@@ -1047,7 +1112,7 @@ public class GraphContractTest<T extends
 	// Test that Graphs have transaction support methods, and that if they fail
 	// on some g they fail because they do not support the operation.
 	// */
-	// @Test
+	// @ContractTest
 	// public void testHasTransactions()
 	// {
 	// Graph g = getProducer().newInstance();
@@ -1065,7 +1130,7 @@ public class GraphContractTest<T extends
 	// catch (UnsupportedOperationException x) {}
 	// }
 	//
-	// @Test
+	// @ContractTest
 	// public void testExecuteInTransactionCatchesThrowable()
 	// {Graph g = getProducer().newInstance();
 	// TransactionHandler th = g.getTransactionHandler();
@@ -1079,7 +1144,7 @@ public class GraphContractTest<T extends
 	// }
 	// }
 
-	@Test
+	@ContractTest
 	public void testAddWithReificationPreamble() {
 		Graph g = getProducer().newInstance();
 		txnBegin(g);
@@ -1104,7 +1169,7 @@ public class GraphContractTest<T extends
 				NodeCreateUtils.createTriple("S P O"));
 	}
 
-	@Test
+	@ContractTest
 	public void failingTestDoubleRemoveAll() {
 		final Graph g = getProducer().newInstance();
 		if (g.getCapabilities().iteratorRemoveAllowed()) {
@@ -1151,7 +1216,7 @@ public class GraphContractTest<T extends
 	 * 
 	 * @throws FileNotFoundException
 	 */
-	@Test
+	@ContractTest
 	public void testIsomorphismFile() throws URISyntaxException,
 			MalformedURLException {
 		testIsomorphismXMLFile(1, true);
@@ -1212,7 +1277,7 @@ public class GraphContractTest<T extends
 		return result;
 	}
 
-	// @Test
+	// @ContractTest
 	// public void testTransactionCommit()
 	// {
 	// Graph g = getProducer().newInstance();
@@ -1238,7 +1303,7 @@ public class GraphContractTest<T extends
 	// }
 	// }
 	//
-	// @Test
+	// @ContractTest
 	// public void testTransactionAbort()
 	// {
 	// Graph g = getProducer().newInstance();
@@ -1256,7 +1321,7 @@ public class GraphContractTest<T extends
 	// }
 	// }
 	//
-	// @Test
+	// @ContractTest
 	// public void testTransactionCommitThenAbort()
 	// {
 	// Graph g = getProducer().newInstance();
@@ -1286,7 +1351,7 @@ public class GraphContractTest<T extends
 	 * appearing as subject in the source graph - no further Spo statements were
 	 * added.
 	 */
-	@Test
+	@ContractTest
 	public void testPartialUpdate() {
 		Graph source = graphWith(getProducer().newInstance(), "a R b; b S e");
 		Graph dest = graphWith(getProducer().newInstance(), "b R d");
@@ -1301,14 +1366,14 @@ public class GraphContractTest<T extends
 	 * Ensure that triples removed by calling .remove() on the iterator returned
 	 * by a find() will generate deletion notifications.
 	 */
-	@Test
+	@ContractTest
 	public void testIterator_Remove() {
 		Graph graph = graphWith(getProducer().newInstance(), "a R b; b S e");
 		if (graph.getCapabilities().iteratorRemoveAllowed()) {
 			try {
 				graph.getEventManager().register(GL);
 				txnBegin(graph);
-	
+
 				Triple toRemove = triple("a R b");
 				ExtendedIterator<Triple> rtr = graph.find(toRemove);
 				assertTrue("ensure a(t least) one triple", rtr.hasNext());
@@ -1319,11 +1384,11 @@ public class GraphContractTest<T extends
 			} catch (UnsupportedOperationException e) {
 				fail("Error attempting to remove nodes " + e.getMessage());
 			}
-			
+
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testTransactionHandler_Commit() {
 		Graph g = getProducer().newInstance();
 		if (g.getTransactionHandler().transactionsSupported()) {
@@ -1347,7 +1412,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testTransactionHandler_Abort() {
 		Graph g = getProducer().newInstance();
 		if (g.getTransactionHandler().transactionsSupported()) {
@@ -1363,7 +1428,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testTransactionHandler_CommitThenAbort() {
 		Graph g = getProducer().newInstance();
 		if (g.getTransactionHandler().transactionsSupported()) {
@@ -1413,7 +1478,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testLiteralTypingBasedFind() {
 		testLiteralTypingBasedFind("a P 'simple'", 1, "'simple'", "'simple'",
 				false);
@@ -1459,7 +1524,7 @@ public class GraphContractTest<T extends
 				"'1'xsd:int", true);
 	}
 
-	@Test
+	@ContractTest
 	public void testQuadRemove() {
 		Graph g = getProducer().newInstance();
 		assertEquals(0, g.size());
@@ -1483,7 +1548,7 @@ public class GraphContractTest<T extends
 		assertEquals(0, g.size());
 	}
 
-	@Test
+	@ContractTest
 	public void testSizeAfterRemove() {
 		Graph g = graphWith(getProducer().newInstance(), "x p y");
 		if (g.getCapabilities().iteratorRemoveAllowed()) {
@@ -1497,7 +1562,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testSingletonStatisticsWithSingleTriple() {
 
 		Graph g = graphWith(getProducer().newInstance(), "a P b");
@@ -1514,7 +1579,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testSingletonStatisticsWithSeveralTriples() {
 
 		Graph g = graphWith(getProducer().newInstance(),
@@ -1535,7 +1600,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testDoubletonStatisticsWithTriples() {
 
 		Graph g = graphWith(getProducer().newInstance(),
@@ -1550,7 +1615,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testStatisticsWithOnlyVariables() {
 		testStatsWithAllVariables("");
 		testStatsWithAllVariables("a P b");
@@ -1566,7 +1631,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testStatsWithConcreteTriple() {
 		testStatsWithConcreteTriple(0, "x P y", "");
 	}
@@ -1584,7 +1649,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testBrokenIndexes() {
 		Graph g = graphWith(getProducer().newInstance(), "x R y; x S z");
 		if (g.getCapabilities().iteratorRemoveAllowed()) {
@@ -1602,7 +1667,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testBrokenSubject() {
 		Graph g = graphWith(getProducer().newInstance(), "x brokenSubject y");
 		if (g.getCapabilities().iteratorRemoveAllowed()) {
@@ -1617,7 +1682,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testBrokenPredicate() {
 		Graph g = graphWith(getProducer().newInstance(), "x brokenPredicate y");
 		if (g.getCapabilities().iteratorRemoveAllowed()) {
@@ -1632,7 +1697,7 @@ public class GraphContractTest<T extends
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testBrokenObject() {
 		Graph g = graphWith(getProducer().newInstance(), "x brokenObject y");
 		if (g.getCapabilities().iteratorRemoveAllowed()) {

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphEventManagerContractTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphEventManagerContractTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphEventManagerContractTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphEventManagerContractTest.java Sun Jan  5 11:28:03 2014
@@ -24,10 +24,9 @@ import java.util.List;
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
 import org.mockito.Mockito;
 import org.xenei.junit.contract.Contract;
+import org.xenei.junit.contract.ContractTest;
 
 import static org.junit.Assert.*;
 
@@ -49,10 +48,10 @@ import static com.hp.hpl.jena.testing_fr
  * Subclasses of this class must implement the getEventManagerProducer() method
  * to create a new instance of the EventManager for testing.
  */
-@Ignore
+
 @Contract(GraphEventManager.class)
 public class GraphEventManagerContractTest<T extends GraphEventManager> extends
-		ContractTemplate<T> {
+		ContractTemplate<IProducer<T>> {
 
 	protected static final Triple[] tripleArray = tripleArray("S P O; Foo R B; X Q Y");
 
@@ -98,7 +97,7 @@ public class GraphEventManagerContractTe
 	 * Test that when a listener is registered the same EventManager is
 	 * returned.
 	 */
-	@Test
+	@ContractTest
 	public void testEventRegister() {
 		assertSame(gem, gem.register(new RecordingGraphListener()));
 	}
@@ -106,7 +105,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that we can safely unregister a listener that isn't registered.
 	 */
-	@Test
+	@ContractTest
 	public void testEventUnregister() {
 		assertSame(gem, gem.unregister(L));
 	}
@@ -125,7 +124,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that adding a triple is reported.
 	 */
-	@Test
+	@ContractTest
 	public void testAddTriple() {
 		gem.register(L);
 		gem.notifyAddTriple(mockGraph, SPO);
@@ -135,7 +134,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that deleting a triple is reported.
 	 */
-	@Test
+	@ContractTest
 	public void testDeleteTriple() {
 		gem.register(L);
 		gem.notifyDeleteTriple(mockGraph, SPO);
@@ -145,7 +144,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that when 2 listeners are added both receive events.
 	 */
-	@Test
+	@ContractTest
 	public void testTwoListeners() {
 		RecordingGraphListener L1 = new RecordingGraphListener();
 		RecordingGraphListener L2 = new RecordingGraphListener();
@@ -159,7 +158,7 @@ public class GraphEventManagerContractTe
 	 * Test that unregistering a listener after registering it results in it not
 	 * receiving messages.
 	 */
-	@Test
+	@ContractTest
 	public void testUnregisterWorks() {
 		gem.register(L).unregister(L);
 		gem.notifyAddTriple(mockGraph, SPO);
@@ -170,7 +169,7 @@ public class GraphEventManagerContractTe
 	 * Test that registering a listener twice results in the listener receiving
 	 * the events twice.
 	 */
-	@Test
+	@ContractTest
 	public void testRegisterTwice() {
 		gem.register(L).register(L);
 		gem.notifyAddTriple(mockGraph, SPO);
@@ -181,7 +180,7 @@ public class GraphEventManagerContractTe
 	 * Test that registering a listener twice and unregistering it once will
 	 * result in the listener receiving each event one time.
 	 */
-	@Test
+	@ContractTest
 	public void testUnregisterOnce() {
 		gem.register(L).register(L).unregister(L);
 		gem.notifyDeleteTriple(mockGraph, SPO);
@@ -191,7 +190,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that adding an array is reported as adding an array.
 	 */
-	@Test
+	@ContractTest
 	public void testAddArray() {
 		gem.register(L);
 		gem.notifyAddArray(mockGraph, tripleArray);
@@ -201,7 +200,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that adding a list is reported as adding a list
 	 */
-	@Test
+	@ContractTest
 	public void testAddList() {
 		gem.register(L);
 		List<Triple> elems = Arrays.asList(tripleArray);
@@ -212,7 +211,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that deleting an array is reported as deleting an array.
 	 */
-	@Test
+	@ContractTest
 	public void testDeleteArray() {
 		gem.register(L);
 		gem.notifyDeleteArray(mockGraph, tripleArray);
@@ -222,7 +221,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that deleting a list is reported as deleting a list.
 	 */
-	@Test
+	@ContractTest
 	public void testDeleteList() {
 		gem.register(L);
 		List<Triple> elems = Arrays.asList(tripleArray);
@@ -233,7 +232,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that adding a list as an iterator is reported as an add iterator.
 	 */
-	@Test
+	@ContractTest
 	public void testAddListAsIterator() {
 		gem.register(L);
 		List<Triple> elems = Arrays.asList(tripleArray);
@@ -244,7 +243,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that adding an iterator is reported as adding an iterator.
 	 */
-	@Test
+	@ContractTest
 	public void testAddIterator() {
 		gem.register(L);
 		List<Triple> elems = Arrays.asList(tripleArray);
@@ -255,7 +254,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that deleting an iterator is reported as a deleting an iterator.
 	 */
-	@Test
+	@ContractTest
 	public void testDeleteIterator() {
 		gem.register(L);
 		List<Triple> elems = Arrays.asList(tripleArray);
@@ -267,7 +266,7 @@ public class GraphEventManagerContractTe
 	 * Test that deleting a list as an iterator is reported as deleting an
 	 * iterator.
 	 */
-	@Test
+	@ContractTest
 	public void testDeleteListAsIterator() {
 		gem.register(L);
 		List<Triple> elems = Arrays.asList(tripleArray);
@@ -278,7 +277,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that adding a graph is reported as adding a graph.
 	 */
-	@Test
+	@ContractTest
 	public void testAddGraph() {
 		gem.register(L);
 		Graph other = Mockito.mock(Graph.class);
@@ -289,7 +288,7 @@ public class GraphEventManagerContractTe
 	/**
 	 * Test that deleting a graph is reported as deleting a graph.
 	 */
-	@Test
+	@ContractTest
 	public void testDeleteGraph() {
 		gem.register(L);
 		Graph other = Mockito.mock(Graph.class);
@@ -301,7 +300,7 @@ public class GraphEventManagerContractTe
 	 * Test that sending a general event is reported as an event and the value
 	 * is saved.
 	 */
-	@Test
+	@ContractTest
 	public void testGeneralEvent() {
 		gem.register(L);
 		Object value = new int[] {};
@@ -309,7 +308,7 @@ public class GraphEventManagerContractTe
 		L.assertHas(new Object[] { "someEvent", mockGraph, value });
 	}
 
-	@Test
+	@ContractTest
 	public void testListening() {
 		assertFalse("Should not be listening", gem.listening());
 		gem.register(L);
@@ -444,7 +443,7 @@ public class GraphEventManagerContractTe
 	 * Test that a listener added during event processing does not receive the
 	 * event.
 	 */
-	@Test
+	@ContractTest
 	public void testAddOne() {
 		testAddingTriple(2, new ComeAndGoListener() {
 			@Override
@@ -458,7 +457,7 @@ public class GraphEventManagerContractTe
 	 * Test that when a listener that has not yet been handled is removed during
 	 * event processing it receive the event.
 	 */
-	@Test
+	@ContractTest
 	public void testDelete2nd() {
 		testAddingTriple(3, new ComeAndGoListener() {
 			@Override
@@ -472,7 +471,7 @@ public class GraphEventManagerContractTe
 	 * Test that when a listener that has been handled is removed during event
 	 * processing it receives the event.
 	 */
-	@Test
+	@ContractTest
 	public void testDelete1st() {
 		testAddingTriple(3, new SimpleListener(), new ComeAndGoListener() {
 			@Override
@@ -486,7 +485,7 @@ public class GraphEventManagerContractTe
 	 * Test that when a listener that removes itself during event processing it
 	 * receives the event.
 	 */
-	@Test
+	@ContractTest
 	public void testDeleteSelf() {
 		testAddingTriple(3, new ComeAndGoListener() {
 			@Override
@@ -500,7 +499,7 @@ public class GraphEventManagerContractTe
 	 * Test that when a listener that removes and adds itself during event
 	 * processing it receives the event.
 	 */
-	@Test
+	@ContractTest
 	public void testDeleteAndAddSelf() {
 		testAddingTriple(3, new ComeAndGoListener() {
 			@Override

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphExtractTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphExtractTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphExtractTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphExtractTest.java Sun Jan  5 11:28:03 2014
@@ -38,6 +38,16 @@ public class GraphExtractTest {
 		protected Graph createNewGraph() {
 			return new GraphMem();
 		}
+
+		@Override
+		public Graph[] getDependsOn(Graph g) {
+			return null;
+		}
+
+		@Override
+		public Graph[] getNotDependsOn(Graph g) {
+			return new Graph[] { memGraph() };
+		}
 	};
 
 	@Test

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphMakerContractTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphMakerContractTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphMakerContractTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphMakerContractTest.java Sun Jan  5 11:28:03 2014
@@ -23,9 +23,8 @@ import java.util.Set;
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
 import org.xenei.junit.contract.Contract;
+import org.xenei.junit.contract.ContractTest;
 
 import com.hp.hpl.jena.graph.Graph;
 import com.hp.hpl.jena.graph.GraphMaker;
@@ -48,7 +47,6 @@ import com.hp.hpl.jena.testing_framework
  * the development of the first full graph factory. (Although at the time it
  * wasn't abstract.)
  */
-@Ignore
 @Contract(GraphMaker.class)
 public class GraphMakerContractTest {
 
@@ -100,7 +98,7 @@ public class GraphMakerContractTest {
 	 * Foo trivial test that getGraph delivers a proper graph, not cheating with
 	 * null, and that getGraph() "always" delivers the same Graph.
 	 */
-	@Test
+	@ContractTest
 	public void testGetGraph() {
 		Graph g1 = graphMaker.getGraph();
 		assertFalse("should deliver a Graph", g1 == null);
@@ -108,13 +106,13 @@ public class GraphMakerContractTest {
 		g1.close();
 	}
 
-	@Test
+	@ContractTest
 	public void testCreateGraph() {
 		TestUtils.assertDiffer("each created graph must differ",
 				graphMaker.createGraph(), graphMaker.createGraph());
 	}
 
-	@Test
+	@ContractTest
 	public void testAnyName() {
 		graphMaker.createGraph("plain").close();
 		graphMaker.createGraph("with.dot").close();
@@ -125,7 +123,7 @@ public class GraphMakerContractTest {
 	/**
 	 * Test that we can't create a graph with the same name twice.
 	 */
-	@Test
+	@ContractTest
 	public void testCannotCreateTwice() {
 		String name = jName("bonsai");
 		graphMaker.createGraph(name, true);
@@ -140,7 +138,7 @@ public class GraphMakerContractTest {
 		return "jena-test-AbstractTestGraphMaker-" + name;
 	}
 
-	@Test
+	@ContractTest
 	public void testCanCreateTwice() {
 		String name = jName("bridge");
 		Graph g1 = graphMaker.createGraph(name, true);
@@ -153,7 +151,7 @@ public class GraphMakerContractTest {
 	/**
 	 * Test that we cannot open a graph that does not exist.
 	 */
-	@Test
+	@ContractTest
 	public void testCannotOpenUncreated() {
 		String name = jName("noSuchGraph");
 		try {
@@ -166,7 +164,7 @@ public class GraphMakerContractTest {
 	/**
 	 * Test that we *can* open a graph that hasn't been created
 	 */
-	@Test
+	@ContractTest
 	public void testCanOpenUncreated() {
 		String name = jName("willBeCreated");
 		Graph g1 = graphMaker.openGraph(name);
@@ -194,7 +192,7 @@ public class GraphMakerContractTest {
 	 * not sound.
 	 * 
 	 */
-	@Test
+	@ContractTest
 	public void testCanFindCreatedGraph() {
 		String alpha = jName("alpha"), beta = jName("beta");
 		Graph g1 = graphMaker.createGraph(alpha, true);
@@ -222,7 +220,7 @@ public class GraphMakerContractTest {
 	 * Test that we can remove a graph from the factory without disturbing
 	 * another graph's binding.
 	 */
-	@Test
+	@ContractTest
 	public void testCanRemoveGraph() {
 		String alpha = jName("bingo"), beta = jName("brillo");
 		graphMaker.createGraph(alpha, true);
@@ -234,7 +232,7 @@ public class GraphMakerContractTest {
 		testDoesNotExist(alpha);
 	}
 
-	@Test
+	@ContractTest
 	public void testHasnt() {
 		assertFalse("no such graph", graphMaker.hasGraph("john"));
 		assertFalse("no such graph", graphMaker.hasGraph("paul"));
@@ -256,7 +254,7 @@ public class GraphMakerContractTest {
 		assertFalse("no such graph", graphMaker.hasGraph("george"));
 	}
 
-	@Test
+	@ContractTest
 	public void testCarefulClose() {
 		Graph x = graphMaker.createGraph("x");
 		Graph y = graphMaker.openGraph("x");
@@ -269,7 +267,7 @@ public class GraphMakerContractTest {
 	/**
 	 * Test that a maker with no graphs lists no names.
 	 */
-	@Test
+	@ContractTest
 	public void testListNoGraphs() {
 		Set<String> s = graphMaker.listGraphs().toSet();
 		if (s.size() > 0)
@@ -282,7 +280,7 @@ public class GraphMakerContractTest {
 	 * that the spelling that goes in is the one that comes out [should really
 	 * be in a separate test].
 	 */
-	@Test
+	@ContractTest
 	public void testListThreeGraphs() {
 		String x = "x", y = "y/sub", z = "z:boo";
 		Graph X = graphMaker.createGraph(x);
@@ -299,7 +297,7 @@ public class GraphMakerContractTest {
 	 * Test that a maker with some things put in and then some removed gets the
 	 * right things listed.
 	 */
-	@Test
+	@ContractTest
 	public void testListAfterDelete() {
 		String x = "x_y", y = "y//zub", z = "a:b/c";
 		Graph X = graphMaker.createGraph(x);

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphWithPerformContractTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphWithPerformContractTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphWithPerformContractTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/GraphWithPerformContractTest.java Sun Jan  5 11:28:03 2014
@@ -8,11 +8,10 @@ import static com.hp.hpl.jena.testing_fr
 import static org.junit.Assert.*;
 
 import org.junit.After;
-import org.junit.Ignore;
-import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.xenei.junit.contract.Contract;
+import org.xenei.junit.contract.ContractTest;
 
 import com.hp.hpl.jena.graph.impl.GraphWithPerform;
 import com.hp.hpl.jena.mem.GraphMem;
@@ -25,10 +24,9 @@ import org.xenei.junit.contract.IProduce
  * performAdd and performDelete methods used by GraphBase to invoke
  * non-notifying versions of add and delete.
  */
-@Ignore
 @Contract(GraphWithPerform.class)
 public class GraphWithPerformContractTest<T extends GraphWithPerform> extends
-		ContractTemplate<T> {
+		ContractTemplate<IProducer<T>> {
 	// Recording listener for tests
 	protected RecordingGraphListener GL = new RecordingGraphListener();
 
@@ -61,7 +59,7 @@ public class GraphWithPerformContractTes
 		getProducer().cleanUp();
 	}
 
-	@Test
+	@ContractTest
 	public void testPerformAdd_Triple() {
 		GraphWithPerform g = (GraphWithPerform) graphWith(getProducer()
 				.newInstance(), "S P O; S2 P2 O2");
@@ -71,10 +69,9 @@ public class GraphWithPerformContractTes
 		txnCommit(g);
 		GL.assertEmpty();
 		assertTrue(g.contains(triple("S3 P3 O3")));
-
 	}
 
-	@Test
+	@ContractTest
 	public void testPerformDelete_Triple() {
 		GraphWithPerform g = (GraphWithPerform) graphWith(getProducer()
 				.newInstance(), "S P O; S2 P2 O2");
@@ -84,7 +81,6 @@ public class GraphWithPerformContractTes
 		txnCommit(g);
 		GL.assertEmpty();
 		assertFalse(g.contains(triple("S2 P2 O2")));
-
 	}
 
 }

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/ReifierTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/ReifierTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/ReifierTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/ReifierTest.java Sun Jan  5 11:28:03 2014
@@ -41,6 +41,16 @@ public class ReifierTest {
 		protected Graph createNewGraph() {
 			return memGraph();
 		}
+
+		@Override
+		public Graph[] getDependsOn(Graph g) {
+			return null;
+		}
+
+		@Override
+		public Graph[] getNotDependsOn(Graph g) {
+			return new Graph[] { memGraph() };
+		}
 	};
 
 	/**

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/TransactionHandlerContractTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/TransactionHandlerContractTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/TransactionHandlerContractTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/TransactionHandlerContractTest.java Sun Jan  5 11:28:03 2014
@@ -22,9 +22,8 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
 
-import org.junit.Ignore;
-import org.junit.Test;
 import org.xenei.junit.contract.Contract;
+import org.xenei.junit.contract.ContractTest;
 
 import static org.junit.Assert.*;
 
@@ -42,7 +41,6 @@ import static com.hp.hpl.jena.testing_fr
  * to be a Graph. The abstract method getGraph must be overridden in subclasses
  * to deliver a Graph of interest.
  */
-@Ignore
 @Contract(TransactionHandler.class)
 public class TransactionHandlerContractTest {
 
@@ -76,7 +74,7 @@ public class TransactionHandlerContractT
 	 * Test that Graphs have transaction support methods, and that if they fail
 	 * on some g they fail because they do not support the operation.
 	 */
-	@Test
+	@ContractTest
 	public void testTransactionsExistAsPerTransactionSupported() {
 		Command cmd = new Command() {
 			@Override
@@ -119,7 +117,7 @@ public class TransactionHandlerContractT
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testExecuteInTransactionCatchesThrowable() {
 		TransactionHandler th = getTransactionHandlerProducer().newInstance();
 

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DeltaSuite.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DeltaSuite.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DeltaSuite.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DeltaSuite.java Sun Jan  5 11:28:03 2014
@@ -16,6 +16,7 @@
     limitations under the License.
  */
 package com.hp.hpl.jena.graph.compose;
+
 //
 //import org.junit.runner.RunWith;
 //import org.xenei.junit.contract.ContractImpl;
@@ -45,4 +46,4 @@ package com.hp.hpl.jena.graph.compose;
 //		return producer;
 //	}
 //
-//}
+// }

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DeltaTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DeltaTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DeltaTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DeltaTest.java Sun Jan  5 11:28:03 2014
@@ -20,14 +20,16 @@ package com.hp.hpl.jena.graph.compose;
 
 import static com.hp.hpl.jena.testing_framework.GraphHelper.*;
 
-import org.junit.Test;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.junit.runner.RunWith;
 import org.xenei.junit.contract.Contract;
 import org.xenei.junit.contract.ContractImpl;
 import org.xenei.junit.contract.ContractSuite;
+import org.xenei.junit.contract.ContractTest;
 
 import com.hp.hpl.jena.graph.Graph;
-import com.hp.hpl.jena.sparql.graph.GraphFactory;
 import com.hp.hpl.jena.testing_framework.AbstractGraphProducer;
 import org.xenei.junit.contract.IProducer;
 
@@ -39,9 +41,35 @@ public class DeltaTest extends DyadicTes
 	public DeltaTest() {
 		super();
 		producer = new AbstractGraphProducer<Delta>() {
+			private Map<Graph, Graph> map = new HashMap<Graph, Graph>();
+
 			@Override
 			protected Delta createNewGraph() {
-				return new Delta(GraphFactory.createGraphMem());
+				Graph g = memGraph();
+				Delta d = new Delta(g);
+				map.put(d, g);
+				return d;
+			}
+
+			@Override
+			public Graph[] getDependsOn(Graph d) {
+//				Delta dl = (Delta)d;
+//				Graph g = map.get(d);
+//				if (g == null) {
+//					throw new IllegalStateException("graph missing from map");
+//				}
+//				return new Graph[] { g,  (Graph)dl.getL(), (Graph)dl.getR() };
+				return null;
+			}
+
+			@Override
+			public Graph[] getNotDependsOn(Graph g) {
+				return new Graph[] { memGraph() };
+			}
+
+			@Override
+			protected void afterClose(Graph g) {
+				map.remove(g);
 			}
 		};
 	}
@@ -55,7 +83,7 @@ public class DeltaTest extends DyadicTes
 		return producer;
 	}
 
-	@Test
+	@ContractTest
 	public void testDelta() {
 		Graph x = graphWith(getDyadicTestProducer().newInstance(), "x R y");
 		assertContains("x", "x R y", x);

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DifferenceSuite.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DifferenceSuite.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DifferenceSuite.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DifferenceSuite.java Sun Jan  5 11:28:03 2014
@@ -16,6 +16,7 @@
     limitations under the License.
  */
 package com.hp.hpl.jena.graph.compose;
+
 //
 //import org.junit.runner.RunWith;
 //import org.xenei.junit.contract.ContractImpl;
@@ -48,4 +49,4 @@ package com.hp.hpl.jena.graph.compose;
 //		return producer;
 //	}
 //
-//}
+// }

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DifferenceTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DifferenceTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DifferenceTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DifferenceTest.java Sun Jan  5 11:28:03 2014
@@ -21,15 +21,17 @@ package com.hp.hpl.jena.graph.compose;
 import static com.hp.hpl.jena.testing_framework.GraphHelper.*;
 import static org.junit.Assert.*;
 
-import org.junit.Test;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.junit.runner.RunWith;
 import org.xenei.junit.contract.Contract;
 import org.xenei.junit.contract.ContractImpl;
 import org.xenei.junit.contract.ContractSuite;
+import org.xenei.junit.contract.ContractTest;
 
 import com.hp.hpl.jena.graph.Graph;
 import com.hp.hpl.jena.graph.compose.Difference;
-import com.hp.hpl.jena.sparql.graph.GraphFactory;
 import com.hp.hpl.jena.testing_framework.AbstractGraphProducer;
 import org.xenei.junit.contract.IProducer;
 
@@ -40,10 +42,34 @@ public class DifferenceTest extends Dyad
 
 	public DifferenceTest() {
 		producer = new AbstractGraphProducer<Difference>() {
+			private Map<Graph, Graph[]> map = new HashMap<Graph, Graph[]>();
+
 			@Override
 			protected Difference createNewGraph() {
-				return new Difference(GraphFactory.createGraphMem(),
-						GraphFactory.createGraphMem());
+				Graph g1 = memGraph();
+				Graph g2 = memGraph();
+				Difference d = new Difference(g1, g2);
+				map.put(d, new Graph[] { g1, g2 });
+				return d;
+			}
+
+			@Override
+			public Graph[] getDependsOn(Graph d) {
+				Graph[] dg = map.get(d);
+				if (dg == null) {
+					throw new IllegalStateException("graph not in map");
+				}
+				return dg;
+			}
+
+			@Override
+			public Graph[] getNotDependsOn(Graph g) {
+				return new Graph[] { memGraph() };
+			}
+
+			@Override
+			protected void afterClose(Graph g) {
+				map.remove(g);
 			}
 		};
 	}
@@ -57,7 +83,7 @@ public class DifferenceTest extends Dyad
 		return producer;
 	}
 
-	@Test
+	@ContractTest
 	public void testDifference() {
 		Graph g1 = graphWith("x R y; p R q");
 		Graph g2 = graphWith("r Foo s; x R y");

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DisjointUnionSuite.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DisjointUnionSuite.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DisjointUnionSuite.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DisjointUnionSuite.java Sun Jan  5 11:28:03 2014
@@ -16,6 +16,7 @@
     limitations under the License.
  */
 package com.hp.hpl.jena.graph.compose;
+
 //
 //import org.junit.runner.RunWith;
 //import org.xenei.junit.contract.ContractImpl;
@@ -47,4 +48,4 @@ package com.hp.hpl.jena.graph.compose;
 //	public IProducer<? extends Graph> getCollectionGraphSuiteProducer() {
 //		return producer;
 //	}
-//}
+// }

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DisjointUnionTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DisjointUnionTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DisjointUnionTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/DisjointUnionTest.java Sun Jan  5 11:28:03 2014
@@ -21,15 +21,17 @@ package com.hp.hpl.jena.graph.compose;
 import static com.hp.hpl.jena.testing_framework.GraphHelper.*;
 import static org.junit.Assert.*;
 
-import org.junit.Test;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.junit.runner.RunWith;
 import org.xenei.junit.contract.Contract;
 import org.xenei.junit.contract.ContractImpl;
 import org.xenei.junit.contract.ContractSuite;
+import org.xenei.junit.contract.ContractTest;
 
 import com.hp.hpl.jena.graph.Graph;
 import com.hp.hpl.jena.graph.compose.DisjointUnion;
-import com.hp.hpl.jena.sparql.graph.GraphFactory;
 import com.hp.hpl.jena.testing_framework.AbstractGraphProducer;
 import org.xenei.junit.contract.IProducer;
 
@@ -42,10 +44,34 @@ public class DisjointUnionTest extends D
 
 	public DisjointUnionTest() {
 		producer = new AbstractGraphProducer<DisjointUnion>() {
+			private Map<Graph, Graph[]> map = new HashMap<Graph, Graph[]>();
+
 			@Override
 			protected DisjointUnion createNewGraph() {
-				return new DisjointUnion(GraphFactory.createGraphMem(),
-						GraphFactory.createGraphMem());
+				Graph g1 = memGraph();
+				Graph g2 = memGraph();
+				DisjointUnion d = new DisjointUnion(g1, g2);
+				map.put(d, new Graph[] { g1, g2 });
+				return d;
+			}
+
+			@Override
+			public Graph[] getDependsOn(Graph d) {
+				Graph[] dg = map.get(d);
+				if (dg == null) {
+					throw new IllegalStateException("graph not in map");
+				}
+				return dg;
+			}
+
+			@Override
+			public Graph[] getNotDependsOn(Graph g) {
+				return new Graph[] { memGraph() };
+			}
+
+			@Override
+			protected void afterClose(Graph g) {
+				map.remove(g);
 			}
 		};
 	}
@@ -59,19 +85,19 @@ public class DisjointUnionTest extends D
 		return producer;
 	}
 
-	@Test
+	@ContractTest
 	public void testEmptyUnion() {
 		DisjointUnion du = new DisjointUnion(Graph.emptyGraph, Graph.emptyGraph);
 		assertEquals(true, du.isEmpty());
 	}
 
-	@Test
+	@ContractTest
 	public void testLeftUnion() {
 		Graph g = graphWith("");
 		testSingleComponent(g, new DisjointUnion(g, Graph.emptyGraph));
 	}
 
-	@Test
+	@ContractTest
 	public void testRightUnion() {
 		Graph g = graphWith("");
 		testSingleComponent(g, new DisjointUnion(Graph.emptyGraph, g));
@@ -86,7 +112,7 @@ public class DisjointUnionTest extends D
 		assertIsomorphic(g, du);
 	}
 
-	@Test
+	@ContractTest
 	public void testBothComponents() {
 		Graph L = graphWith(""), R = graphWith("");
 		Graph du = new DisjointUnion(L, R);
@@ -97,7 +123,7 @@ public class DisjointUnionTest extends D
 		assertIsomorphic(graphWith("x P y; Foo rdf:type Route"), du);
 	}
 
-	@Test
+	@ContractTest
 	public void testRemoveBoth() {
 		Graph L = graphWith("x R y; a P b"), R = graphWith("x R y; p Q r");
 		Graph du = new DisjointUnion(L, R);
@@ -106,7 +132,7 @@ public class DisjointUnionTest extends D
 		assertIsomorphic(graphWith("p Q r"), R);
 	}
 
-	@Test
+	@ContractTest
 	public void testAddLeftOnlyIfNecessary() {
 		Graph L = graphWith(""), R = graphWith("x R y");
 		Graph du = new DisjointUnion(L, R);

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/IntersectionSuite.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/IntersectionSuite.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/IntersectionSuite.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/IntersectionSuite.java Sun Jan  5 11:28:03 2014
@@ -16,6 +16,7 @@
     limitations under the License.
  */
 package com.hp.hpl.jena.graph.compose;
+
 //
 //import org.junit.runner.RunWith;
 //import org.xenei.junit.contract.ContractImpl;
@@ -46,4 +47,4 @@ package com.hp.hpl.jena.graph.compose;
 //	public IProducer<? extends Graph> getCollectionGraphSuiteProducer() {
 //		return producer;
 //	}
-//}
+// }

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/IntersectionTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/IntersectionTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/IntersectionTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/IntersectionTest.java Sun Jan  5 11:28:03 2014
@@ -21,11 +21,14 @@ package com.hp.hpl.jena.graph.compose;
 import static com.hp.hpl.jena.testing_framework.GraphHelper.*;
 import static org.junit.Assert.*;
 
-import org.junit.Test;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.junit.runner.RunWith;
 import org.xenei.junit.contract.Contract;
 import org.xenei.junit.contract.ContractImpl;
 import org.xenei.junit.contract.ContractSuite;
+import org.xenei.junit.contract.ContractTest;
 
 import com.hp.hpl.jena.graph.Graph;
 import com.hp.hpl.jena.graph.GraphUtil;
@@ -42,10 +45,34 @@ public class IntersectionTest extends Dy
 	public IntersectionTest() {
 		super();
 		producer = new AbstractGraphProducer<Intersection>() {
+			private Map<Graph, Graph[]> dependencyGraph = new HashMap<Graph, Graph[]>();
+
 			@Override
 			protected Intersection createNewGraph() {
-				return new Intersection(GraphFactory.createGraphMem(),
-						GraphFactory.createGraphMem());
+				Graph g1 = memGraph();
+				Graph g2 = memGraph();
+				Intersection retval = new Intersection(g1, g2);
+				dependencyGraph.put(retval, new Graph[] { g1, g2 });
+				return retval;
+			}
+
+			@Override
+			public Graph[] getDependsOn(Graph g) {
+				Graph[] dg = dependencyGraph.get(g);
+				if (dg == null) {
+					throw new IllegalStateException("graph missing from map");
+				}
+				return dg;
+			}
+
+			@Override
+			public Graph[] getNotDependsOn(Graph g) {
+				return new Graph[] { memGraph() };
+			}
+
+			@Override
+			protected void afterClose(Graph g) {
+				dependencyGraph.remove(g);
 			}
 		};
 	}
@@ -55,7 +82,7 @@ public class IntersectionTest extends Dy
 		return producer;
 	}
 
-	@Test
+	@ContractTest
 	public void testIntersection() {
 		Graph g1 = graphWith(GraphFactory.createGraphMem(), "x R y; p R q");
 		Graph g2 = graphWith(GraphFactory.createGraphMem(), "r Foo s; x R y");
@@ -70,7 +97,7 @@ public class IntersectionTest extends Dy
 		assertContains("Intersection.R", "cats eat cheese", g2);
 	}
 
-	@Test
+	@ContractTest
 	public void testDeleteDoesNotUpdateR() {
 		Graph L = graphWith("a pings b; b pings c; c pings a");
 		Graph R = graphWith("c pings a; b pings c; x captures y");

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionReifierTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionReifierTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionReifierTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionReifierTest.java Sun Jan  5 11:28:03 2014
@@ -21,7 +21,9 @@ package com.hp.hpl.jena.graph.compose;
 import static org.junit.Assert.*;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.junit.Test;
 import com.hp.hpl.jena.graph.Factory;
@@ -33,28 +35,48 @@ import com.hp.hpl.jena.graph.ReifierTest
 import com.hp.hpl.jena.graph.Triple;
 import com.hp.hpl.jena.graph.compose.MultiUnion;
 import com.hp.hpl.jena.rdf.model.impl.ReifierStd;
-import com.hp.hpl.jena.sparql.graph.GraphFactory;
 import com.hp.hpl.jena.testing_framework.AbstractGraphProducer;
 import com.hp.hpl.jena.testing_framework.NodeCreateUtils;
 import com.hp.hpl.jena.vocabulary.RDF;
+import static com.hp.hpl.jena.testing_framework.GraphHelper.*;
 
 /**
  * Test the reifier for multi-unions.
  */
 
 public class MultiUnionReifierTest extends ReifierTest {
+	private Map<Graph, Graph[]> map = new HashMap<Graph, Graph[]>();
 
 	public MultiUnionReifierTest() {
 		graphProducer = new AbstractGraphProducer<MultiUnion>() {
+			private Map<Graph, Graph[]> map = new HashMap<Graph, Graph[]>();
+
 			@Override
 			protected MultiUnion createNewGraph() {
-				Graph gBase = GraphFactory.createDefaultGraph();
-				Graph g1 = GraphFactory.createDefaultGraph();
-				Graph g2 = GraphFactory.createDefaultGraph();
-				MultiUnion poly = new MultiUnion(new Graph[] { gBase, g1, g2 });
-				poly.setBaseGraph(gBase);
+				Graph[] g = { memGraph(), memGraph(), memGraph() };
+				MultiUnion poly = new MultiUnion(g);
+				map.put(poly, g);
 				return poly;
 			}
+
+			@Override
+			public Graph[] getDependsOn(Graph d) {
+				Graph[] dg = map.get(d);
+				if (dg == null) {
+					throw new IllegalStateException("graph not in map");
+				}
+				return dg;
+			}
+
+			@Override
+			public Graph[] getNotDependsOn(Graph g) {
+				return new Graph[] { memGraph() };
+			}
+
+			@Override
+			protected void afterClose(Graph g) {
+				map.remove(g);
+			}
 		};
 	}
 

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionSuite.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionSuite.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionSuite.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionSuite.java Sun Jan  5 11:28:03 2014
@@ -49,4 +49,4 @@ package com.hp.hpl.jena.graph.compose;
 //	public IProducer<? extends Graph> getCollectionGraphSuiteProducer() {
 //		return producer;
 //	}
-//}
+// }

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/MultiUnionTest.java Sun Jan  5 11:28:03 2014
@@ -24,14 +24,16 @@ import static org.junit.Assert.*;
 import static com.hp.hpl.jena.testing_framework.GraphHelper.*;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
-import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.xenei.junit.contract.Contract;
 import org.xenei.junit.contract.ContractImpl;
 import org.xenei.junit.contract.ContractSuite;
+import org.xenei.junit.contract.ContractTest;
 
 import com.hp.hpl.jena.graph.Graph;
 import com.hp.hpl.jena.graph.GraphStatisticsHandler;
@@ -55,10 +57,33 @@ public class MultiUnionTest extends Poly
 
 	public MultiUnionTest() {
 		producer = new AbstractGraphProducer<MultiUnion>() {
+			private Map<Graph, Graph[]> map = new HashMap<Graph, Graph[]>();
+
 			@Override
 			protected MultiUnion createNewGraph() {
-				return new MultiUnion(new Graph[] { memGraph(), memGraph() });
+				Graph[] g = { memGraph(), memGraph(), memGraph() };
+				MultiUnion poly = new MultiUnion(g);
+				map.put(poly, g);
+				return poly;
+			}
+
+			@Override
+			public Graph[] getDependsOn(Graph d) {
+				Graph[] dg = map.get(d);
+				if (dg == null) {
+					throw new IllegalStateException("graph not in map");
+				}
+				return dg;
+			}
 
+			@Override
+			public Graph[] getNotDependsOn(Graph g) {
+				return new Graph[] { memGraph() };
+			}
+
+			@Override
+			protected void afterClose(Graph g) {
+				map.remove(g);
 			}
 		};
 	}
@@ -80,7 +105,7 @@ public class MultiUnionTest extends Poly
 	// External signature methods
 	// ////////////////////////////////
 
-	@Test
+	@ContractTest
 	public void testEmptyGraph() {
 		Graph m = new MultiUnion();
 		Graph g0 = graphWith("x p y");
@@ -94,7 +119,7 @@ public class MultiUnionTest extends Poly
 	 * Foo MultiUnion graph should have a MultiUnionStatisticsHandler, and that
 	 * handler should point right back to that graph.
 	 */
-	@Test
+	@ContractTest
 	public void testMultiUnionHasMultiUnionStatisticsHandler() {
 		MultiUnion mu = new MultiUnion();
 		GraphStatisticsHandler sh = mu.getStatisticsHandler();
@@ -110,7 +135,7 @@ public class MultiUnionTest extends Poly
 	// assertSame( m.getReifier(), g1.getReifier() );
 	// }
 
-	@Test
+	@ContractTest
 	public void testGraphSize1() {
 		Graph g0 = graphWith("x p y");
 		Graph g1 = graphWith("x p z; z p zz"); // disjoint with g0
@@ -148,7 +173,7 @@ public class MultiUnionTest extends Poly
 				m00.size());
 	}
 
-	@Test
+	@ContractTest
 	public void testGraphSize2() {
 		Graph g0 = graphWith("x p y");
 		Graph g1 = graphWith("x p z; z p zz"); // disjoint with g0
@@ -186,7 +211,7 @@ public class MultiUnionTest extends Poly
 				m00.size());
 	}
 
-	@Test
+	@ContractTest
 	public void testGraphAddSize() {
 		Graph g0 = graphWith("x p y");
 		Graph g1 = graphWith("x p z; z p zz"); // disjoint with g0
@@ -223,7 +248,7 @@ public class MultiUnionTest extends Poly
 
 	}
 
-	@Test
+	@ContractTest
 	public void testAdd() {
 		Graph g0 = graphWith("x p y");
 		Graph g1 = graphWith("x p z; z p zz"); // disjoint with g0
@@ -267,7 +292,7 @@ public class MultiUnionTest extends Poly
 		assertTrue("Should not have been able to make g2 the updater", expected);
 	}
 
-	@Test
+	@ContractTest
 	public void testDelete() {
 		Graph g0 = graphWith("x p y");
 		Graph g1 = graphWith("x p z; z p zz"); // disjoint with g0
@@ -291,7 +316,7 @@ public class MultiUnionTest extends Poly
 		checkDeleteSizes(0, 0, 0, g0, g1, m);
 	}
 
-	@Test
+	@ContractTest
 	public void testContains() {
 		Graph g0 = graphWith("x p y");
 		Graph g1 = graphWith("x p z; z p zz"); // disjoint with g0
@@ -307,7 +332,7 @@ public class MultiUnionTest extends Poly
 	}
 
 	/* Test using a model to wrap a multi union */
-	@Test
+	@ContractTest
 	public void testModel() {
 		Graph g0 = graphWith("x p y");
 		MultiUnion u = new MultiUnion(new Graph[] { g0 });

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/PolyadicPrefixMappingTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/PolyadicPrefixMappingTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/PolyadicPrefixMappingTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/PolyadicPrefixMappingTest.java Sun Jan  5 11:28:03 2014
@@ -25,12 +25,12 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
 import org.xenei.junit.contract.Contract.Inject;
 import org.xenei.junit.contract.ContractImpl;
 import org.xenei.junit.contract.ContractSuite;
+import org.xenei.junit.contract.ContractTest;
 
 import com.hp.hpl.jena.graph.Graph;
 import com.hp.hpl.jena.shared.PrefixMapping;
@@ -134,7 +134,7 @@ public class PolyadicPrefixMappingTest {
 	 * (b) base mapping over-rides all others (c) non-overridden mappings in
 	 * other maps are visible
 	 */
-	@Test
+	@ContractTest
 	public void testOnlyBaseMutated() {
 		PolyadicPrefixMappingImpl pm = getMappingProducer().newInstance();
 		pm.setNsPrefix("a", alpha);
@@ -152,7 +152,7 @@ public class PolyadicPrefixMappingTest {
 		assertEquals(alpha, gpm.getNsPrefixMap().get("a"));
 	}
 
-	@Test
+	@ContractTest
 	public void testUpdatesVisible() {
 		PolyadicPrefixMappingImpl prefixMapping = getMappingProducer()
 				.newInstance();
@@ -167,7 +167,7 @@ public class PolyadicPrefixMappingTest {
 
 	}
 
-	@Test
+	@ContractTest
 	public void testUpdatesOverridden() {
 		PolyadicPrefixMappingImpl prefixMapping = getMappingProducer()
 				.newInstance();
@@ -180,7 +180,7 @@ public class PolyadicPrefixMappingTest {
 		assertEquals(beta, prefixMapping.getNsPrefixURI("x"));
 	}
 
-	@Test
+	@ContractTest
 	public void testQNameComponents() {
 		PolyadicPrefixMappingImpl prefixMapping = getMappingProducer()
 				.newInstance();
@@ -198,7 +198,7 @@ public class PolyadicPrefixMappingTest {
 	 * Test that the default namespace of a sub-graph doesn't appear as a
 	 * default namespace of the polyadic graph.
 	 */
-	@Test
+	@ContractTest
 	public void testSubgraphsDontPolluteDefaultPrefix() {
 		String imported = "http://imported#", local = "http://local#";
 
@@ -213,7 +213,7 @@ public class PolyadicPrefixMappingTest {
 		assertEquals(null, prefixMapping.getNsURIPrefix(imported));
 	}
 
-	@Test
+	@ContractTest
 	public void testPolyDoesntSeeImportedDefaultPrefix() {
 		String imported = "http://imported#";
 
@@ -225,7 +225,7 @@ public class PolyadicPrefixMappingTest {
 		assertEquals(null, prefixMapping.getNsPrefixURI(""));
 	}
 
-	@Test
+	@ContractTest
 	public void testPolyMapOverridesFromTheLeft() {
 		PolyadicPrefixMappingImpl prefixMapping = getMappingProducer()
 				.newInstance();
@@ -239,7 +239,7 @@ public class PolyadicPrefixMappingTest {
 		assertEquals("eh:/U1", a);
 	}
 
-	@Test
+	@ContractTest
 	public void testPolyMapHandlesBase() {
 		PolyadicPrefixMappingImpl prefixMapping = getMappingProducer()
 				.newInstance();

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/UnionTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/UnionTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/UnionTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/compose/UnionTest.java Sun Jan  5 11:28:03 2014
@@ -21,11 +21,14 @@ package com.hp.hpl.jena.graph.compose;
 import static com.hp.hpl.jena.testing_framework.GraphHelper.*;
 import static org.junit.Assert.*;
 
-import org.junit.Test;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.junit.runner.RunWith;
 import org.xenei.junit.contract.Contract;
 import org.xenei.junit.contract.ContractImpl;
 import org.xenei.junit.contract.ContractSuite;
+import org.xenei.junit.contract.ContractTest;
 
 import com.hp.hpl.jena.graph.Graph;
 import com.hp.hpl.jena.graph.GraphStatisticsHandler;
@@ -34,7 +37,6 @@ import com.hp.hpl.jena.graph.Triple;
 import com.hp.hpl.jena.graph.TripleMatch;
 import com.hp.hpl.jena.graph.compose.Union;
 import com.hp.hpl.jena.graph.impl.GraphBase;
-import com.hp.hpl.jena.sparql.graph.GraphFactory;
 import com.hp.hpl.jena.testing_framework.AbstractGraphProducer;
 import org.xenei.junit.contract.IProducer;
 import com.hp.hpl.jena.util.iterator.ExtendedIterator;
@@ -45,11 +47,33 @@ public class UnionTest extends DyadicTes
 
 	public UnionTest() {
 		producer = new AbstractGraphProducer<Union>() {
+			private Map<Graph, Graph[]> map = new HashMap<Graph, Graph[]>();
+
 			@Override
 			protected Union createNewGraph() {
-				Graph g1 = GraphFactory.createGraphMem();
-				Graph g2 = GraphFactory.createGraphMem();
-				return new Union(g1, g2);
+				Graph[] g = { memGraph(), memGraph() };
+				Union u = new Union(g[0], g[1]);
+				map.put(u, g);
+				return u;
+			}
+
+			@Override
+			public Graph[] getDependsOn(Graph d) {
+				Graph[] dg = map.get(d);
+				if (dg == null) {
+					throw new IllegalStateException("graph not in map");
+				}
+				return dg;
+			}
+
+			@Override
+			public Graph[] getNotDependsOn(Graph g) {
+				return new Graph[] { memGraph() };
+			}
+
+			@Override
+			protected void afterClose(Graph g) {
+				map.remove(g);
 			}
 		};
 
@@ -64,7 +88,7 @@ public class UnionTest extends DyadicTes
 		return producer;
 	}
 
-	@Test
+	@ContractTest
 	public void testUnion() {
 		Graph g1 = graphWith("x R y; p R q");
 		Graph g2 = graphWith("r Foo s; x R y");
@@ -89,12 +113,12 @@ public class UnionTest extends DyadicTes
 		}
 	}
 
-	@Test
+	@ContractTest
 	public void testUnionValues() {
 		testUnion(0, 0, 0, 0);
 	}
 
-	@Test
+	@ContractTest
 	public void testCopiesSingleNonZeroResult() {
 		testUnion(1, 1, 0, 0);
 		testUnion(1, 0, 1, 0);
@@ -104,7 +128,7 @@ public class UnionTest extends DyadicTes
 		testUnion(4, 0, 0, 4);
 	}
 
-	@Test
+	@ContractTest
 	public void testResultIsSumOfBaseResults() {
 		testUnion(3, 1, 2, 0);
 		testUnion(5, 1, 0, 4);
@@ -116,7 +140,7 @@ public class UnionTest extends DyadicTes
 		testUnion(7, 6, 0, 1);
 	}
 
-	@Test
+	@ContractTest
 	public void testUnknownOverrulesAll() {
 		testUnion(-1, -1, 0, 0);
 		testUnion(-1, 0, -1, 0);

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/CollectionGraphSuite.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/CollectionGraphSuite.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/CollectionGraphSuite.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/CollectionGraphSuite.java Sun Jan  5 11:28:03 2014
@@ -17,6 +17,7 @@
  */
 
 package com.hp.hpl.jena.graph.impl;
+
 //
 //import java.util.HashSet;
 //
@@ -48,4 +49,4 @@ package com.hp.hpl.jena.graph.impl;
 //		return producer;
 //	}
 //
-//}
+// }

Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/CollectionGraphTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/CollectionGraphTest.java?rev=1555482&r1=1555481&r2=1555482&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/CollectionGraphTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/graph/impl/CollectionGraphTest.java Sun Jan  5 11:28:03 2014
@@ -20,11 +20,13 @@ package com.hp.hpl.jena.graph.impl;
 
 import java.util.HashSet;
 
+import static com.hp.hpl.jena.testing_framework.GraphHelper.*;
 import org.junit.runner.RunWith;
 import org.xenei.junit.contract.ContractImpl;
 import org.xenei.junit.contract.ContractSuite;
 import org.xenei.junit.contract.Contract.Inject;
 
+import com.hp.hpl.jena.graph.Graph;
 import com.hp.hpl.jena.graph.Triple;
 import com.hp.hpl.jena.graph.impl.CollectionGraph;
 import com.hp.hpl.jena.testing_framework.AbstractGraphProducer;
@@ -41,6 +43,16 @@ public class CollectionGraphTest {
 			return new CollectionGraph(new HashSet<Triple>());
 		}
 
+		@Override
+		public Graph[] getDependsOn(Graph g) {
+			return null;
+		}
+
+		@Override
+		public Graph[] getNotDependsOn(Graph g) {
+			return new Graph[] { memGraph() };
+		}
+
 	};
 
 	@Inject