X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fgraph%2FGraphTest.java;h=ceae5819a992f9a95ba927a353f471345fce974c;hb=ddd261f331280640c5b53c7128230b629ebcd268;hp=675a06bd6c1c7247c713a9b1af79fc85b40afb27;hpb=92e23e5ecf9614f2ab770a8cdedc0b21ddf1e127;p=utils diff --git a/system/general/src/test/java/org/wamblee/system/graph/GraphTest.java b/system/general/src/test/java/org/wamblee/system/graph/GraphTest.java index 675a06bd..ceae5819 100644 --- a/system/general/src/test/java/org/wamblee/system/graph/GraphTest.java +++ b/system/general/src/test/java/org/wamblee/system/graph/GraphTest.java @@ -1,12 +1,12 @@ /* * Copyright 2008 the original author or authors. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -15,17 +15,25 @@ */ package org.wamblee.system.graph; -import java.util.Arrays; -import java.util.List; - +import junit.framework.TestCase; import static org.mockito.Mockito.*; + import org.wamblee.test.AssertionUtils; +import java.util.Arrays; +import java.util.List; -import junit.framework.TestCase; +/** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision$ + */ public class GraphTest extends TestCase { - + /** + * DOCUMENT ME! + */ public void testNodeMgt() { final Graph graph = new Graph(); assertTrue(graph.getNodes().isEmpty()); @@ -42,128 +50,147 @@ public class GraphTest extends TestCase { // Empty node set. assertFalse(graph.removeNode(x)); - - Node y = new DefaultNode("y"); - graph.addNodes(Arrays.asList(new Node[] { x, y} )); + + Node y = new DefaultNode("y"); + graph.addNodes(Arrays.asList(new Node[] { x, y })); assertEquals(2, graph.getNodes().size()); - + // duplicate node - AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { - @Override - public void run() throws Exception { - graph.addNode(new DefaultNode("x")); - } - }, IllegalArgumentException.class); + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + graph.addNode(new DefaultNode("x")); + } + }, IllegalArgumentException.class); } - public void testEdgeMgt() { + /** + * DOCUMENT ME! + */ + public void testEdgeMgt() { final Graph graph = new Graph(); - final Node x = new DefaultNode("x"); - final Node y = new DefaultNode("y"); + final Node x = new DefaultNode("x"); + final Node y = new DefaultNode("y"); graph.addNode(x); graph.addNode(y); - final Edge e = new DefaultEdge(x, y); + + final Edge e = new DefaultEdge(x, y); graph.addEdge(e); assertEquals(Arrays.asList(new Edge[] { e }), graph.getEdges()); - + // duplicate edge. - AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { - @Override - public void run() throws Exception { - graph.addEdge(e); - } - }, IllegalArgumentException.class); - + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + graph.addEdge(e); + } + }, IllegalArgumentException.class); + // Remove node when edge is still present - AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { - @Override - public void run() throws Exception { - graph.removeNode(x); - } - }, IllegalArgumentException.class); - - + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + graph.removeNode(x); + } + }, IllegalArgumentException.class); + Node a = new DefaultNode("a"); graph.addNode(a); - graph.addEdges(Arrays.asList(new Edge[] { new DefaultEdge(x, a), new DefaultEdge(y, a) })); + graph.addEdges(Arrays.asList( + new Edge[] { new DefaultEdge(x, a), new DefaultEdge(y, a) })); assertEquals(3, graph.getEdges().size()); } - - public void testExtend() { - Graph graph = new Graph(); - graph.addNode(new MyNode("x", new String[] { "a", "b"})); - graph.addNode(new MyNode("y", new String[] { "b", "c"})); - graph.addNode(new MyNode("z", new String[] { "a", "c"})); + + /** + * DOCUMENT ME! + */ + public void testExtend() { + Graph graph = new Graph(); + graph.addNode(new MyNode("x", new String[] { "a", "b" })); + graph.addNode(new MyNode("y", new String[] { "b", "c" })); + graph.addNode(new MyNode("z", new String[] { "a", "c" })); graph.extend(new MyEdgeFactory()); - - List edges = graph.getEdges(); + + List edges = graph.getEdges(); assertEquals(12, edges.size()); // 2 outgoing and 2 incoming nodes. } - - public void testApplyFilter() { - Graph graph = new Graph(); + + /** + * DOCUMENT ME! + */ + public void testApplyFilter() { + Graph graph = new Graph(); graph.addNode(new DefaultNode("x")); graph.addNode(new DefaultNode("y")); graph.addNode(new DefaultNode("z")); graph.addEdge(new DefaultEdge(graph.findNode("x"), graph.findNode("y"))); graph.addEdge(new DefaultEdge(graph.findNode("y"), graph.findNode("z"))); graph.addEdge(new DefaultEdge(graph.findNode("z"), graph.findNode("x"))); - + assertEquals(3, graph.getEdges().size()); - - graph.applyFilter(new EdgeFilter() { - @Override - public boolean isViolated(Edge aEdge) { - if (aEdge.getFrom().getName().equals("x")) { - return false; + + graph.applyFilter(new EdgeFilter() { + @Override + public boolean isViolated(Edge aEdge) { + if (aEdge.getFrom().getName().equals("x")) { + return false; + } + + return true; } - return true; - } - }); - + }); + assertEquals(1, graph.getEdges().size()); assertEquals("x", graph.getEdges().get(0).getFrom().getName()); - } - - public void testFindIncomingOutgoing() { + + /** + * DOCUMENT ME! + */ + public void testFindIncomingOutgoing() { Graph graph = new Graph(); - Node x = new DefaultNode("x"); - Node y = new DefaultNode("y"); + Node x = new DefaultNode("x"); + Node y = new DefaultNode("y"); graph.addNode(x); graph.addNode(y); - Edge e = new DefaultEdge(x,y); + + Edge e = new DefaultEdge(x, y); graph.addEdge(e); - + List incoming = graph.findIncoming(x); - assertTrue(incoming.isEmpty()); + assertTrue(incoming.isEmpty()); + List outgoing = graph.findOutgoing(x); assertEquals(1, outgoing.size()); assertSame(e, outgoing.get(0)); - + incoming = graph.findIncoming(y); assertEquals(1, incoming.size()); assertSame(e, incoming.get(0)); - + outgoing = graph.findOutgoing(y); - assertTrue(outgoing.isEmpty()); + assertTrue(outgoing.isEmpty()); } - + + /** + * DOCUMENT ME! + */ public void testAccept() { - Graph graph = new Graph(); - Node x = new DefaultNode("x"); - Node y = new DefaultNode("y"); - Edge e = new DefaultEdge(x, y); + Graph graph = new Graph(); + Node x = new DefaultNode("x"); + Node y = new DefaultNode("y"); + Edge e = new DefaultEdge(x, y); graph.addNode(x); graph.addNode(y); graph.addEdge(e); - Visitor visitor = mock(Visitor.class); - + + Visitor visitor = mock(Visitor.class); + graph.accept(visitor); verify(visitor).visitNode(x); verify(visitor).visitNode(y); verify(visitor).visitEdge(e); - + verifyNoMoreInteractions(visitor); } }