/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ngmf;
import static org.junit.Assert.assertEquals;
import oms3.Compound;
import oms3.annotations.Execute;
import oms3.annotations.In;
import oms3.annotations.Out;
import org.junit.BeforeClass;
import org.junit.Test;
/**
*
* @author Olaf David
*/
public class ColabCompoundTest {
public class Op1 {
@In
public String in;
@Out
public String out1;
@Out
public String out2;
@Execute
public void execute() {
out1 = "Op1[" + in + "]";
out2 = "Op1[" + in + "]";
}
}
public class Op2 {
@In
public String in1;
@In
public String in2;
@Out
public String out = new String();
@Execute
public void execute() {
out = "Op2[" + in1 + "," + in2 + "]";
}
}
public class Op3 {
@In
public String in;
@Out
public String out;
@Execute
public void execute() {
out = "Op3[" + in + "]";
}
}
public class Op4 {
@In
public String in1;
@In
public String in2;
@Out
public String out;
@Execute
public void execute() {
String s = "Op4[" + in1 + "," + in2 + "]";
out = s;
}
}
public class Op5 {
@In
public String in;
@Out
public String out;
@Execute
public void execute() {
out = "Op5[" + in + "]";
}
}
public class C extends Compound {
@In
public String inOp1;
@In
public String inOp5;
Op1 op1 = new Op1();
Op2 op2 = new Op2();
Op3 op3 = new Op3();
Op4 op4 = new Op4();
Op5 op5 = new Op5();
public C() {
out2in(op1, "out1", op2, "in1"); // D1
// connect(op1, "out2", op2, "in2"); // ??
out2in(op1, "out1", op3, "in"); // D1
out2in(op2, "out", op4, "in1"); // D3
out2in(op1, "out2", op4, "in2"); // D2
out2in(op5, "out", op2, "in2"); // D4
in2in("inOp1", op1, "in");
in2in("inOp5", op5, "in");
}
}
@BeforeClass
public static void setUpBeforeClass() {
Compound.reload();
}
@Test
public void colab() throws Exception {
C c = new C();
c.inOp1 = "1";
c.inOp5 = "5";
c.execute();
assertEquals("Op4[Op2[Op1[1],Op5[5]],Op1[1]]", c.op4.out);
}
}