@Test public void testWrite() throws ExecutionException, InterruptedException { String singleton = "singleton"; Writer<Object> singletonWriter = new SingletonWriter<>(singleton); EntityStream<Object> singletonStream = EntityStreams.newEntityStream(singletonWriter); CollectingReader<Object, ?, Set<Object>> reader = new CollectingReader<>(Collectors.toSet()); singletonStream.setReader(reader); Assert.assertEquals(reader.getResult().toCompletableFuture().get(), Collections.singleton(singleton)); } }
@Test(dataProvider = "data") public void testWrite(int chunkSize) throws InterruptedException, ExecutionException, TimeoutException { Writer<ByteString> writer = new ChunkedByteStringWriter(DATA, chunkSize); EntityStream<ByteString> stream = EntityStreams.newEntityStream(writer); CollectingReader<ByteString, ?, ChunkedByteStringCollector.Result> reader = new CollectingReader<>(new ChunkedByteStringCollector()); stream.setReader(reader); ChunkedByteStringCollector.Result result = reader.getResult().toCompletableFuture().get(); Assert.assertEquals(result.data, DATA); Assert.assertEquals(result.chunkCount, (DATA.length - 1) / chunkSize + 1); } }
@Override public void setReader(Reader r) { _entityStream.setReader(EntityStreamAdapters.toGenericReader(r)); } }
@Override public CompletionStage<DataMap> decodeMap(EntityStream<ByteString> entityStream) { JacksonSmileDataDecoder<DataMap> decoder = new JacksonSmileDataDecoder<>(_smileFactory, START_OBJECT.bitPattern); entityStream.setReader(decoder); return decoder.getResult(); }
@Override public CompletionStage<DataMap> decodeMap(EntityStream<ByteString> entityStream) { JacksonJsonDataMapDecoder decoder = new JacksonJsonDataMapDecoder(); entityStream.setReader(decoder); return decoder.getResult(); }
@Override public CompletionStage<DataList> decodeList(EntityStream<ByteString> entityStream) { JacksonJsonDataListDecoder decoder = new JacksonJsonDataListDecoder(); entityStream.setReader(decoder); return decoder.getResult(); }
@Override public CompletionStage<DataList> decodeList(EntityStream<ByteString> entityStream) { JacksonSmileDataDecoder<DataList> decoder = new JacksonSmileDataDecoder<>(_smileFactory, START_ARRAY.bitPattern); entityStream.setReader(decoder); return decoder.getResult(); }
@Override public void create(@UnstructuredDataReactiveReaderParam UnstructuredDataReactiveReader reader, @CallbackParam Callback<CreateResponse> responseCallback) { reader.getEntityStream().setReader(new GreetingUnstructuredDataReader<CreateResponse>(responseCallback) { @Override CreateResponse buildResponse() { return new CreateResponse(1); } }); }
@Override public void create(@UnstructuredDataReactiveReaderParam UnstructuredDataReactiveReader reader, @CallbackParam final Callback<CreateResponse> responseCallback) { reader.getEntityStream().setReader(new GreetingUnstructuredDataReader<CreateResponse>(responseCallback) { @Override CreateResponse buildResponse() { return new CreateResponse(1); } }); }
@Override public void update(String key, @UnstructuredDataReactiveReaderParam UnstructuredDataReactiveReader reader, @CallbackParam final Callback<UpdateResponse> responseCallback) { reader.getEntityStream().setReader(new GreetingUnstructuredDataReader<UpdateResponse>(responseCallback) { @Override UpdateResponse buildResponse() { return new UpdateResponse(HttpStatus.S_200_OK); } }); }
@Override public void update(@UnstructuredDataReactiveReaderParam UnstructuredDataReactiveReader reader, @CallbackParam final Callback<UpdateResponse> responseCallback) { reader.getEntityStream().setReader(new GreetingUnstructuredDataReader<UpdateResponse>(responseCallback) { @Override UpdateResponse buildResponse() { return new UpdateResponse(HttpStatus.S_200_OK); } }); }
@Override public void update(CompoundKey key, @UnstructuredDataReactiveReaderParam UnstructuredDataReactiveReader reader, @CallbackParam final Callback<UpdateResponse> responseCallback) { reader.getEntityStream().setReader(new GreetingUnstructuredDataReader<UpdateResponse>(responseCallback) { @Override UpdateResponse buildResponse() { return new UpdateResponse(HttpStatus.S_200_OK); } }); }