package models;
import static org.junit.Assert.*;
import java.awt.Point;
import org.junit.Test;
import de.danielsenff.imageflow.models.SelectionList;
import de.danielsenff.imageflow.models.connection.Connection;
import de.danielsenff.imageflow.models.connection.ConnectionList;
import de.danielsenff.imageflow.models.connection.ProxyInput;
import de.danielsenff.imageflow.models.unit.GroupUnitElement;
import de.danielsenff.imageflow.models.unit.UnitElement;
import de.danielsenff.imageflow.models.unit.UnitList;
public class GroupUnitTests {
private GroupUnitElement createGroupUnit() {
/*
* init workspace
*/
SelectionList selections = new SelectionList();
UnitList allUnits = new UnitList();
ConnectionList connList = allUnits.getConnections();
/*
* init workflow
*/
UnitElement unit1 = UnitFactoryExt.createAddNoiseUnit();
UnitElement unit2 = UnitFactoryExt.createAddNoiseUnit();
UnitElement unit3 = UnitFactoryExt.createAddNoiseUnit();
UnitElement unit4 = UnitFactoryExt.createAddNoiseUnit();
Connection unit1unit2 = new Connection(unit1, 1, unit2, 1);
connList.add(unit1unit2);
Connection unit2unit3 = new Connection(unit2, 1, unit3, 1);
connList.add(unit2unit3);
Connection unit3unit4 = new Connection(unit3, 1, unit4, 1);
connList.add(unit3unit4);
selections.add(unit2);
selections.add(unit3);
/*
* create group
*/
GroupUnitElement group = new GroupUnitElement(new Point(55,55), "groupunit", selections, allUnits);
return group;
}
@Test public void testGroupCreation() {
GroupUnitElement group = createGroupUnit();
assertEquals("nr in group", 2, group.getGroupSize());
}
/**
* a Group is destroyed and the single parts are restored
*/
@Test public void testGroupExplosion() {
GroupUnitElement group = createGroupUnit();
}
public void testGroupAttachedUnits() {
// TODO test that units are directly connected to each other
}
@Test public void testProxyInputs() {
UnitElement unit1 = UnitFactoryExt.createAddNoiseUnit();
UnitElement unit2 = UnitFactoryExt.createFindEdgesUnit();
UnitElement unit3 = new UnitElement("name", "imagej");
Connection conn_u1u2 = new Connection(unit1, 1, unit2, 1);
conn_u1u2.connect();
// Input input = new Input(DataTypeFactory.createInteger(), unit1, 1);
assertEquals(unit1, conn_u1u2.getFromUnit());
assertEquals(unit2, conn_u1u2.getToUnit());
assertEquals(unit2.getInput(0), conn_u1u2.getInput());
ProxyInput pInput = new ProxyInput(unit2.getInput(0), unit3, 1);
unit3.addInput(pInput);
Connection conn_u1pu2p = new Connection(unit1.getOutput(0), pInput);
conn_u1pu2p.connect();
assertEquals(unit1, conn_u1pu2p.getFromUnit());
assertEquals(unit2, conn_u1pu2p.getToUnit());
assertEquals(unit2.getInput(0), conn_u1pu2p.getInput());
}
}