*/
package org.sonar.server.ws;
+import com.google.common.base.Objects;
import org.jruby.RubyFile;
import org.sonar.api.server.ws.internal.ValidatingRequest;
return source.getMethod();
}
+ @Override
+ public String getMediaType() {
+ return Objects.firstNonNull(source.getContentType(), "application/octet-stream");
+ }
+
@Override
public boolean hasParam(String key) {
return source.getParameterMap().containsKey(key) || params.keySet().contains(key);
import javax.servlet.http.HttpServletRequest;
import java.util.Collections;
+import org.sonar.server.plugins.MimeTypes;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.*;
verify(source).getMethod();
}
+ @Test
+ public void getMediaType() throws Exception {
+ when(source.getContentType()).thenReturn(MimeTypes.JSON);
+ ServletRequest request = new ServletRequest(source, Collections.<String, Object>emptyMap());
+ assertThat(request.getMediaType()).isEqualTo(MimeTypes.JSON);
+ }
+
+ @Test
+ public void default_media_type_is_octet_stream() throws Exception {
+ ServletRequest request = new ServletRequest(source, Collections.<String, Object>emptyMap());
+ assertThat(request.getMediaType()).isEqualTo("application/octet-stream");
+ }
+
@Test
public void has_param_from_source() {
when(source.getParameterMap()).thenReturn(ImmutableMap.of("param", new String[]{"value"}));
return this;
}
- public String getMimeType() {
+ @Override
+ public String getMediaType() {
return mimeType;
}
return method;
}
+ @Override
+ public String getMediaType() {
+ return MimeTypes.JSON;
+ }
+
@Override
public boolean hasParam(String key) {
return params.keySet().contains(key);
import org.sonar.api.server.ws.internal.ValidatingRequest;
import org.sonar.api.utils.text.JsonWriter;
import org.sonar.api.utils.text.XmlWriter;
+import org.sonar.server.plugins.MimeTypes;
import org.sonar.server.ws.WsTester.TestResponse.TestStream;
import org.sonar.test.JsonAssert;
public static class TestRequest extends ValidatingRequest {
private final String method;
+
private Map<String, String> params = Maps.newHashMap();
private TestRequest(String method) {
return method;
}
+ @Override
+ public String getMediaType() {
+ return MimeTypes.JSON;
+ }
+
@Override
public boolean hasParam(String key) {
return params.keySet().contains(key);
*/
public abstract String method();
+ /**
+ * Returns the requested MIME type, or {@code "application/octet-stream"} if not specified.
+ */
+ public abstract String getMediaType();
+
/**
* Return true of the parameter is set.
*/
package org.sonar.api.server.ws.internal;
import com.google.common.collect.Maps;
+import java.io.InputStream;
+import java.util.Map;
+import javax.annotation.Nullable;
import org.apache.commons.io.IOUtils;
import org.sonar.api.server.ws.Request;
-import javax.annotation.Nullable;
-
-import java.io.InputStream;
-import java.util.Map;
+import static com.google.common.base.Preconditions.checkNotNull;
/**
* Fake implementation of {@link org.sonar.api.server.ws.Request} used
public class SimpleGetRequest extends Request {
private final Map<String, String> params = Maps.newHashMap();
+ private String mediaType = "application/json";
@Override
public String method() {
return "GET";
}
+ @Override
+ public String getMediaType() {
+ return mediaType;
+ }
+
+ public SimpleGetRequest setMediaType(String mediaType) {
+ checkNotNull(mediaType);
+ this.mediaType = mediaType;
+ return this;
+ }
+
@Override
public boolean hasParam(String key) {
return params.keySet().contains(key);
return "GET";
}
+ @Override
+ public String getMediaType() {
+ return "application/json";
+ }
+
@Override
public boolean hasParam(String key) {
return params.keySet().contains(key);