import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.net.HttpHeaders;
+import java.io.BufferedReader;
+import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
MediaTypes.DEFAULT));
}
+ @Override
+ public BufferedReader getReader() {
+ try {
+ return source.getReader();
+ } catch (IOException e) {
+ throw new IllegalStateException("Failed to read", e);
+ }
+ }
+
@Override
public boolean hasParam(String key) {
return source.getParameterMap().containsKey(key);
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Maps;
import com.google.protobuf.GeneratedMessageV3;
+import java.io.BufferedReader;
import java.io.InputStream;
+import java.io.StringReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.sonar.api.server.ws.internal.ValidatingRequest;
import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
import static java.util.Objects.requireNonNull;
import static org.sonarqube.ws.MediaTypes.PROTOBUF;
private final Map<String, String> params = new HashMap<>();
private final Map<String, String> headers = new HashMap<>();
private final Map<String, Part> parts = Maps.newHashMap();
+ private String payload = "";
+ private boolean payloadConsumed = false;
private String method = "GET";
private String mimeType = "application/octet-stream";
private String path;
+ @Override
+ public BufferedReader getReader() {
+ checkState(!payloadConsumed, "Payload already consumed");
+ if (payload == null) {
+ return super.getReader();
+ }
+
+ BufferedReader res = new BufferedReader(new StringReader(payload));
+ payloadConsumed = true;
+ return res;
+ }
+
+ public TestRequest setPayload(String payload) {
+ checkState(!payloadConsumed, "Payload already consumed");
+
+ this.payload = payload;
+ return this;
+ }
+
@Override
protected String readParam(String key) {
return params.get(key);
package org.sonar.api.server.ws;
import com.google.common.base.Splitter;
+import java.io.BufferedReader;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
*/
public abstract String method();
+ public BufferedReader getReader() {
+ throw new UnsupportedOperationException("getReader not supported");
+ }
+
/**
* Returns the requested MIME type, or {@code "application/octet-stream"} if not specified.
*/