package org.arquillian.cube.openshift.standalone;
import io.fabric8.kubernetes.api.model.v2_2.Service;
import io.fabric8.openshift.clnt.v2_2.OpenShiftClient;
import java.io.IOException;
import java.net.URL;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.arquillian.cube.kubernetes.annotations.Named;
import org.arquillian.cube.kubernetes.annotations.PortForward;
import org.arquillian.cube.openshift.impl.requirement.RequiresOpenshift;
import org.arquillian.cube.requirement.ArquillianConditionalRunner;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(ArquillianConditionalRunner.class)
@RequiresOpenshift
public class HelloWorldTest {
@Named("hello-openshift-service")
@PortForward
@ArquillianResource
Service service;
@Named("hello-openshift-service")
@PortForward
@ArquillianResource
URL url;
@ArquillianResource
OpenShiftClient client;
@Test
public void client_should_not_be_null() throws IOException {
assertThat(client).isNotNull();
}
@Test
public void service_instance_should_not_be_null() throws IOException {
assertThat(service).isNotNull();
assertThat(service.getSpec()).isNotNull();
assertThat(service.getSpec().getPorts()).isNotNull();
assertThat(service.getSpec().getPorts()).isNotEmpty();
}
@Test
public void should_show_hello_world() throws IOException {
assertThat(url).isNotNull();
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder().get().url(url).build();
Response response = okHttpClient.newCall(request).execute();
assertThat(response).isNotNull();
assertThat(response.code()).isEqualTo(200);
assertThat(response.body().string()).isEqualTo("Hello OpenShift!\n");
}
}