Merge pull request #208 from docker-java/event-stream-reader · docker-java/docker-java@c3224cb
1+package com.github.dockerjava.core.command;
2+3+import com.github.dockerjava.api.DockerClient;
4+import com.github.dockerjava.api.model.EventStreamItem;
5+import com.github.dockerjava.api.model.PullEventStreamItem;
6+import com.github.dockerjava.core.DockerClientBuilder;
7+import org.testng.annotations.AfterTest;
8+import org.testng.annotations.BeforeTest;
9+import org.testng.annotations.Test;
10+11+import java.io.File;
12+13+import static org.hamcrest.MatcherAssert.assertThat;
14+import static org.hamcrest.beans.HasPropertyWithValue.hasProperty;
15+import static org.hamcrest.core.AllOf.allOf;
16+import static org.hamcrest.core.IsEqual.equalTo;
17+import static org.hamcrest.core.IsNull.nullValue;
18+import static org.testng.AssertJUnit.assertNull;
19+20+21+@Test(groups = "integration")
22+public class EventStreamReaderITest {
23+24+private DockerClient dockerClient;
25+26+@BeforeTest
27+public void setUp() throws Exception {
28+dockerClient = DockerClientBuilder.getInstance().build();
29+ }
30+31+@AfterTest
32+public void tearDown() throws Exception {
33+dockerClient.close();
34+ }
35+36+@Test
37+public void pullCanBeStreamed() throws Exception {
38+39+try (EventStreamReader<PullEventStreamItem> reader = new EventStreamReader<>(
40+dockerClient.pullImageCmd("busybox:latest").exec(),
41+PullEventStreamItem.class)
42+ ) {;
43+assertThat(reader.readItem(),
44+allOf(
45+hasProperty("status", equalTo("Pulling repository busybox")),
46+hasProperty("progress", nullValue()),
47+hasProperty("progressDetail", nullValue())
48+ )
49+ );
50+assertNull(reader.readItem());
51+ }
52+ }
53+54+@Test
55+public void buildCanBeStreamed() throws Exception {
56+57+try (EventStreamReader<EventStreamItem> reader = new EventStreamReader<>(
58+dockerClient.buildImageCmd(new File("src/test/resources/eventStreamReaderDockerfile")).exec(),
59+EventStreamItem.class)
60+ ) {
61+assertThat(reader.readItem(),
62+allOf(
63+hasProperty("stream", equalTo("Step 0 : FROM busybox:latest\n")),
64+hasProperty("error", nullValue()),
65+hasProperty("errorDetail", nullValue())
66+ )
67+ );
68+assertNull(reader.readItem());
69+70+ }
71+ }
72+}