summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-04-11 11:23:25 +0200
committerKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-04-11 11:23:25 +0200
commit5120f84996f8ff8d54c5c119034b9251d07bc07b (patch)
treef4bc30a1f23543904bc20865358bfa55776334ad /src/test
parente2bcbb117f2ac03196da34217671f1bc48395598 (diff)
Implement done signal in Rpc.
Clients can wait for an Rpc to complete with Rpc.await().
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/orbekk/protobuf/ProtobufFunctionalTest.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/test/java/com/orbekk/protobuf/ProtobufFunctionalTest.java b/src/test/java/com/orbekk/protobuf/ProtobufFunctionalTest.java
index a7249a1..e0757d4 100644
--- a/src/test/java/com/orbekk/protobuf/ProtobufFunctionalTest.java
+++ b/src/test/java/com/orbekk/protobuf/ProtobufFunctionalTest.java
@@ -19,6 +19,7 @@ import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicBoolean;
import org.junit.Before;
import org.junit.Ignore;
@@ -78,10 +79,10 @@ public class ProtobufFunctionalTest {
Test.Service service = Test.Service.newStub(channel);
Test.Type1 request = Test.Type1.newBuilder().build();
int count = 10000;
- final Rpc rpc = new Rpc();
final CountDownLatch stop = new CountDownLatch(count);
long startTime = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
+ final Rpc rpc = new Rpc();
service.testA(rpc, request, new RpcCallback<Type2>() {
@Override public void run(Type2 result) {
stop.countDown();
@@ -94,6 +95,22 @@ public class ProtobufFunctionalTest {
elapsedTime + ". " + count/elapsedTime*1000 + "r/s");
}
+ @org.junit.Test public void testDoneSignal() throws Exception {
+ NewRpcChannel channel = NewRpcChannel.create("localhost", serverport);
+ Test.Service service = Test.Service.newStub(channel);
+ Test.Type1 request = Test.Type1.newBuilder().build();
+
+ final AtomicBoolean callbackFinished = new AtomicBoolean(false);
+ Rpc rpc = new Rpc();
+ service.testA(rpc, request, new RpcCallback<Type2>() {
+ @Override public void run(Type2 result) {
+ callbackFinished.set(true);
+ }
+ });
+ rpc.await();
+ assertThat(callbackFinished.get(), is(true));
+ }
+
@org.junit.Test public void respondsNormally() throws Exception {
Test.Type1 request = Test.Type1.newBuilder().build();
int count = 10;