public static int initialRequestN(final Frame frame) { final FrameType type = frame.getType(); int result; if (!type.isRequestType()) { throw new AssertionError("expected request type, but saw " + type.name()); } switch (frame.getType()) { case REQUEST_RESPONSE: result = 1; break; case REQUEST_FNF: case METADATA_PUSH: result = 0; break; default: result = RequestFrameFlyweight.initialRequestN(frame.content); break; } return result; }
@Test(timeout = 2_000) public void testStreamInitialN() { Flux<Payload> stream = rule.socket.requestStream(EmptyPayload.INSTANCE); BaseSubscriber<Payload> subscriber = new BaseSubscriber<Payload>() { @Override protected void hookOnSubscribe(Subscription subscription) { // don't request here // subscription.request(3); } }; stream.subscribe(subscriber); subscriber.request(5); List<Frame> sent = rule.connection .getSent() .stream() .filter(f -> f.getType() != KEEPALIVE) .collect(Collectors.toList()); assertThat("sent frame count", sent.size(), is(1)); Frame f = sent.get(0); assertThat("initial frame", f.getType(), is(REQUEST_STREAM)); assertThat("initial request n", RequestFrameFlyweight.initialRequestN(f.content()), is(5)); }
public static int initialRequestN(final Frame frame) { final FrameType type = frame.getType(); int result; if (!type.isRequestType()) { throw new AssertionError("expected request type, but saw " + type.name()); } switch (frame.getType()) { case REQUEST_RESPONSE: result = 1; break; case REQUEST_FNF: case METADATA_PUSH: result = 0; break; default: result = RequestFrameFlyweight.initialRequestN(frame.content); break; } return result; }