private void lastAsyncRequestSample() { final SocketRequest<LastTrade> request = new LastAsyncRequestBuilder() .withSymbol("AAPL") .build(); iexTradingClient.subscribe(request, LAST_CONSUMER); }
@Test public void shouldSuccessfullyCreateAsyncRequestWithAllSymbols() { final SocketRequest<LastTrade> request = new LastAsyncRequestBuilder() .withAllSymbols() .build(); assertThat(request.getParam()).isEqualTo("firehose"); }
@Test public void shouldSuccessfullyCreateAsyncRequestWithMultipleSymbols() { final String ibmSymbol = "ibm"; final String aaplSymbol = "aapl"; final SocketRequest<LastTrade> request = new LastAsyncRequestBuilder() .withSymbols(ibmSymbol, aaplSymbol) .build(); final String param = String.valueOf(request.getParam()); assertThat(param).containsSequence(ibmSymbol).containsSequence(aaplSymbol); }
@Override public SocketRequest<LastTrade> build() { return SocketRequestBuilder.<LastTrade>builder() .withPath("/last") .withResponse(new TypeReference<LastTrade>() {}) .withParam(getSymbol()) .build(); } }
@Test public void shouldSuccessfullyCreateAsyncRequest() { final String symbol = "IBM"; final SocketRequest<LastTrade> request = new LastAsyncRequestBuilder() .withSymbol(symbol) .build(); assertThat(request.getPath()).isEqualTo("/last"); assertThat(String.valueOf(request.getParam())).contains(symbol); }
@Test public void lastTradeAsyncServiceTest() { stubFor(socket) .withResponseFile("/marketdata/LastTradeAsyncResponse.json"); final Consumer<LastTrade> consumer = spy(Consumer.class); iexTradingClient.subscribe(new LastAsyncRequestBuilder() .withSymbol("AAPL") .build(), consumer); verify(consumer).accept(dataCaptor.capture()); final LastTrade response = dataCaptor.getValue(); assertThat(response.getSymbol()).isEqualTo("AAPL"); assertThat(response.getPrice()).usingComparator(BigDecimal::compareTo).isEqualTo(BigDecimal.valueOf(185.8350)); assertThat(response.getSize()).isEqualTo(BigDecimal.valueOf(100)); assertThat(response.getTime()).isEqualTo(1529689336332L); } }