private void topsAsyncRequestSample() { final SocketRequest<TOPS> request = new TopsAsyncRequestBuilder() .withSymbol("AAPL") .build(); iexTradingClient.subscribe(request, TOPS_CONSUMER); }
@Test public void shouldSuccessfullySubscribe() { final SocketRequest<TOPS> request = new TopsAsyncRequestBuilder().build(); final Consumer<TOPS> topsConsumer = mock(Consumer.class); genericSocketEndpoint.subscribe(request, topsConsumer); verify(socketManagerMock).subscribe(eq(request), eq(topsConsumer)); }
@Override public SocketRequest<TOPS> build() { return SocketRequestBuilder.<TOPS>builder() .withPath("/tops") .withResponse(new TypeReference<TOPS>() {}) .withParam(getSymbol()) .build(); } }
@Test public void shouldSuccessfullyUnsubscribe() { final SocketRequest<TOPS> request = new TopsAsyncRequestBuilder().build(); genericSocketEndpoint.unsubscribe(request); verify(socketManagerMock).unsubscribe(eq(request)); } }
@Test public void shouldSuccessfullyCreateAsyncRequest() { final String symbol = "IBM"; final SocketRequest<TOPS> request = new TopsAsyncRequestBuilder() .withSymbol(symbol) .build(); assertThat(request.getPath()).isEqualTo("/tops"); assertThat(String.valueOf(request.getParam())).contains(symbol); }
@Test public void topsAsyncServiceTest() { stubFor(socket) .withResponseFile("/marketdata/TopsAsyncResponse.json"); final Consumer<TOPS> consumer = spy(Consumer.class); iexTradingClient.subscribe(new TopsAsyncRequestBuilder() .withSymbol("AAPL") .build(), consumer); verify(consumer).accept(dataCaptor.capture()); final TOPS response = dataCaptor.getValue(); assertThat(response.getSymbol()).isEqualTo("AAPL"); assertThat(response.getSector()).isEqualTo("technologyhardwareequipment"); assertThat(response.getSecurityType()).isEqualTo("commonstock"); assertThat(response.getBidPrice()).usingComparator(BigDecimal::compareTo).isEqualTo(BigDecimal.valueOf(185.5900)); assertThat(response.getBidSize()).isEqualTo(BigDecimal.valueOf(100)); assertThat(response.getAskPrice()).usingComparator(BigDecimal::compareTo).isEqualTo(BigDecimal.valueOf(185.6400)); assertThat(response.getAskSize()).isEqualTo(BigDecimal.valueOf(100)); assertThat(response.getLastUpdated()).isEqualTo(1529689042490L); assertThat(response.getLastSalePrice()).usingComparator(BigDecimal::compareTo).isEqualTo(BigDecimal.valueOf(185.6300)); assertThat(response.getLastSaleSize()).isEqualTo(BigDecimal.valueOf(100)); assertThat(response.getLastSaleTime()).isEqualTo(1529689042476L); assertThat(response.getVolume()).isEqualTo(BigDecimal.valueOf(312038)); assertThat(response.getMarketPercent()).usingComparator(BigDecimal::compareTo).isEqualTo(BigDecimal.valueOf(0.03250)); } }