/** * Create a new {@code ProtobufHttpMessageWriter} with a default {@link ProtobufEncoder}. */ public ProtobufHttpMessageWriter() { super(new ProtobufEncoder()); }
@Override public List<MimeType> getDecodableMimeTypes() { return getMimeTypes(); }
@Override public List<MimeType> getEncodableMimeTypes() { return getMimeTypes(); }
public ProtobufDecoderTests() { super(new ProtobufDecoder()); }
@Override public Flux<DataBuffer> encode(Publisher<? extends Message> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) { return Flux .from(inputStream) .map(message -> encodeMessage(message, bufferFactory, !(inputStream instanceof Mono))); }
@Override public Flux<Message> decode(Publisher<DataBuffer> inputStream, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) { return Flux.from(inputStream) .flatMapIterable(new MessageDecoderFunction(elementType, this.maxMessageSize)); }
@Override public boolean canEncode(ResolvableType elementType, @Nullable MimeType mimeType) { return Message.class.isAssignableFrom(elementType.toClass()) && supportsMimeType(mimeType); }
@Override public boolean canDecode(ResolvableType elementType, @Nullable MimeType mimeType) { return Message.class.isAssignableFrom(elementType.toClass()) && supportsMimeType(mimeType); }
@Test public void exceedMaxSize() { this.decoder.setMaxMessageSize(1); Mono<DataBuffer> input = dataBuffer(this.testMsg1); testDecode(input, Msg.class, step -> step .verifyError(DecodingException.class)); }
@Override @Test public void decodeToMono() { Mono<DataBuffer> input = dataBuffer(this.testMsg1); testDecodeToMonoAll(input, Msg.class, step -> step .expectNext(this.testMsg1) .verifyComplete()); }
@Test public void encodeStream() { Flux<Message> input = Flux.just(this.msg1, this.msg2); testEncodeAll(input, Msg.class, step -> step .consumeNextWith(expect(this.msg1)) .consumeNextWith(expect(this.msg2)) .verifyComplete()); }
@Override @Test public void canEncode() { assertTrue(this.encoder.canEncode(forClass(Msg.class), null)); assertTrue(this.encoder.canEncode(forClass(Msg.class), PROTOBUF_MIME_TYPE)); assertTrue(this.encoder.canEncode(forClass(Msg.class), MediaType.APPLICATION_OCTET_STREAM)); assertFalse(this.encoder.canEncode(forClass(Msg.class), MediaType.APPLICATION_JSON)); assertFalse(this.encoder.canEncode(forClass(Object.class), PROTOBUF_MIME_TYPE)); }
@Override @Test public void canDecode() { assertTrue(this.decoder.canDecode(forClass(Msg.class), null)); assertTrue(this.decoder.canDecode(forClass(Msg.class), PROTOBUF_MIME_TYPE)); assertTrue(this.decoder.canDecode(forClass(Msg.class), MediaType.APPLICATION_OCTET_STREAM)); assertFalse(this.decoder.canDecode(forClass(Msg.class), MediaType.APPLICATION_JSON)); assertFalse(this.decoder.canDecode(forClass(Object.class), PROTOBUF_MIME_TYPE)); }
/** * Create a new {@code ProtobufHttpMessageWriter} with a default {@link ProtobufEncoder}. */ public ProtobufHttpMessageWriter() { super(new ProtobufEncoder()); }
@Test(expected = IllegalArgumentException.class) public void extensionRegistryNull() { new ProtobufDecoder(null); }
@Override public List<MimeType> getDecodableMimeTypes() { return getMimeTypes(); }
@Override public List<MimeType> getEncodableMimeTypes() { return getMimeTypes(); }
@Override public Flux<DataBuffer> encode(Publisher<? extends Message> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) { return Flux .from(inputStream) .map(message -> encodeMessage(message, bufferFactory, !(inputStream instanceof Mono))); }
@Override public Flux<Message> decode(Publisher<DataBuffer> inputStream, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) { return Flux.from(inputStream) .flatMapIterable(new MessageDecoderFunction(elementType, this.maxMessageSize)); }
public ProtobufEncoderTests() { super(new ProtobufEncoder()); }