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+

}