package nodebox.node;
import org.junit.Test;
import static nodebox.util.Assertions.assertResultsEqual;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class ConnectionTest {
public static final Node number42Node = Node.ROOT
.withName("number42")
.withFunction("math/number")
.withInputAdded(Port.floatPort("number", 42));
public static final Node number5Node = Node.ROOT
.withName("number5")
.withFunction("math/number")
.withInputAdded(Port.floatPort("number", 5));
public static final Node addNode = Node.ROOT
.withName("add")
.withFunction("math/add")
.withInputAdded(Port.floatPort("v1", 0))
.withInputAdded(Port.floatPort("v2", 0));
public static final Node net = Node.NETWORK
.withChildAdded(number42Node)
.withChildAdded(number5Node)
.withChildAdded(addNode)
.withRenderedChildName("add");
@Test
public void testBasicConnection() {
Node n = net;
assertFalse(n.isConnected("number42"));
assertFalse(n.isConnected("add"));
n = n.connect("number42", "add", "v1");
assertTrue(n.isConnected("number42"));
assertTrue(n.isConnected("add"));
n = n.connect("number5", "add", "v2");
assertTrue(n.isConnected("number5"));
}
@Test
public void testReplaceConnection() {
Node n = net;
n = n.connect("number42", "add", "v1");
assertTrue(n.isConnected("number42"));
n = n.connect("number5", "add", "v1");
assertFalse(n.isConnected("number42"));
}
@Test
public void testExecute() {
Node n = net
.connect("number42", "add", "v1")
.connect("number5", "add", "v2");
assertResultsEqual(n, 47.0);
}
public void disabledTestCycles() {
// TODO Infinite loops are not supported anymore!
// Create an infinite loop.
Node n = net
.connect("number42", "add", "v1")
.connect("add", "number42", "number");
assertResultsEqual(n, 42.0);
}
}