package org.arquillian.cube.docker.impl.client.config;
import java.util.Iterator;
import org.arquillian.cube.docker.impl.util.ConfigUtil;
import org.junit.Assert;
import org.junit.Test;
public class ConfigParserTestCase {
private static final String CONTENT =
"tomcat:\n" +
" image: tutum/tomcat:7.0\n" +
" buildImage:\n" +
" dockerfileLocation: src/test/resources/undertow\n" +
" exposedPorts: [8089/tcp]\n" +
" portBindings: [1521/tcp, 'localhost:8181->81/tcp']\n" +
" await:\n" +
" strategy: static\n" +
" ip: localhost\n" +
" ports: [8080, 8089]";
@Test
public void shouldBeAbleToLoadStrategy() throws Exception {
DockerCompositions containers = ConfigUtil.load(CONTENT);
CubeContainer container = containers.get("tomcat");
Assert.assertEquals("tutum/tomcat", container.getImage().getName());
Assert.assertEquals("7.0", container.getImage().getTag());
Assert.assertEquals(1, container.getExposedPorts().size());
ExposedPort exposedPort = container.getExposedPorts().iterator().next();
Assert.assertEquals(8089, exposedPort.getExposed());
Assert.assertEquals("tcp", exposedPort.getType());
Assert.assertEquals(2, container.getPortBindings().size());
Iterator<PortBinding> portBindingIterator = container.getPortBindings().iterator();
PortBinding portBinding1 = portBindingIterator.next();
PortBinding portBinding2 = portBindingIterator.next();
Assert.assertEquals(1521, portBinding1.getExposedPort().getExposed());
Assert.assertEquals("tcp", portBinding1.getExposedPort().getType());
Assert.assertEquals(8181, portBinding2.getBound());
Assert.assertEquals("localhost", portBinding2.getHost());
Assert.assertEquals(81, portBinding2.getExposedPort().getExposed());
Assert.assertEquals("tcp", portBinding2.getExposedPort().getType());
Assert.assertEquals("static", container.getAwait().getStrategy());
Assert.assertEquals("localhost", container.getAwait().getIp());
Assert.assertEquals(2, container.getAwait().getPorts().size());
System.out.println(ConfigUtil.dump(containers));
}
}