package org.arquillian.cube.containerobject.dsl;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.arquillian.cube.docker.impl.client.containerobject.dsl.Container;
import org.arquillian.cube.docker.impl.client.containerobject.dsl.DockerContainer;
import org.arquillian.cube.docker.impl.requirement.RequiresDockerMachine;
import org.arquillian.cube.requirement.ArquillianConditionalRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(ArquillianConditionalRunner.class)
@RequiresDockerMachine(name = "dev")
public class PingPongTest {
@DockerContainer
Container pingpong = Container.withContainerName("pingpong")
.fromImage("jonmorehouse/ping-pong")
.withPortBinding(8080)
.build();
@Test
public void should_return_ok_as_pong() throws IOException {
String response = ping(pingpong.getIpAddress(), pingpong.getBindPort(8080));
assertThat(response).containsSequence("OK");
}
public String ping(String ip, int port) throws IOException {
URL url = new URL("http://" + ip + ":" + port);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
return response.toString();
}
}