public void testExecInspect() throws IOException, InterruptedException { MockWebServer server = mockWebServer(new MockResponse().setBody(payloadFromResource("/execInspect.json"))); MiscApi api = api(DockerApi.class, server.getUrl("/").toString(), new DockerParserModule()).getMiscApi(); final String expectedExecId = "fda1cf8064863fc0667c691c69793fdb7d0bd4a1fabb8250536abe5203e4208a"; ExecInspect execInspect = api.execInspect(expectedExecId); assertNotNull(execInspect); assertEquals(execInspect.id(), expectedExecId); assertEquals(execInspect.running(), false); assertEquals(execInspect.exitCode(), 2); assertSent(server, "GET", "/exec/" + expectedExecId + "/json"); }
public void testBuildContainer() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setResponseCode(200)); MiscApi api = api(DockerApi.class, server.getUrl("/").toString()).getMiscApi(); try { api.build(tarredDockerfile()); RecordedRequest request = assertSent(server, "POST", "/build"); assertDockerBuildHttpHeaders(request); } finally { server.shutdown(); } }
public void testGetInfo() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setBody(payloadFromResource("/info.json"))); MiscApi api = api(DockerApi.class, server.getUrl("/").toString()).getMiscApi(); try { assertEquals(api.getInfo(), new InfoParseTest().expected()); assertSent(server, "GET", "/info"); } finally { server.shutdown(); } }
public void testBuildContainerUsingPayload() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setResponseCode(200)); MiscApi api = api(DockerApi.class, server.getUrl("/").toString()).getMiscApi(); File file = File.createTempFile("docker", "tmp"); FileInputStream data = new FileInputStream(file); Payload payload = Payloads.newInputStreamPayload(data); payload.getContentMetadata().setContentLength(file.length()); try { api.build(payload); RecordedRequest request = assertSent(server, "POST", "/build"); assertDockerBuildHttpHeaders(request); } finally { server.shutdown(); } }
public void testGetVersion() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setBody(payloadFromResource("/version.json"))); MiscApi api = api(DockerApi.class, server.getUrl("/").toString()).getMiscApi(); try { assertEquals(api.getVersion(), new VersionParseTest().expected()); assertSent(server, "GET", "/version"); } finally { server.shutdown(); } }
public void testExecCreate() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setBody(payloadFromResource("/exec.json"))); MiscApi api = api(DockerApi.class, server.getUrl("/").toString(), new DockerParserModule()).getMiscApi(); try { final String containerId = "a40d212a0a379de00426a1da2a8fd3fd20d5f74fd7c2dd42f6c93a6b1b0e6974"; final ExecCreateParams execParams = ExecCreateParams.builder() .cmd(ImmutableList.<String> of("/bin/sh", "-c", "echo -n Standard >&1 && echo -n Error >&2")) .attachStderr(true).attachStdout(true).build(); final Exec expectedExec = Exec.create("dbf45d296388032ebb9872edb75847f6655a72b4e9ab0d99ae1c75589c4ca957"); assertEquals(api.execCreate(containerId, execParams), expectedExec); assertSent(server, "POST", "/containers/" + containerId + "/exec"); } finally { server.shutdown(); } }
public void testExecStart() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setBody(payloadFromResource("/exec.start"))); MiscApi api = api(DockerApi.class, server.getUrl("/").toString(), new DockerParserModule()).getMiscApi(); DockerInputStream dis = null; try { final String execId = "dbf45d296388032ebb9872edb75847f6655a72b4e9ab0d99ae1c75589c4ca957"; final ExecStartParams startParams = ExecStartParams.builder().detach(false).build(); dis = new DockerInputStream(api.execStart(execId, startParams)); final StdStreamData msg1 = dis.readStdStreamData(); assertFalse(msg1.isTruncated()); assertEquals(msg1.getPayload(), "Standard".getBytes(StandardCharsets.UTF_8)); assertEquals(msg1.getType(), StdStreamType.OUT); final StdStreamData msg2 = dis.readStdStreamData(); assertFalse(msg2.isTruncated()); assertEquals(msg2.getPayload(), "Error".getBytes(StandardCharsets.UTF_8)); assertEquals(msg2.getType(), StdStreamType.ERR); assertNull(dis.readStdStreamData()); assertSent(server, "POST", "/exec/" + execId + "/start"); } finally { if (dis != null) { dis.close(); } server.shutdown(); } }