CategoryPartitionRemoveNodeMultiGraph.java

package org.graphstream.graph.implementations;

import static org.junit.Assert.assertEquals;

import org.databene.benerator.anno.Source;
import org.databene.feed4junit.Feeder;
import org.graphstream.graph.Edge;
import org.graphstream.graph.Node;
import org.graphstream.graph.implementations.MultiGraph;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;

@RunWith(Feeder.class)
public class CategoryPartitionRemoveNodeMultiGraph {

	@Rule
	public ExpectedException exception = ExpectedException.none();
	
	@Test
	@Source("csvFiles/categoryPartitionRemoveNodeMultiGraph.csv")
	public void mainTest(String idExistence, String idValue, String graphNrNodes, String graphStrictChecking, String nodeDegree){
		if(graphNrNodes.equals("0")) {
			//error
		}
		else if(graphNrNodes.equals("many")) {
			MultiGraph graph = createGraph(100);
			graph.addNode("useless");
			if(nodeDegree != "0") {
				for(int n = 1; n <+ 50; n++) {
					graph.addEdge("node"+n+"TOuseless", graph.getNode("node"+n), graph.getNode("useless"));
					graph.addEdge("uselessTOnode"+n, graph.getNode("useless"), graph.getNode("node"+n));
				}
			}
			if((idExistence == "false" || idValue == "''" || idValue == "null") && graphStrictChecking == "false") {
				assertEquals(graph.removeNode(graph.getNode("wrong")), null);
			}
			else if((idExistence == "false" || idValue == "''" || idValue == "null") && graphStrictChecking == "true") {
				//error
			}
			else if(idExistence == "true" && idValue == "correct") {
				Node removedNode = graph.removeNode(graph.getNode("useless"));
				assertEquals(removedNode.getId(), "useless");
				assertEquals(graph.getNodeCount(), 100);
				for(Node n : graph.getNodeSet()) {
					assertEquals((n.getId() != "useless"), true);
				}
				for(Edge e : graph.getEdgeSet()) {
					assertEquals((e.getNode0().getId() != "useless") && (e.getNode1().getId() != "useless"), true);
				}
			}
		}
	}
	
	public MultiGraph createGraph(int n){
		MultiGraph graph = new MultiGraph("graph");
		for(int i =0; i<n; i++){
			graph.addNode("node"+i);
		}
		return graph;
	}
	
}