package com.ojn.gexf4j.core;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
import java.util.Map;
import java.util.UUID;
import org.junit.Test;
public abstract class GraphTest {
protected abstract Graph newGraph();
@Test
public void defaultEdgeTypeValid() {
Graph g = newGraph();
for (EdgeType edgeType : EdgeType.values()) {
g.setDefaultEdgeType(edgeType);
assertThat(g.getDefaultEdgeType(), is(equalTo(edgeType)));
}
}
@Test
public void modeValid() {
Graph g = newGraph();
for (Mode gm : Mode.values()) {
g.setMode(gm);
assertThat(g.getMode(), is(equalTo(gm)));
}
}
@Test
public void createNode() {
Graph g = newGraph();
g.createNode();
}
@Test
public void createNodeId() {
Graph g = newGraph();
String id = UUID.randomUUID().toString();
Node n = g.createNode(id);
assertThat(n, is(notNullValue()));
assertThat(n.getId(), is(equalTo(id)));
assertThat(g.getNodeMap().containsKey(id), is(true));
assertThat(g.getNodeMap().get(id), is(equalTo(n)));
}
@Test(expected=IllegalArgumentException.class)
public void createNodeIdNull() {
Graph g = newGraph();
g.createNode(null);
}
@Test(expected=IllegalArgumentException.class)
public void createNodeIdBlank() {
Graph g = newGraph();
g.createNode(" ");
}
@Test(expected=IllegalArgumentException.class)
public void createNodeIdDuplicate() {
Graph g = newGraph();
String id = UUID.randomUUID().toString();
g.createNode(id);
g.createNode(id);
}
@Test
public void getNodeMap() {
Graph g = newGraph();
String id1 = UUID.randomUUID().toString();
String id2 = UUID.randomUUID().toString();
Node n1 = g.createNode(id1);
Node n2 = g.createNode(id2);
Node n3 = g.createNode();
Map<String, Node> map = g.getNodeMap();
assertThat(map.size(), is(equalTo(3)));
assertThat(map.containsKey(id1), is(true));
assertThat(map.containsKey(id2), is(true));
assertThat(map.containsValue(n1), is(true));
assertThat(map.containsValue(n2), is(true));
assertThat(map.containsValue(n3), is(true));
assertThat(map.get(id1), is(equalTo(n1)));
assertThat(map.get(id2), is(equalTo(n2)));
}
}