Refactoring: renamed package de.juplo.facebook.exceptions to errors
[facebook-utils] / src / test / java / de / juplo / facebook / errors / MockClientHttpRequestFactory.java
diff --git a/src/test/java/de/juplo/facebook/errors/MockClientHttpRequestFactory.java b/src/test/java/de/juplo/facebook/errors/MockClientHttpRequestFactory.java
new file mode 100644 (file)
index 0000000..d5b24c3
--- /dev/null
@@ -0,0 +1,145 @@
+package de.juplo.facebook.errors;
+
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.client.ClientHttpRequest;
+import org.springframework.http.client.ClientHttpRequestFactory;
+import org.springframework.http.client.ClientHttpResponse;
+
+
+
+/**
+ *
+ * @author kai
+ */
+public class MockClientHttpRequestFactory implements ClientHttpRequestFactory
+{
+  private static final Logger log =
+      LoggerFactory.getLogger(MockClientHttpRequestFactory.class);
+
+  private HttpStatus status = HttpStatus.OK;
+  private HttpHeaders headers = new HttpHeaders();
+  private String body = "";
+
+
+  @Override
+  public ClientHttpRequest createRequest(URI uri, HttpMethod method) throws IOException
+  {
+    return new MockClientHttpRequest(uri, method);
+  }
+
+  public void setStatus(HttpStatus status)
+  {
+    this.status = status;
+  }
+
+  public void setHeaders(HttpHeaders headers)
+  {
+    this.headers = headers;
+  }
+
+  public void addHeader(String name, String value)
+  {
+    headers.add(name, value);
+  }
+
+  public void setBody(String body)
+  {
+    log.trace(body);
+    this.body = body;
+  }
+
+
+  class MockClientHttpRequest implements ClientHttpRequest
+  {
+    private final URI uri;
+    private final HttpMethod method;
+
+
+    public MockClientHttpRequest(URI uri, HttpMethod method)
+    {
+      this.uri = uri;
+      this.method = method;
+    }
+
+
+    @Override
+    public ClientHttpResponse execute() throws IOException
+    {
+      return new MockClientHttpResponse();
+    }
+
+    @Override
+    public HttpMethod getMethod()
+    {
+      return method;
+    }
+
+    @Override
+    public URI getURI()
+    {
+      return uri;
+    }
+
+    @Override
+    public HttpHeaders getHeaders()
+    {
+      return headers;
+    }
+
+    @Override
+    public OutputStream getBody() throws IOException
+    {
+      throw new UnsupportedOperationException("Not supported yet.");
+    }
+  }
+
+
+  class MockClientHttpResponse implements ClientHttpResponse
+  {
+    @Override
+    public HttpStatus getStatusCode() throws IOException
+    {
+      return status;
+    }
+
+    @Override
+    public int getRawStatusCode() throws IOException
+    {
+      return status.value();
+    }
+
+    @Override
+    public String getStatusText() throws IOException
+    {
+      return status.getReasonPhrase();
+    }
+
+    @Override
+    public void close()
+    {
+    }
+
+    @Override
+    public InputStream getBody() throws IOException
+    {
+      return new ByteArrayInputStream(body.getBytes(StandardCharsets.UTF_8));
+    }
+
+    @Override
+    public HttpHeaders getHeaders()
+    {
+      return headers;
+    }
+  }
+}