8000 Updated JavaClientDriver to support new tck test format. by junaidkhalid · Pull Request #357 · rsocket/rsocket-java · GitHub
[go: up one dir, main page]

Skip to content

Updated JavaClientDriver to support new tck test format. #357

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 19, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Updated JavaClientDriver to support new tck test format.
The new TCK-test format has an option to represent multiple clients.
This commit is just to update the test files and javaclientdriver to run the new files. In a later commit, I will add support for multiple clients in the rsocket-java.
  • Loading branch information
Junaid Khalid committed Jul 19, 2017
commit 4d839a4b9049c11b3e8450dd8f505e8fe9de1e87
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,14 @@ public void runTest(List<String> test, String name) throws Exception {
while (iter.hasNext()) {
String line = iter.next();
String[] args = line.split("%%");
switch (args[0]) {
if (args[0].equals("EOF")) {
handleEOF();
continue;
}
switch (args[1]) {
case "subscribe":
handleSubscribe(args);
id.add(args[2]);
id.add(args[3]);
break;
case "channel":
channelTest = true;
Expand All @@ -94,7 +98,7 @@ public void runTest(List<String> test, String name) throws Exception {
handleEchoChannel(args);
break;
case "await":
switch (args[1]) {
switch (args[2]) {
case "terminal":
handleAwaitTerminal(args);
break;
Expand All @@ -110,7 +114,7 @@ public void runTest(List<String> test, String name) throws Exception {
break;

case "assert":
switch (args[1]) {
switch (args[2]) {
case "no_error":
assertNoError(args);
break;
Expand Down Expand Up @@ -146,9 +150,6 @@ public void runTest(List<String> test, String name) throws Exception {
case "cancel":
handleCancel(args);
break;
case "EOF":
handleEOF();
break;
default:
// the default behavior is to just skip the line, so we can acommodate slight changes to the TCK
break;
Expand All @@ -167,32 +168,32 @@ public void runTest(List<String> test, String name) throws Exception {
* @param args
*/
private void handleSubscribe(String[] args) {
switch (args[1]) {
switch (args[2]) {
case "rr":
MySubscriber<Payload> rrsub = new MySubscriber<>(0L, AGENT);
payloadSubscribers.put(args[2], rrsub);
idToType.put(args[2], args[1]);
payloadSubscribers.put(args[3], rrsub);
idToType.put(args[3], args[2]);
RSocket rrclient = createClient.get();
consoleUtils.info("Sending RR with " + args[3] + " " + args[4]);
Publisher<Payload> rrpub = rrclient.requestResponse(new PayloadImpl(args[3], args[4]));
consoleUtils.info("Sending RR with " + args[4] + " " + args[5]);
Publisher<Payload> rrpub = rrclient.requestResponse(new PayloadImpl(args[4], args[5]));
rrpub.subscribe(rrsub);
break;
case "rs":
MySubscriber<Payload> rssub = new MySubscriber<>(0L, AGENT);
payloadSubscribers.put(args[2], rssub);
idToType.put(args[2], args[1]);
payloadSubscribers.put(args[3], rssub);
idToType.put(args[3], args[2]);
RSocket rsclient = createClient.get();
consoleUtils.info("Sending RS with " + args[3] + " " + args[4]);
Publisher<Payload> rspub = rsclient.requestStream(new PayloadImpl(args[3], args[4]));
consoleUtils.info("Sending RS with " + args[4] + " " + args[5]);
Publisher<Payload> rspub = rsclient.requestStream(new PayloadImpl(args[4], args[5]));
rspub.subscribe(rssub);
break;
case "fnf":
MySubscriber<Void> fnfsub = new MySubscriber<>(0L, AGENT);
fnfSubscribers.put(args[2], fnfsub);
idToType.put(args[2], args[1]);
fnfSubscribers.put(args[3], fnfsub);
idToType.put(args[3], args[2]);
RSocket fnfclient = createClient.get();
consoleUtils.info("Sending fnf with " + args[3] + " " + args[4]);
Publisher<Void> fnfpub = fnfclient.fireAndForget(new PayloadImpl(args[3], args[4]));
consoleUtils.info("Sending fnf with " + args[4] + " " + args[5]);
Publisher<Void> fnfpub = fnfclient.fireAndForget(new PayloadImpl(args[4], args[5]));
fnfpub.subscribe(fnfsub);
break;
default:
Expand All @@ -218,7 +219,7 @@ private void handleChannel(String[] args, Iterator<String> iter, String name, bo
line = iter.next();
}
// set the initial payload
Payload initialPayload = new PayloadImpl(args[1], args[2]);
Payload initialPayload = new PayloadImpl(args[2], args[3]);

// this is the subscriber that will request data from the server, like all the other test subscribers
MySubscriber<Payload> testsub = new MySubscriber<>(1L, AGENT);
Expand Down Expand Up @@ -259,7 +260,7 @@ public void subscribe(Subscriber<? super Payload> s) {
* @param args
*/
private void handleEchoChannel(String[] args) {
Payload initPayload = new PayloadImpl(args[1], args[2]);
Payload initPayload = new PayloadImpl(args[2], args[3]);
MySubscriber<Payload> testsub = new MySubscriber<>(1L, AGENT);
RSocket client = createClient.get();
Publisher<Payload> pub =
Expand All @@ -278,7 +279,7 @@ public void subscribe(Subscriber<? super Payload> s) {

private void handleAwaitTerminal(String[] args) {
consoleUtils.info("Awaiting at Terminal");
String id = args[2];
String id = args[3];

assertNotEquals("Could not find subscriber with given id", idToType.get(id), null);

Expand All @@ -292,28 +293,28 @@ private void handleAwaitTerminal(String[] args) {
}

private void handleAwaitAtLeast(String[] args) {
consoleUtils.info("Awaiting at Terminal for at least " + args[3]);
consoleUtils.info("Awaiting at Terminal for at least " + args[4]);
try {
String id = args[2];
String id = args[3];
MySubscriber<Payload> sub = payloadSubscribers.get(id);
sub.awaitAtLeast(Long.parseLong(args[3]));
sub.awaitAtLeast(Long.parseLong(args[4]));
} catch (InterruptedException e) {
assertNull("interrupted ", e.getMessage());
}
}

private void handleAwaitNoEvents(String[] args) {
try {
String id = args[2];
String id = args[3];
MySubscriber<Payload> sub = payloadSubscribers.get(id);
sub.awaitNoEvents(Long.parseLong(args[3]));
sub.awaitNoEvents(Long.parseLong(args[4]));
} catch (InterruptedException e) {
assertNull("interrupted ", e.getMessage());
}
}

private void assertNoError(String[] args) {
String id = args[2];
String id = args[3];

assertNotNull("Could not find subscriber with given id", idToType.get(id));
if (idToType.get(id).equals("fnf")) {
Expand All @@ -335,7 +336,7 @@ private void assertNoError(String[] args) {

private void assertError(String[] args) {
consoleUtils.info("Checking for error");
String id = args[2];
String id = args[3];
assertNotNull("Could not find subscriber with given id", idToType.get(id));
if (idToType.get(id).equals("fnf")) {
MySubscriber<Void> sub = fnfSubscribers.get(id);
Expand All @@ -347,10 +348,10 @@ private void assertError(String[] args) {
}

private void assertReceived(String[] args) {
consoleUtils.info("Verify we received " + args[3]);
String id = args[2];
consoleUtils.info("Verify we received " + args[4]);
String id = args[3];
MySubscriber<Payload> sub = payloadSubscribers.get(id);
String[] values = args[3].split("&&");
String[] values = args[4].split("&&");
List<Tuple<String, String>> assertList = new ArrayList<>();
for (String v : values) {
String[] vals = v.split(",");
Expand All @@ -360,24 +361,24 @@ private void assertReceived(String[] args) {
}

private void assertReceivedN(String[] args) {
String id = args[2];
String id = args[3];
MySubscriber<Payload> sub = payloadSubscribers.get(id);
try {
sub.assertValueCount(Integer.parseInt(args[3]));
sub.assertValueCount(Integer.parseInt(args[4]));
} catch (Throwable ex) {
assertNull(ex.getMessage());
}
}

private void assertReceivedAtLeast(String[] args) {
String id = args[2];
String id = args[3];
MySubscriber<Payload> sub = payloadSubscribers.get(id);
sub.assertReceivedAtLeast(Integer.parseInt(args[3]));
sub.assertReceivedAtLeast(Integer.parseInt(args[4]));
}

private void assertCompleted(String[] args) {
consoleUtils.info("Handling onComplete");
String id = args[2];
String id = args[3];

assertNotNull("Could not find subscriber with given id", idToType.get(id));
if (idToType.get(id).equals("fnf")) {
Expand All @@ -399,7 +400,7 @@ private void assertCompleted(String[] args) {

private void assertNoCompleted(String[] args) {
consoleUtils.info("Handling NO onComplete");
String id = args[2];
String id = args[3];

assertNotNull("Could not find subscriber with given id", idToType.get(id));
if (idToType.get(id).equals("fnf")) {
Expand All @@ -420,14 +421,14 @@ private void assertNoCompleted(String[] args) {
}

private void assertCancelled(String[] args) {
String id = args[2];
String id = args[3];
MySubscriber<Payload> sub = payloadSubscribers.get(id);
assertTrue(sub.isCancelled());
}

private void handleRequest(String[] args) {
Long num = Long.parseLong(args[1]);
String id = args[2];
Long num = Long.parseLong(args[2]);
String id = args[3];

assertNotNull("Could not find subscriber with given id", idToType.get(id));
if (idToType.get(id).equals("fnf")) {
Expand All @@ -442,14 +443,14 @@ private void handleRequest(String[] args) {
}

private void handleTake(String[] args) {
String id = args[2];
Long num = Long.parseLong(args[1]);
String id = args[3];
Long num = Long.parseLong(args[2]);
MySubscriber<Payload> sub = payloadSubscribers.get(id);
sub.take(num);
}

private void handleCancel(String[] args) {
String id = args[1];
String id = args[2];
MySubscriber<Payload> sub = payloadSubscribers.get(id);
sub.cancel();
}
Expand Down
20 changes: 10 additions & 10 deletions rsocket-tck-drivers/src/test/resources/clientFireAndForgetTests.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
!
name%%fireAndForget2
subscribe%%fnf%%22b84540-f916-4f7f-9211-12e235e30225%%c%%d
request%%1%%22b84540-f916-4f7f-9211-12e235e30225
await%%terminal%%22b84540-f916-4f7f-9211-12e235e30225
assert%%no_error%%22b84540-f916-4f7f-9211-12e235e30225
assert%%completed%%22b84540-f916-4f7f-9211-12e235e30225
c0%%subscribe%%fnf%%43%%c%%d
c0%%request%%1%%43
c0%%await%%terminal%%43
c0%%assert%%no_error%%43
c0%%assert%%completed%%43
!
name%%fireAndForget
subscribe%%fnf%%01a1ba74-cbd2-4c51-a759-a276b8051ca7%%a%%b
request%%1%%01a1ba74-cbd2-4c51-a759-a276b8051ca7
await%%terminal%%01a1ba74-cbd2-4c51-a759-a276b8051ca7
assert%%no_error%%01a1ba74-cbd2-4c51-a759-a276b8051ca7
assert%%completed%%01a1ba74-cbd2-4c51-a759-a276b8051ca7
c0%%subscribe%%fnf%%44%%a%%b
c0%%request%%1%%44
c0%%await%%terminal%%44
c0%%assert%%no_error%%44
c0%%assert%%completed%%44
EOF
Loading
0