private void deepAsyncRequestSample() { final SocketRequest<DeepAsyncResponse<DeepResult>> request = new DeepAsyncRequestBuilder() .addChannel(DeepChannel.DEEP) .withSymbol("AAPL") .build(); iexTradingClient.subscribe(request, DEEP_ASYNC_RESPONSE_CONSUMER); }
@Override public SocketRequest<DeepAsyncResponse<DeepResult>> build() { return SocketRequestBuilder.<DeepAsyncResponse<DeepResult>>builder() .withPath("/deep") .withResponse(new TypeReference<DeepAsyncResponse<DeepResult>>() {}) .withParam(getDeepParam()) .build(); } }
private void deepAsyncRequestWithAdapterSample() { final SocketRequest<DeepAsyncResponse<DeepResult>> request = new DeepAsyncRequestBuilder() .addChannel(DeepChannel.DEEP) .withSymbol("AAPL") .build(); iexTradingClient.subscribe(request, new SampleDeepConsumerAdapter()); }
@Test public void shouldSuccessfullyCreateRequest() { final String symbol = "IBM"; final SocketRequest<DeepAsyncResponse<DeepResult>> request = new DeepAsyncRequestBuilder() .addChannel(DeepChannel.TRADES) .addChannel(DeepChannel.AUCTION) .withSymbol(symbol) .build(); assertThat(request.getPath()).isEqualTo("/deep"); final DeepAsyncRequest param = (DeepAsyncRequest) request.getParam(); assertThat(param.getSymbols()).containsExactly(symbol); assertThat(param.getChannels()).containsExactlyInAnyOrder(DeepChannel.TRADES, DeepChannel.AUCTION); }
@Test public void deepAsyncServiceTest() { stubFor(socket) .withResponseFile("/marketdata/TradingStatusAsyncResponse.json"); final DeepConsumerAdapter consumer = spy(DeepConsumerAdapter.class); iexTradingClient.subscribe(new DeepAsyncRequestBuilder() .addChannel(DeepChannel.TRADING_STATUS) .withSymbol("AAPL") .build(), consumer); verify(consumer).acceptTradingStatus(dataCaptor.capture()); final DeepAsyncResponse<TradingStatus> response = dataCaptor.getValue(); assertThat(response.getSymbol()).isEqualTo("AAPL"); assertThat(response.getMessageType()).isEqualTo(DeepMessageType.TRADING_STATUS); assertThat(response.getSeq()).isEqualTo(1L); final TradingStatus data = response.getData(); assertThat(data.getStatus()).isEqualTo(TradingStatusType.TRADING_ON_IEX); assertThat(data.getReason()).isEqualTo(TradingStatusReasonType.UNKNOWN); assertThat(data.getTimestamp()).isEqualTo(1529666486387L); } }