From 404f63a20cd1587f7dd9cc0aa31565c9dcbbad3e Mon Sep 17 00:00:00 2001 From: Jake Wharton Date: Tue, 13 Sep 2016 13:56:03 -0400 Subject: [PATCH] Implement Closeable on MockWebServer. Enables use via try-with-resources. --- .../src/main/java/okhttp3/mockwebserver/MockWebServer.java | 7 ++++++- .../test/java/okhttp3/mockwebserver/MockWebServerTest.java | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/mockwebserver/src/main/java/okhttp3/mockwebserver/MockWebServer.java b/mockwebserver/src/main/java/okhttp3/mockwebserver/MockWebServer.java index a745efe73..3d3f5e65a 100644 --- a/mockwebserver/src/main/java/okhttp3/mockwebserver/MockWebServer.java +++ b/mockwebserver/src/main/java/okhttp3/mockwebserver/MockWebServer.java @@ -17,6 +17,7 @@ package okhttp3.mockwebserver; +import java.io.Closeable; import java.io.IOException; import java.io.InterruptedIOException; import java.net.InetAddress; @@ -99,7 +100,7 @@ import static okhttp3.mockwebserver.SocketPolicy.UPGRADE_TO_SSL_AT_END; * A scriptable web server. Callers supply canned responses and the server replays them upon request * in sequence. */ -public final class MockWebServer implements TestRule { +public final class MockWebServer implements TestRule, Closeable { static { Internal.initializeInstanceForTests(); } @@ -807,6 +808,10 @@ public final class MockWebServer implements TestRule { return "MockWebServer[" + port + "]"; } + @Override public void close() throws IOException { + shutdown(); + } + /** A buffer wrapper that drops data after {@code bodyLimit} bytes. */ private static class TruncatingBuffer implements Sink { private final Buffer buffer = new Buffer(); diff --git a/mockwebserver/src/test/java/okhttp3/mockwebserver/MockWebServerTest.java b/mockwebserver/src/test/java/okhttp3/mockwebserver/MockWebServerTest.java index dbeafc26d..b0a3ec06e 100644 --- a/mockwebserver/src/test/java/okhttp3/mockwebserver/MockWebServerTest.java +++ b/mockwebserver/src/test/java/okhttp3/mockwebserver/MockWebServerTest.java @@ -16,6 +16,7 @@ package okhttp3.mockwebserver; import java.io.BufferedReader; +import java.io.Closeable; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -339,6 +340,11 @@ public final class MockWebServerTest { server.shutdown(); } + @Test public void closeViaClosable() throws IOException { + Closeable server = new MockWebServer(); + server.close(); + } + @Test public void shutdownWithoutEnqueue() throws IOException { MockWebServer server = new MockWebServer(); server.start();