add embargoUnwrap test

This commit is contained in:
Vaci Koblizek 2020-11-09 14:32:05 +00:00
parent bac65dbf86
commit f0d4d9d75a
3 changed files with 61 additions and 13 deletions

View file

@ -66,18 +66,6 @@ class TestExtendsImpl extends Test.TestExtends2.Server {
}
}
class TestCallOrderImpl extends Test.TestCallOrder.Server {
int count = 0;
@Override
protected CompletableFuture<java.lang.Void> getCallSequence(CallContext<Test.TestCallOrder.GetCallSequenceParams.Reader, Test.TestCallOrder.GetCallSequenceResults.Builder> context) {
var result = context.getResults();
result.setN(this.count++);
return READY_NOW;
}
}
public class CapabilityTest {
@org.junit.Test

View file

@ -450,7 +450,7 @@ public class RpcTest {
var context = new TestContext(bootstrapFactory);
var client = new Test.TestMoreStuff.Client(context.connect(Test.TestSturdyRefObjectId.Tag.TEST_MORE_STUFF));
var cap = new Test.TestCallOrder.Client(new TestCallOrderImpl());
var cap = new Test.TestCallOrder.Client(new RpcTestUtil.TestCallOrderImpl());
var earlyCall = client.getCallSequenceRequest().send();
var echoRequest = client.echoRequest();
@ -536,5 +536,49 @@ public class RpcTest {
// check that the connection is still open
getCallSequence(client, 1);
}
@org.junit.Test
public void testEmbargoUnwrap() {
var context = new TestContext(bootstrapFactory);
var capSet = new Capability.CapabilityServerSet<Test.TestCallOrder.Server>();
var client = new Test.TestMoreStuff.Client(context.connect(Test.TestSturdyRefObjectId.Tag.TEST_MORE_STUFF));
var cap = capSet.add(Test.TestCallOrder.factory, new RpcTestUtil.TestCallOrderImpl());
var earlyCall = client.getCallSequenceRequest().send();
var echoRequest = client.echoRequest();
echoRequest.getParams().setCap(cap);
var echo = echoRequest.send();
var pipeline = echo.getCap();
var unwrap = capSet.getLocalServer(pipeline).thenApply(unwrapped -> {
return ((RpcTestUtil.TestCallOrderImpl)unwrapped).getCount();
});
var call0 = getCallSequence(pipeline, 0);
var call1 = getCallSequence(pipeline, 1);
earlyCall.join();
var call2 = getCallSequence(pipeline, 2);
var resolved = echo.join().getCap();
var call3 = getCallSequence(pipeline, 3);
var call4 = getCallSequence(pipeline, 4);
var call5 = getCallSequence(pipeline, 5);
Assert.assertEquals(0, call0.join().getN());
Assert.assertEquals(1, call1.join().getN());
Assert.assertEquals(2, call2.join().getN());
Assert.assertEquals(3, call3.join().getN());
Assert.assertEquals(4, call4.join().getN());
Assert.assertEquals(5, call5.join().getN());
int unwrappedAt = unwrap.join();
//Assert.assertTrue(unwrappedAt >= 3);
}
}

View file

@ -244,6 +244,22 @@ class RpcTestUtil {
}
}
static class TestCallOrderImpl extends Test.TestCallOrder.Server {
private int count = 0;
@Override
protected CompletableFuture<java.lang.Void> getCallSequence(CallContext<Test.TestCallOrder.GetCallSequenceParams.Reader, Test.TestCallOrder.GetCallSequenceResults.Builder> context) {
var result = context.getResults();
result.setN(this.count++);
return READY_NOW;
}
public int getCount() {
return this.count;
}
}
static class TestPipelineImpl extends Test.TestPipeline.Server {
final Counter callCount;