summaryrefslogtreecommitdiffstats
path: root/sandbox/wjaniszewski/binding-erlang-runtime/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ReferenceServiceTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/wjaniszewski/binding-erlang-runtime/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ReferenceServiceTestCase.java')
-rw-r--r--sandbox/wjaniszewski/binding-erlang-runtime/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ReferenceServiceTestCase.java139
1 files changed, 110 insertions, 29 deletions
diff --git a/sandbox/wjaniszewski/binding-erlang-runtime/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ReferenceServiceTestCase.java b/sandbox/wjaniszewski/binding-erlang-runtime/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ReferenceServiceTestCase.java
index 34efb04812..2312c5ebea 100644
--- a/sandbox/wjaniszewski/binding-erlang-runtime/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ReferenceServiceTestCase.java
+++ b/sandbox/wjaniszewski/binding-erlang-runtime/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ReferenceServiceTestCase.java
@@ -36,15 +36,21 @@ import org.junit.runner.RunWith;
import org.osoa.sca.ServiceRuntimeException;
import com.ericsson.otp.erlang.OtpErlangAtom;
+import com.ericsson.otp.erlang.OtpErlangBoolean;
import com.ericsson.otp.erlang.OtpErlangDouble;
+import com.ericsson.otp.erlang.OtpErlangInt;
import com.ericsson.otp.erlang.OtpErlangList;
import com.ericsson.otp.erlang.OtpErlangLong;
+import com.ericsson.otp.erlang.OtpErlangObject;
import com.ericsson.otp.erlang.OtpErlangString;
import com.ericsson.otp.erlang.OtpErlangTuple;
import com.ericsson.otp.erlang.OtpMbox;
import com.ericsson.otp.erlang.OtpNode;
-//this test runner will ignore tests if epmd is not available
+/**
+ * Test is annotated with test runner, which will ignore tests if epmd is not available
+ * @version $Rev$ $Date$
+ */
@RunWith(IgnorableRunner.class)
public class ReferenceServiceTestCase {
@@ -53,8 +59,10 @@ public class ReferenceServiceTestCase {
private static MboxInterface mboxReference;
private static ServiceInterface moduleReference;
private static ServiceInterface clonedModuleReference;
- private static OtpNode node;
- private static OtpMbox mbox;
+ private static OtpNode serNode;
+ private static OtpMbox serMbox;
+ private static OtpNode refNode;
+ private static OtpMbox refMbox;
private static Process epmdProcess;
@BeforeClass
@@ -69,8 +77,10 @@ public class ReferenceServiceTestCase {
mboxReference = component.getMboxReference();
moduleReference = component.getModuleReference();
clonedModuleReference = component.getClonedModuleReference();
- node = new OtpNode("MboxServer");
- mbox = node.createMbox("sendArgs");
+ serNode = new OtpNode("MboxServer");
+ serMbox = serNode.createMbox("sendArgs");
+ refNode = new OtpNode("MboxClient");
+ refMbox = refNode.createMbox("connector_to_SCA_mbox");
} catch (IOException e) {
System.out.println("Problem executing " + EPMD_COMMAND + ": "
+ e.getLocalizedMessage() + ". Tests will be IGNORED.");
@@ -100,7 +110,7 @@ public class ReferenceServiceTestCase {
public void testStrings() throws Exception {
String strArg = "Test message";
String strResult = "OK";
- MboxListener mboxListener = new MboxListener(mbox, strResult);
+ MboxListener mboxListener = new MboxListener(serMbox, strResult);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
String testResult = mboxReference.sendArgs(strArg);
@@ -118,7 +128,7 @@ public class ReferenceServiceTestCase {
public void testBooleans() throws Exception {
boolean booleanArg = true;
boolean booleanResult = false;
- MboxListener mboxListener = new MboxListener(mbox, booleanResult);
+ MboxListener mboxListener = new MboxListener(serMbox, booleanResult);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
boolean testResult = mboxReference.sendArgs(booleanArg);
@@ -136,7 +146,7 @@ public class ReferenceServiceTestCase {
public void testFloats() throws Exception {
float floatArg = 1.0f;
float floatResult = 2.0f;
- MboxListener mboxListener = new MboxListener(mbox, floatResult);
+ MboxListener mboxListener = new MboxListener(serMbox, floatResult);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
float testResult = mboxReference.sendArgs(floatArg);
@@ -154,7 +164,7 @@ public class ReferenceServiceTestCase {
public void testDoubles() throws Exception {
double doubleArg = 1.0f;
double doubleResult = 2.0f;
- MboxListener mboxListener = new MboxListener(mbox, doubleResult);
+ MboxListener mboxListener = new MboxListener(serMbox, doubleResult);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
double testResult = mboxReference.sendArgs(doubleArg);
@@ -172,7 +182,7 @@ public class ReferenceServiceTestCase {
public void testLongs() throws Exception {
long longArg = 1;
long longResult = 2;
- MboxListener mboxListener = new MboxListener(mbox, longResult);
+ MboxListener mboxListener = new MboxListener(serMbox, longResult);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
long testResult = mboxReference.sendArgs(longArg);
@@ -190,7 +200,7 @@ public class ReferenceServiceTestCase {
public void testInts() throws Exception {
int intArg = 1;
int intResult = 2;
- MboxListener mboxListener = new MboxListener(mbox, intResult);
+ MboxListener mboxListener = new MboxListener(serMbox, intResult);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
int testResult = mboxReference.sendArgs(intArg);
@@ -208,7 +218,7 @@ public class ReferenceServiceTestCase {
public void testChars() throws Exception {
char charArg = 1;
char charResult = 2;
- MboxListener mboxListener = new MboxListener(mbox, charResult);
+ MboxListener mboxListener = new MboxListener(serMbox, charResult);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
char testResult = mboxReference.sendArgs(charArg);
@@ -226,7 +236,7 @@ public class ReferenceServiceTestCase {
public void testShorts() throws Exception {
short shortArg = 1;
short shortResult = 2;
- MboxListener mboxListener = new MboxListener(mbox, shortResult);
+ MboxListener mboxListener = new MboxListener(serMbox, shortResult);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
short testResult = mboxReference.sendArgs(shortArg);
@@ -244,7 +254,7 @@ public class ReferenceServiceTestCase {
public void testBytes() throws Exception {
byte byteArg = 1;
byte byteResult = 2;
- MboxListener mboxListener = new MboxListener(mbox, byteResult);
+ MboxListener mboxListener = new MboxListener(serMbox, byteResult);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
byte testResult = mboxReference.sendArgs(byteArg);
@@ -260,7 +270,7 @@ public class ReferenceServiceTestCase {
*/
@Test(timeout = 1000)
public void testMultipleArguments() throws Exception {
- MboxListener mboxListener = new MboxListener(mbox, true);
+ MboxListener mboxListener = new MboxListener(serMbox, true);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
String testString = "TupleString";
@@ -285,7 +295,7 @@ public class ReferenceServiceTestCase {
tupleResult.arg1.arg2 = "Tuple inside tuple";
tupleResult.arg2 = "Tuple!";
tupleResult.arg3 = true;
- MboxListener mboxListener = new MboxListener(mbox, tupleResult);
+ MboxListener mboxListener = new MboxListener(serMbox, tupleResult);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
StructuredTuple testArg = new StructuredTuple();
@@ -317,7 +327,7 @@ public class ReferenceServiceTestCase {
@Test(timeout = 1000)
public void testLists() throws Exception {
String[] testArg = new String[] { "One", "Two", "Three" };
- MboxListener mboxListener = new MboxListener(mbox, testArg);
+ MboxListener mboxListener = new MboxListener(serMbox, testArg);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
String[] testResult = mboxReference.sendArgs(testArg);
@@ -342,7 +352,7 @@ public class ReferenceServiceTestCase {
public void testMultiDimLists() throws Exception {
String[][] testArg = new String[][] { { "One", "Two" },
{ "Three", "Four", "Five" }, { "Six" } };
- MboxListener mboxListener = new MboxListener(mbox, testArg);
+ MboxListener mboxListener = new MboxListener(serMbox, testArg);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
String[][] testResult = mboxReference.sendArgs(testArg);
@@ -372,7 +382,7 @@ public class ReferenceServiceTestCase {
public void typeMismatch() throws Exception {
try {
StructuredTuple arg = new StructuredTuple();
- MboxListener mboxListener = new MboxListener(mbox, true);
+ MboxListener mboxListener = new MboxListener(serMbox, true);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
mboxReference.sendArgs(arg);
@@ -383,7 +393,7 @@ public class ReferenceServiceTestCase {
try {
String[] arg = new String[] { "test" };
- MboxListener mboxListener = new MboxListener(mbox, true);
+ MboxListener mboxListener = new MboxListener(serMbox, true);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
mboxReference.sendArgs(arg);
@@ -394,7 +404,7 @@ public class ReferenceServiceTestCase {
try {
long arg = 1;
- MboxListener mboxListener = new MboxListener(mbox, true);
+ MboxListener mboxListener = new MboxListener(serMbox, true);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
mboxReference.sendArgs(arg);
@@ -405,7 +415,7 @@ public class ReferenceServiceTestCase {
try {
int arg = 1;
- MboxListener mboxListener = new MboxListener(mbox, true);
+ MboxListener mboxListener = new MboxListener(serMbox, true);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
mboxReference.sendArgs(arg);
@@ -416,7 +426,7 @@ public class ReferenceServiceTestCase {
try {
short arg = 1;
- MboxListener mboxListener = new MboxListener(mbox, true);
+ MboxListener mboxListener = new MboxListener(serMbox, true);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
mboxReference.sendArgs(arg);
@@ -427,7 +437,7 @@ public class ReferenceServiceTestCase {
try {
char arg = 1;
- MboxListener mboxListener = new MboxListener(mbox, true);
+ MboxListener mboxListener = new MboxListener(serMbox, true);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
mboxReference.sendArgs(arg);
@@ -438,7 +448,7 @@ public class ReferenceServiceTestCase {
try {
byte arg = 1;
- MboxListener mboxListener = new MboxListener(mbox, true);
+ MboxListener mboxListener = new MboxListener(serMbox, true);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
mboxReference.sendArgs(arg);
@@ -449,7 +459,7 @@ public class ReferenceServiceTestCase {
try {
double arg = 1;
- MboxListener mboxListener = new MboxListener(mbox, true);
+ MboxListener mboxListener = new MboxListener(serMbox, true);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
mboxReference.sendArgs(arg);
@@ -460,7 +470,7 @@ public class ReferenceServiceTestCase {
try {
float arg = 1;
- MboxListener mboxListener = new MboxListener(mbox, true);
+ MboxListener mboxListener = new MboxListener(serMbox, true);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
mboxReference.sendArgs(arg);
@@ -471,7 +481,7 @@ public class ReferenceServiceTestCase {
try {
String arg = "1";
- MboxListener mboxListener = new MboxListener(mbox, true);
+ MboxListener mboxListener = new MboxListener(serMbox, true);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
mboxReference.sendArgs(arg);
@@ -482,7 +492,7 @@ public class ReferenceServiceTestCase {
try {
boolean arg = true;
- MboxListener mboxListener = new MboxListener(mbox, 1);
+ MboxListener mboxListener = new MboxListener(serMbox, 1);
Thread mboxThread = new Thread(mboxListener);
mboxThread.start();
mboxReference.sendArgs(arg);
@@ -534,6 +544,16 @@ public class ReferenceServiceTestCase {
}
/**
+ * Tests RPC with no result
+ *
+ * @throws Exception
+ */
+ @Test(timeout = 1000)
+ public void testRPCWithVoidResult() throws Exception {
+ moduleReference.doNothing();
+ }
+
+ /**
* Tests handling requests pointing to unknown functions
*
* @throws Exception
@@ -603,4 +623,65 @@ public class ReferenceServiceTestCase {
}
}
+ /**
+ * Tests mbox with retrieving and answering with basic arguments
+ *
+ * @throws Exception
+ */
+ @Test(timeout = 1000)
+ public void testMbox() throws Exception {
+ OtpErlangObject[] args = new OtpErlangObject[2];
+ args[0] = new OtpErlangString("world");
+ args[1] = new OtpErlangString("!");
+ OtpErlangTuple tuple = new OtpErlangTuple(args);
+ refMbox.send("sayHello", "RPCServer", tuple);
+ OtpErlangString result = (OtpErlangString) refMbox.receiveMsg()
+ .getMsg();
+ assertEquals("Hello world !", result.stringValue());
+ }
+
+ /**
+ * Tests service mbox receiving complex message
+ *
+ * @throws Exception
+ */
+ @Test(timeout = 1000)
+ public void testMboxWithComplexArgs() throws Exception {
+ int arg1 = 1;
+ String arg2 = "arg2";
+ String arg3 = "arg3";
+ boolean arg4 = true;
+
+ OtpErlangObject[] smallTupleContent = new OtpErlangObject[2];
+ smallTupleContent[0] = new OtpErlangInt(arg1);
+ smallTupleContent[1] = new OtpErlangString(arg2);
+ OtpErlangTuple smallTuple = new OtpErlangTuple(smallTupleContent);
+ OtpErlangObject[] structuredTupleContent = new OtpErlangObject[3];
+ structuredTupleContent[0] = smallTuple;
+ structuredTupleContent[1] = new OtpErlangString(arg3);
+ structuredTupleContent[2] = new OtpErlangBoolean(arg4);
+ OtpErlangTuple structuredTuple = new OtpErlangTuple(
+ structuredTupleContent);
+ OtpErlangObject[] secondArg = new OtpErlangObject[2];
+ secondArg[0] = new OtpErlangString("in");
+ secondArg[1] = new OtpErlangString("array");
+ OtpErlangList list = new OtpErlangList(secondArg);
+ OtpErlangObject[] argsContent = new OtpErlangObject[2];
+ argsContent[0] = structuredTuple;
+ argsContent[1] = list;
+ OtpErlangTuple args = new OtpErlangTuple(argsContent);
+ refMbox.send("passComplexArgs", "RPCServer", args);
+ OtpErlangObject result = refMbox.receiveMsg().getMsg();
+ assertEquals(arg1,
+ ((OtpErlangLong) ((OtpErlangTuple) ((OtpErlangTuple) result)
+ .elementAt(0)).elementAt(0)).intValue());
+ assertEquals(arg2,
+ ((OtpErlangString) ((OtpErlangTuple) ((OtpErlangTuple) result)
+ .elementAt(0)).elementAt(1)).stringValue());
+ assertEquals(arg3, ((OtpErlangString) ((OtpErlangTuple) result)
+ .elementAt(1)).stringValue());
+ assertEquals(arg4, ((OtpErlangAtom) ((OtpErlangTuple) result)
+ .elementAt(2)).booleanValue());
+ }
+
}