[Plexus-svn] SF.net SVN: plexus:[884] trunk/plexus-graph/src/test/java/com/phoenixst/ plexus
Status: Alpha
Brought to you by:
rconner
From: <rc...@us...> - 2010-09-15 21:00:31
|
Revision: 884 http://plexus.svn.sourceforge.net/plexus/?rev=884&view=rev Author: rconner Date: 2010-09-15 21:00:23 +0000 (Wed, 15 Sep 2010) Log Message: ----------- Refactoring test code, although the tests are only half-way to JUnit4 usage. However, the relationship between AbstractGraphTest, SingletonGraphTest, and UtilSuite appears to work. Running the same set of tests for a bunch of different data objects is not terribly clean in JUnit4. JUnit really wants every possible fixture to be a distinct class (this particular Path graph vs. that other Path graph, etc.); and this was the only way I found to avoid an explosion of top-level public classes. Modified Paths: -------------- trunk/plexus-graph/src/test/java/com/phoenixst/plexus/AbstractGraphTest.java trunk/plexus-graph/src/test/java/com/phoenixst/plexus/util/SingletonGraphTest.java Added Paths: ----------- trunk/plexus-graph/src/test/java/com/phoenixst/plexus/util/UtilSuite.java Modified: trunk/plexus-graph/src/test/java/com/phoenixst/plexus/AbstractGraphTest.java =================================================================== --- trunk/plexus-graph/src/test/java/com/phoenixst/plexus/AbstractGraphTest.java 2010-09-15 16:09:13 UTC (rev 883) +++ trunk/plexus-graph/src/test/java/com/phoenixst/plexus/AbstractGraphTest.java 2010-09-15 21:00:23 UTC (rev 884) @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) 1994-2006 by Phoenix Software Technologists, + * Copyright (C) 1994-2010 by Phoenix Software Technologists, * Inc. and others. All rights reserved. * * THIS PROGRAM AND DOCUMENTATION IS PROVIDED UNDER THE TERMS OF THE @@ -15,6 +15,13 @@ package com.phoenixst.plexus; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; @@ -26,81 +33,79 @@ import org.apache.commons.collections.Closure; import org.apache.commons.collections.Predicate; +import org.junit.Test; import com.phoenixst.collections.OrderedPair; -import com.phoenixst.junit.AbstractCloneableTestCase; +import com.phoenixst.plexus.Graph.Edge; /** - * A {@link Graph} tester. + * A {@link Graph} tester. * - * @author Ray A. Conner + * @author rconner */ -public abstract class AbstractGraphTest extends AbstractCloneableTestCase +public abstract class AbstractGraphTest { - protected static final String SHOULD_THROW_MESSAGE = "Should throw an Exception."; + private static final String SHOULD_THROW_MESSAGE = "Should throw an Exception."; - protected static final String SHOULD_THROW_NO_SUCH_ELEMENT_MESSAGE = "Should throw a NoSuchElementException."; + private static final String SHOULD_THROW_NO_SUCH_ELEMENT_MESSAGE = "Should throw a NoSuchElementException."; - protected static final String SHOULD_THROW_ILLEGAL_ARGUMENT_MESSAGE = "Should throw IllegalArgumentException."; + private static final String SHOULD_THROW_ILLEGAL_ARGUMENT_MESSAGE = "Should throw IllegalArgumentException."; /** - * Everything but directed in. + * Everything but directed in. */ - protected static final int DIR_MASK = GraphUtils.UNDIRECTED_MASK | GraphUtils.DIRECTED_OUT_MASK; + private static final int DIR_MASK = GraphUtils.UNDIRECTED_MASK | GraphUtils.DIRECTED_OUT_MASK; /** - * The <code>Graph</code> to be tested. + * The <code>Graph</code> to be tested. */ - protected Graph g; + Graph g = null; /** - * Contains all nodes accessed by the graph's - * <code>nodes( null ).iterator()</code> method. + * Contains all nodes accessed by the graph's + * <code>nodes( null ).iterator()</code> method. */ - private Set nodes = null; + private Set< Object > nodes = null; /** - * Contains all edges accessed by the graph's - * <code>edges( null ).iterator()</code> method. + * Contains all edges accessed by the graph's + * <code>edges( null ).iterator()</code> method. */ - private Set realEdges = null; + private Set< Edge > realEdges = null; /** - * Contains <code>SimpleObjectEdges</code> corresponding to all - * edges accessed by the graph's <code>edges( null ).iterator()</code> - * method. + * Contains <code>SimpleObjectEdges</code> corresponding to all edges + * accessed by the graph's <code>edges( null ).iterator()</code> method. */ - private Set testEdges = null; + private Set< Edge > testEdges = null; - /** * */ - protected Object[] presentNodes; + private Object[] presentNodes = new Object[] {}; /** * */ - protected Object[] notPresentNodes; + private Object[] notPresentNodes = new Object[] {}; /** * */ - protected Graph.Edge[] presentEdges; + private Edge[] presentEdges = new Edge[] {}; /** * */ - protected Graph.Edge[] notPresentEdges; + private Edge[] notPresentEdges = new Edge[] {}; //////////////////////////////////////// // Constructor //////////////////////////////////////// - protected AbstractGraphTest() { super(); @@ -108,96 +113,90 @@ //////////////////////////////////////// - // Fixture method + // Fixture methods //////////////////////////////////////// - - protected void setUp( Graph graph ) + @SuppressWarnings( "unchecked" ) + protected void setGraph( Graph graph ) { g = graph; - nodes = new HashSet(); - Iterator nodeIter = g.nodes( null ).iterator(); - while( nodeIter.hasNext() ) { - nodes.add( nodeIter.next() ); - } + nodes = new HashSet< Object >(); + nodes.addAll( g.nodes( null ) ); - realEdges = new HashSet(); - testEdges = new HashSet(); - Iterator edgeIter = g.edges( null ).iterator(); - while( edgeIter.hasNext() ) { - Graph.Edge edge = (Graph.Edge) edgeIter.next(); + realEdges = new HashSet< Edge >(); + testEdges = new HashSet< Edge >(); + for( Edge edge : (Collection< Edge >) g.edges( null ) ) { realEdges.add( edge ); - testEdges.add( new SimpleObjectEdge( edge.getUserObject(), - edge.getTail(), edge.getHead(), - edge.isDirected() ) ); + testEdges.add( new SimpleObjectEdge( edge.getUserObject(), edge.getTail(), edge.getHead(), edge.isDirected() ) ); } + } - presentNodes = new Object[] {}; - notPresentNodes = new Object[] {}; - presentEdges = new Graph.Edge[] {}; - notPresentEdges = new Graph.Edge[] {}; + protected void setPresentNodes( Object... presentNodes ) + { + this.presentNodes = presentNodes; } + protected void setNotPresentNodes( Object... notPresentNodes ) + { + this.notPresentNodes = notPresentNodes; + } - //////////////////////////////////////// - // Protected helper methods and stuff - //////////////////////////////////////// + protected void setPresentEdges( Edge... presentEdges ) + { + this.presentEdges = presentEdges; + } - - protected boolean isSelfEdge( Graph.Edge edge ) + protected void setNotPresentEdges( Edge... notPresentEdges ) { - Object tail = edge.getTail(); - Object head = edge.getHead(); - return (tail == null) ? head == null : tail.equals( head ); + this.notPresentEdges = notPresentEdges; } - protected void createPresentNodeRanges( int limit ) { - presentNodes = new Object[ limit ]; + presentNodes = new Object[limit]; for( int i = 0; i < limit; i++ ) { - presentNodes[i] = new Integer( i ); + presentNodes[i] = Integer.valueOf( i ); } - notPresentNodes = new Object[] { null, - new Object(), - new Integer( -1 ), - new Integer( limit ) }; + notPresentNodes = new Object[] + { null, + new Object(), + Integer.valueOf( -1 ), + Integer.valueOf( limit ) }; } - protected void createPresentNodeRanges( int limitA, int limitB ) { - presentNodes = new Object[ limitA * limitB ]; + presentNodes = new Object[limitA * limitB]; for( int i = 0; i < limitA; i++ ) { for( int j = 0; j < limitB; j++ ) { presentNodes[i * limitB + j] = new OrderedIntPair( i, j ); } } - notPresentNodes = new Object[] { null, - new Object(), - new OrderedIntPair( -1, 0 ), - new OrderedIntPair( 0, -1 ), - new OrderedIntPair( limitA, 0 ), - new OrderedIntPair( limitA - 1, -1 ), - new OrderedIntPair( 0, limitB ), - new OrderedIntPair( -1, limitB - 1 ), - new OrderedIntPair( limitA - 1, limitB ), - new OrderedIntPair( limitA, limitB - 1 ) }; + notPresentNodes = new Object[] + { null, + new Object(), + new OrderedIntPair( -1, 0 ), + new OrderedIntPair( 0, -1 ), + new OrderedIntPair( limitA, 0 ), + new OrderedIntPair( limitA - 1, -1 ), + new OrderedIntPair( 0, limitB ), + new OrderedIntPair( -1, limitB - 1 ), + new OrderedIntPair( limitA - 1, limitB ), + new OrderedIntPair( limitA, limitB - 1 ) }; } - protected void createEdgeArrays( int limit, Predicate pred ) { - Set goodEdges = new HashSet(); - Set badEdges = new HashSet(); + Set< Edge > goodEdges = new HashSet< Edge >(); + Set< Edge > badEdges = new HashSet< Edge >(); for( int tailIndex = 0; tailIndex < limit; tailIndex++ ) { - Object tail = new Integer( tailIndex ); + Object tail = Integer.valueOf( tailIndex ); for( int headIndex = 0; headIndex < limit; headIndex++ ) { - Object head = new Integer( headIndex ); - Graph.Edge edge = new SimpleObjectEdge( null, tail, head, false ); + Object head = Integer.valueOf( headIndex ); + Edge edge = new SimpleObjectEdge( null, tail, head, false ); if( pred.evaluate( edge ) ) { goodEdges.add( edge ); } else { @@ -216,11 +215,10 @@ notPresentEdges = createEdgeArray( badEdges ); } - protected void createEdgeArrays( int limitA, int limitB, Predicate pred ) { - Set goodEdges = new HashSet(); - Set badEdges = new HashSet(); + Set< Edge > goodEdges = new HashSet< Edge >(); + Set< Edge > badEdges = new HashSet< Edge >(); for( int tailA = 0; tailA < limitA; tailA++ ) { for( int tailB = 0; tailB < limitB; tailB++ ) { @@ -228,7 +226,7 @@ for( int headA = 0; headA < limitA; headA++ ) { for( int headB = 0; headB < limitB; headB++ ) { Object head = new OrderedIntPair( headA, headB ); - Graph.Edge edge = new SimpleObjectEdge( null, tail, head, false ); + Edge edge = new SimpleObjectEdge( null, tail, head, false ); if( pred.evaluate( edge ) ) { goodEdges.add( edge ); } else { @@ -249,17 +247,27 @@ notPresentEdges = createEdgeArray( badEdges ); } - - protected Graph.Edge[] createEdgeArray( Collection edges ) + protected static Edge[] createEdgeArray( Collection< Edge > edges ) { - Graph.Edge[] edgeArray = new Graph.Edge[ edges.size() ]; + Edge[] edgeArray = new Edge[edges.size()]; edges.toArray( edgeArray ); return edgeArray; } - protected void testEdge( Graph.Edge edge, Object tail, Object head ) + //////////////////////////////////////// + // helper methods + //////////////////////////////////////// + + private static boolean isSelfEdge( Edge edge ) { + Object tail = edge.getTail(); + Object head = edge.getHead(); + return ( tail == null ) ? head == null : tail.equals( head ); + } + + private void testEdge( Edge edge, Object tail, Object head ) + { Object edgeTail = edge.getTail(); Object edgeHead = edge.getHead(); @@ -274,7 +282,7 @@ assertEquals( tail, edgeTail ); assertEquals( head, edgeHead ); } else { - if( (tail == null) ? (edgeTail == null) : tail.equals( edgeTail ) ) { + if( ( tail == null ) ? ( edgeTail == null ) : tail.equals( edgeTail ) ) { assertEquals( head, edgeHead ); } else { assertEquals( tail, edgeHead ); @@ -284,17 +292,15 @@ // Check that the edge is accessed by the edge iterator. assertTrue( realEdges.contains( edge ) ); - assertTrue( testEdges.contains( new SimpleObjectEdge( edge.getUserObject(), - tail, head, - edge.isDirected() ) ) ); + assertTrue( testEdges.contains( new SimpleObjectEdge( edge.getUserObject(), tail, head, edge.isDirected() ) ) ); // Check that getOtherEndpoint() works. assertEquals( tail, edge.getOtherEndpoint( head ) ); assertEquals( head, edge.getOtherEndpoint( tail ) ); - for( int i = 0; i < notPresentNodes.length; i++ ) { + for( Object node : notPresentNodes ) { try { - edge.getOtherEndpoint( notPresentNodes[i] ); + edge.getOtherEndpoint( node ); fail( SHOULD_THROW_ILLEGAL_ARGUMENT_MESSAGE ); } catch( IllegalArgumentException e ) { // Do nothing @@ -302,14 +308,13 @@ } } - - protected void testNotPresentNodes( Closure closure ) + private void testNotPresentNodes( Closure closure ) { // Check that using nodes not present in the graph throws an // exception. - for( int i = 0; i < notPresentNodes.length; i++ ) { + for( Object node : notPresentNodes ) { try { - closure.execute( notPresentNodes[i] ); + closure.execute( node ); fail( SHOULD_THROW_MESSAGE ); } catch( ClassCastException e ) { // Do nothing @@ -324,79 +329,34 @@ } - protected void testNotPresentNodes( BinaryClosure bClosure ) - { - // Check that using nodes not present in the graph throws an - // exception. - for( int i = 0; i < notPresentNodes.length; i++ ) { - for( int j = 0; j < presentNodes.length; j++ ) { - try { - bClosure.execute( notPresentNodes[i], presentNodes[j] ); - fail( SHOULD_THROW_MESSAGE ); - } catch( ClassCastException e ) { - // Do nothing - } catch( IllegalArgumentException e ) { - // Do nothing - } catch( NoSuchNodeException e ) { - // Do nothing - } - try { - bClosure.execute( presentNodes[j], notPresentNodes[i] ); - fail( SHOULD_THROW_MESSAGE ); - } catch( ClassCastException e ) { - // Do nothing - } catch( IllegalArgumentException e ) { - // Do nothing - } catch( NoSuchNodeException e ) { - // Do nothing - } - } - for( int j = 0; j < notPresentNodes.length; j++ ) { - try { - bClosure.execute( notPresentNodes[i], notPresentNodes[j] ); - fail( SHOULD_THROW_MESSAGE ); - } catch( ClassCastException e ) { - // Do nothing - } catch( IllegalArgumentException e ) { - // Do nothing - } catch( NoSuchNodeException e ) { - // Do nothing - } - } - } - } - - //////////////////////////////////////// // Public test methods //////////////////////////////////////// - + @Test public void testNodeSize() { assertEquals( nodes.size(), g.nodes( null ).size() ); } - + @Test public void testEdgeSize() { assertEquals( realEdges.size(), g.edges( null ).size() ); } - + @Test public void testDegree() { // Check that the degree of a node is the same as the number // of edges accessed by the traverser. - Iterator nodeIter = g.nodes( null ).iterator(); - while( nodeIter.hasNext() ) { - Object node = nodeIter.next(); + for( Object node : g.nodes( null ) ) { int count; Traverser t = g.traverser( node, null ); for( count = 0; t.hasNext(); count++ ) { Object adjNode = t.next(); - if( (node == null) ? (adjNode == null) : node.equals( adjNode ) ) { + if( ( node == null ) ? ( adjNode == null ) : node.equals( adjNode ) ) { count++; } } @@ -404,17 +364,20 @@ } testNotPresentNodes( new Closure() - { public void execute( Object object ) { g.degree( object ); } } ); + { + public void execute( Object object ) + { + g.degree( object ); + } + } ); } - + @Test public void testOutDegree() { // Check that the out-degree of a node is the same as the // number of edges accessed by the out-traverser. - Iterator nodeIter = g.nodes( null ).iterator(); - while( nodeIter.hasNext() ) { - Object node = nodeIter.next(); + for( Object node : g.nodes( null ) ) { int count; Traverser t = g.traverser( node, GraphUtils.OUT_TRAVERSER_PREDICATE ); for( count = 0; t.hasNext(); count++ ) { @@ -424,17 +387,20 @@ } testNotPresentNodes( new Closure() - { public void execute( Object object ) { g.degree( object, GraphUtils.OUT_TRAVERSER_PREDICATE ); } } ); + { + public void execute( Object object ) + { + g.degree( object, GraphUtils.OUT_TRAVERSER_PREDICATE ); + } + } ); } - + @Test public void testInDegree() { // Check that the in-degree of a node is the same as the // number of edges accessed by the in-traverser. - Iterator nodeIter = g.nodes( null ).iterator(); - while( nodeIter.hasNext() ) { - Object node = nodeIter.next(); + for( Object node : g.nodes( null ) ) { int count; Traverser t = g.traverser( node, GraphUtils.IN_TRAVERSER_PREDICATE ); for( count = 0; t.hasNext(); count++ ) { @@ -444,51 +410,51 @@ } testNotPresentNodes( new Closure() - { public void execute( Object object ) { g.degree( object, GraphUtils.IN_TRAVERSER_PREDICATE ); } } ); + { + public void execute( Object object ) + { + g.degree( object, GraphUtils.IN_TRAVERSER_PREDICATE ); + } + } ); } - + @Test public void testContainsNode() { // Check that every node accessed by the node iterator is // present in the graph. - Iterator nodeIter = g.nodes( null ).iterator(); - while( nodeIter.hasNext() ) { - assertTrue( g.containsNode( nodeIter.next() ) ); + for( Object node : g.nodes( null ) ) { + assertTrue( g.containsNode( node ) ); } // Check for supposedly present and not present nodes. - for( int i = 0; i < presentNodes.length; i++ ) { - assertTrue( g.containsNode( presentNodes[i] ) ); + for( Object node : presentNodes ) { + assertTrue( g.containsNode( node ) ); } - for( int i = 0; i < notPresentNodes.length; i++ ) { - assertFalse( g.containsNode( notPresentNodes[i] ) ); + for( Object node : notPresentNodes ) { + assertFalse( g.containsNode( node ) ); } } - + @Test + @SuppressWarnings( "unchecked" ) public void testContainsEdge() { // Check that every edge accessed by the edge iterator is // present in the graph. - Iterator edgeIter = g.edges( null ).iterator(); - while( edgeIter.hasNext() ) { - assertTrue( g.containsEdge( (Graph.Edge) edgeIter.next() ) ); + for( Edge edge : (Collection< Edge >) g.edges( null ) ) { + assertTrue( g.containsEdge( edge ) ); } } - + @Test public void testGetEdge() { // Check an edge for each pair of nodes. - Iterator tailIter = g.nodes( null ).iterator(); - while( tailIter.hasNext() ) { - Object tail = tailIter.next(); - Iterator headIter = g.nodes( null ).iterator(); - while( headIter.hasNext() ) { - Object head = headIter.next(); + for( Object tail : g.nodes( null ) ) { + for( Object head : g.nodes( null ) ) { Predicate edgePred = EdgePredicateFactory.createEqualsNodes( tail, head, DIR_MASK ); - Graph.Edge edge = g.getEdge( edgePred ); + Edge edge = g.getEdge( edgePred ); if( edge != null ) { testEdge( edge, tail, head ); } @@ -496,29 +462,27 @@ } // Check for supposedly present and not present edges. - for( int i = 0; i < presentEdges.length; i++ ) { - Graph.Edge edge = presentEdges[i]; + for( Edge edge : presentEdges ) { Predicate edgePred = EdgePredicateFactory.create( edge ); assertNotNull( g.getEdge( edgePred ) ); } - for( int i = 0; i < notPresentEdges.length; i++ ) { - Graph.Edge edge = notPresentEdges[i]; + for( Edge edge : notPresentEdges ) { Predicate edgePred = EdgePredicateFactory.create( edge ); assertNull( g.getEdge( edgePred ) ); } } - + @Test public void testNodeIterator() { - for( int i = 0; i < presentNodes.length; i++ ) { - assertTrue( nodes.contains( presentNodes[i] ) ); + for( Object node : presentNodes ) { + assertTrue( nodes.contains( node ) ); } - for( int i = 0; i < notPresentNodes.length; i++ ) { - assertFalse( nodes.contains( notPresentNodes[i] ) ); + for( Object node : notPresentNodes ) { + assertFalse( nodes.contains( node ) ); } - Iterator nodeIter = g.nodes( null ).iterator(); + Iterator< ? > nodeIter = g.nodes( null ).iterator(); int count; for( count = 0; nodeIter.hasNext(); count++ ) { nodeIter.next(); @@ -533,27 +497,23 @@ assertEquals( count, nodes.size() ); } - + @Test public void testEdgeIterator() { - for( int i = 0; i < presentEdges.length; i++ ) { - Graph.Edge edge = presentEdges[i]; - assertTrue( testEdges.contains( new SimpleObjectEdge( edge.getUserObject(), - edge.getTail(), edge.getHead(), + for( Edge edge : presentEdges ) { + assertTrue( testEdges.contains( new SimpleObjectEdge( edge.getUserObject(), edge.getTail(), edge.getHead(), edge.isDirected() ) ) ); } - for( int i = 0; i < notPresentEdges.length; i++ ) { - Graph.Edge edge = notPresentEdges[i]; - assertFalse( testEdges.contains( new SimpleObjectEdge( edge.getUserObject(), - edge.getTail(), edge.getHead(), - edge.isDirected() ) ) ); + for( Edge edge : notPresentEdges ) { + assertFalse( testEdges.contains( new SimpleObjectEdge( edge.getUserObject(), edge.getTail(), + edge.getHead(), edge.isDirected() ) ) ); } - Iterator edgeIter = g.edges( null ).iterator(); + Iterator< ? > edgeIter = g.edges( null ).iterator(); int count; for( count = 0; edgeIter.hasNext(); count++ ) { - Graph.Edge edge = (Graph.Edge) edgeIter.next(); + Edge edge = (Edge) edgeIter.next(); testEdge( edge, edge.getTail(), edge.getHead() ); } try { @@ -566,26 +526,22 @@ assertEquals( count, realEdges.size() ); } - + @Test public void testEdgeIterator2() { int totalCount = 0; int selfCount = 0; - Iterator tailIter = g.nodes( null ).iterator(); - while( tailIter.hasNext() ) { - Object tail = tailIter.next(); - Iterator headIter = g.nodes( null ).iterator(); - while( headIter.hasNext() ) { - Object head = headIter.next(); + for( Object tail : g.nodes( null ) ) { + for( Object head : g.nodes( null ) ) { Predicate edgePred = EdgePredicateFactory.createEqualsNodes( tail, head, DIR_MASK ); - Iterator edgeIter = g.edges( edgePred ).iterator(); + Iterator< ? > edgeIter = g.edges( edgePred ).iterator(); if( edgeIter.hasNext() ) { assertNotNull( g.getEdge( edgePred ) ); } else { assertNull( g.getEdge( edgePred ) ); } while( edgeIter.hasNext() ) { - Graph.Edge edge = (Graph.Edge) edgeIter.next(); + Edge edge = (Edge) edgeIter.next(); if( isSelfEdge( edge ) ) { selfCount++; } @@ -609,30 +565,26 @@ assertEquals( totalCount + selfCount, 2 * realEdges.size() ); // Check for supposedly present and not present edges. - for( int i = 0; i < presentEdges.length; i++ ) { - Graph.Edge edge = presentEdges[i]; + for( Edge edge : presentEdges ) { Predicate edgePred = EdgePredicateFactory.create( edge ); - Iterator edgeIter = g.edges( edgePred ).iterator(); + Iterator< ? > edgeIter = g.edges( edgePred ).iterator(); assertTrue( edgeIter.hasNext() ); assertNotNull( edgeIter.next() ); } - for( int i = 0; i < notPresentEdges.length; i++ ) { - Graph.Edge edge = notPresentEdges[i]; + for( Edge edge : notPresentEdges ) { Predicate edgePred = EdgePredicateFactory.create( edge ); - Iterator edgeIter = g.edges( edgePred ).iterator(); + Iterator< ? > edgeIter = g.edges( edgePred ).iterator(); assertFalse( edgeIter.hasNext() ); } } - + @Test public void testTraverser() { int totalCount = 0; int selfCount = 0; - HashSet edges = new HashSet(); - Iterator nodeIter = g.nodes( null ).iterator(); - while( nodeIter.hasNext() ) { - Object node = nodeIter.next(); + HashSet< Edge > edges = new HashSet< Edge >(); + for( Object node : g.nodes( null ) ) { Traverser t = g.traverser( node, null ); edges.clear(); @@ -645,13 +597,13 @@ assertTrue( g.containsNode( adjNode ) ); assertTrue( nodes.contains( adjNode ) ); - Graph.Edge edge = t.getEdge(); + Edge edge = t.getEdge(); if( isSelfEdge( edge ) ) { selfCount++; } edges.add( edge ); Object tail = edge.getTail(); - if( (node == null) ? (tail == null) : node.equals( tail ) ) { + if( ( node == null ) ? ( tail == null ) : node.equals( tail ) ) { testEdge( edge, node, adjNode ); } else { testEdge( edge, adjNode, node ); @@ -671,16 +623,19 @@ assertEquals( totalCount + selfCount, 2 * realEdges.size() ); testNotPresentNodes( new Closure() - { public void execute( Object object ) { g.traverser( object, null ); } } ); + { + public void execute( Object object ) + { + g.traverser( object, null ); + } + } ); } - + @Test public void testOutTraverser() { - HashSet edges = new HashSet(); - Iterator nodeIter = g.nodes( null ).iterator(); - while( nodeIter.hasNext() ) { - Object node = nodeIter.next(); + HashSet< Edge > edges = new HashSet< Edge >(); + for( Object node : g.nodes( null ) ) { Traverser t = g.traverser( node, GraphUtils.OUT_TRAVERSER_PREDICATE ); edges.clear(); @@ -693,7 +648,7 @@ assertTrue( g.containsNode( adjNode ) ); assertTrue( nodes.contains( adjNode ) ); - Graph.Edge edge = t.getEdge(); + Edge edge = t.getEdge(); edges.add( edge ); testEdge( edge, node, adjNode ); } @@ -709,16 +664,19 @@ } testNotPresentNodes( new Closure() - { public void execute( Object object ) { g.traverser( object, GraphUtils.OUT_TRAVERSER_PREDICATE ); } } ); + { + public void execute( Object object ) + { + g.traverser( object, GraphUtils.OUT_TRAVERSER_PREDICATE ); + } + } ); } - + @Test public void testInTraverser() { - HashSet edges = new HashSet(); - Iterator nodeIter = g.nodes( null ).iterator(); - while( nodeIter.hasNext() ) { - Object node = nodeIter.next(); + HashSet< Edge > edges = new HashSet< Edge >(); + for( Object node : g.nodes( null ) ) { Traverser t = g.traverser( node, GraphUtils.IN_TRAVERSER_PREDICATE ); edges.clear(); @@ -731,7 +689,7 @@ assertTrue( g.containsNode( adjNode ) ); assertTrue( nodes.contains( adjNode ) ); - Graph.Edge edge = t.getEdge(); + Edge edge = t.getEdge(); edges.add( edge ); testEdge( edge, adjNode, node ); } @@ -747,10 +705,15 @@ } testNotPresentNodes( new Closure() - { public void execute( Object object ) { g.traverser( object, GraphUtils.IN_TRAVERSER_PREDICATE ); } } ); + { + public void execute( Object object ) + { + g.traverser( object, GraphUtils.IN_TRAVERSER_PREDICATE ); + } + } ); } - + @Test public void testSerialization() throws IOException { @@ -763,23 +726,16 @@ //////////////////////////////////////// - // Protected classes and interfaces + // Private classes //////////////////////////////////////// - - protected interface BinaryClosure + private static class OrderedIntPair extends OrderedPair { - public void execute( Object a, Object b ); - } - - - protected static class OrderedIntPair extends OrderedPair - { private static final long serialVersionUID = 1L; public OrderedIntPair( int first, int second ) { - super( new Integer( first ), new Integer( second ) ); + super( Integer.valueOf( first ), Integer.valueOf( second ) ); } } Modified: trunk/plexus-graph/src/test/java/com/phoenixst/plexus/util/SingletonGraphTest.java =================================================================== --- trunk/plexus-graph/src/test/java/com/phoenixst/plexus/util/SingletonGraphTest.java 2010-09-15 16:09:13 UTC (rev 883) +++ trunk/plexus-graph/src/test/java/com/phoenixst/plexus/util/SingletonGraphTest.java 2010-09-15 21:00:23 UTC (rev 884) @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) 1994-2006 by Phoenix Software Technologists, + * Copyright (C) 1994-2010 by Phoenix Software Technologists, * Inc. and others. All rights reserved. * * THIS PROGRAM AND DOCUMENTATION IS PROVIDED UNDER THE TERMS OF THE @@ -15,64 +15,48 @@ package com.phoenixst.plexus.util; -import junit.framework.*; +import org.junit.Before; -import com.phoenixst.plexus.*; +import com.phoenixst.plexus.AbstractGraphTest; +import com.phoenixst.plexus.SimpleObjectEdge; /** - * A {@link SingletonGraph} tester. + * A {@link SingletonGraph} tester. * - * @author Ray A. Conner + * @author rconner */ -public class SingletonGraphTest extends AbstractGraphTest +public abstract class SingletonGraphTest extends AbstractGraphTest { - - private final Object node; - - - public SingletonGraphTest( Object node ) + void setNode( Object node ) { - super(); - this.node = node; - } - - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - setUp( new SingletonGraph( node ) ); - presentNodes = new Object[] { node }; + setGraph( new SingletonGraph( node ) ); + setPresentNodes( node ); if( node == null ) { - notPresentNodes = new Object[] { new Object() }; + setNotPresentNodes( new Object() ); } else { - notPresentNodes = new Object[] { null, new Object() }; + setNotPresentNodes( null, new Object() ); } - notPresentEdges = new Graph.Edge[] { new SimpleObjectEdge( null, node, node, false ), - new SimpleObjectEdge( null, node, node, true ) }; + setNotPresentEdges( new SimpleObjectEdge( null, node, node, false ), + new SimpleObjectEdge( null, node, node, true ) ); } - private static Test suite( Object node ) + public static class TestNull extends SingletonGraphTest { - return new SingletonGraphTest( node ).getInstanceSuite( "Singleton[" + node + "]" ); + @Before + public void init() + { + setNode( null ); + } } - - public static Test suite() + public static class TestInteger extends SingletonGraphTest { - TestSuite suite = new TestSuite( "SingletonGraph Tests" ); - suite.addTest( suite( null ) ); - suite.addTest( suite( new Integer( 5 ) ) ); - return suite; + @Before + public void init() + { + setNode( Integer.valueOf( 5 ) ); + } } - - - public static void main( String[] args ) - { - junit.textui.TestRunner.run( suite() ); - } - } Added: trunk/plexus-graph/src/test/java/com/phoenixst/plexus/util/UtilSuite.java =================================================================== --- trunk/plexus-graph/src/test/java/com/phoenixst/plexus/util/UtilSuite.java (rev 0) +++ trunk/plexus-graph/src/test/java/com/phoenixst/plexus/util/UtilSuite.java 2010-09-15 21:00:23 UTC (rev 884) @@ -0,0 +1,34 @@ +/* + * $Id$ + * + * Copyright (C) 1994-2010 by Phoenix Software Technologists, + * Inc. and others. All rights reserved. + * + * THIS PROGRAM AND DOCUMENTATION IS PROVIDED UNDER THE TERMS OF THE + * COMMON PUBLIC LICENSE ("AGREEMENT") WHICH ACCOMPANIES IT. ANY + * USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES + * RECIPIENT'S ACCEPTANCE OF THE AGREEMENT. + * + * The license text can also be found at + * http://opensource.org/licenses/cpl.php + */ + +package com.phoenixst.plexus.util; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + + +/** + * Suite for all the tests in this package. + * + * @author rconner + */ +@RunWith( Suite.class ) +...@Su...iteClasses( { + SingletonGraphTest.TestNull.class, + SingletonGraphTest.TestInteger.class } ) +public class UtilSuite +{ + // This class merely exists to hold the JUnit annotations. +} Property changes on: trunk/plexus-graph/src/test/java/com/phoenixst/plexus/util/UtilSuite.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Date Revision Id Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |