private void tradingStatusAsyncRequestSample() { final SocketRequest<DeepAsyncResponse<TradingStatus>> request = new TradingStatusAsyncRequestBuilder() .withSymbol("AAPL") .build(); iexTradingClient.subscribe(request, TRADING_STATUS_CONSUMER); }
@Override public SocketRequest<DeepAsyncResponse<TradingStatus>> build() { return SocketRequestBuilder.<DeepAsyncResponse<TradingStatus>>builder() .withPath("/deep") .withResponse(new TypeReference<DeepAsyncResponse<TradingStatus>>() {}) .withParam(getDeepParam()) .build(); }
@Test public void shouldSuccessfullyCreateRequest() { final String symbol = "IBM"; final SocketRequest<DeepAsyncResponse<TradingStatus>> request = new TradingStatusAsyncRequestBuilder() .withSymbol(symbol) .build(); assertThat(request.getPath()).isEqualTo("/deep"); final DeepAsyncRequest param = (DeepAsyncRequest) request.getParam(); assertThat(param.getSymbols()).containsExactly(symbol); assertThat(param.getChannels()).containsExactly(DeepChannel.TRADING_STATUS); }
@Test public void tradingStatusAsyncServiceTest() { stubFor(socket) .withResponseFile("/marketdata/TradingStatusAsyncResponse.json"); final Consumer<DeepAsyncResponse<TradingStatus>> consumer = spy(Consumer.class); iexTradingClient.subscribe(new TradingStatusAsyncRequestBuilder() .withSymbol("AAPL") .build(), consumer); verify(consumer).accept(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); }