From 4bf2648d92cab2117a3e07d6db7b8626c7312af5 Mon Sep 17 00:00:00 2001 From: francois Date: Sun, 1 May 2016 23:44:39 +0200 Subject: [PATCH] Work on port ranges - change all to strings --- .../dockerjava/api/model/ExposedPort.java | 6 +- .../github/dockerjava/api/model/Ports.java | 76 +++++++++---------- .../command/InspectContainerResponseTest.java | 4 +- .../dockerjava/api/model/BindingTest.java | 7 +- .../dockerjava/api/model/PortBindingTest.java | 12 +-- .../api/model/Ports_SerializingTest.java | 17 ++--- .../api/model/Ports_addBindingsTest.java | 13 ++-- .../core/TestDockerCmdExecFactory.java | 66 ++++++++++++++-- .../core/command/BuildImageCmdImplTest.java | 2 +- .../command/CreateContainerCmdImplTest.java | 12 +-- .../command/RenameContainerCmdImplTest.java | 9 ++- .../command/StartContainerCmdImplTest.java | 71 +++++++++-------- .../core/util/FiltersBuilderTest.java | 5 +- .../netty/exec/BuildImageCmdExecTest.java | 2 +- .../exec/CreateContainerCmdExecTest.java | 67 ++++++++-------- .../exec/RenameContainerCmdExecTest.java | 9 ++- .../netty/exec/StartContainerCmdExecTest.java | 71 +++++++++-------- 17 files changed, 253 insertions(+), 196 deletions(-) diff --git a/src/main/java/com/github/dockerjava/api/model/ExposedPort.java b/src/main/java/com/github/dockerjava/api/model/ExposedPort.java index 25829b8aa..4e30c8df0 100644 --- a/src/main/java/com/github/dockerjava/api/model/ExposedPort.java +++ b/src/main/java/com/github/dockerjava/api/model/ExposedPort.java @@ -65,7 +65,7 @@ public ExposedPort(int port) { * @param scheme * the {@link #getScheme() scheme}, tcp or udp * @param port - * the {@link #getPort() port number} + * the {@link #getPort() port number or port range} * @deprecated use {@link #ExposedPort(int, InternetProtocol)} */ @Deprecated @@ -124,9 +124,9 @@ public static ExposedPort parse(String serialized) throws IllegalArgumentExcepti String[] parts = serialized.split("/"); switch (parts.length) { case 1: - return new ExposedPort(Integer.valueOf(parts[0])); + return new ExposedPort(Integer.parseInt(parts[0])); case 2: - return new ExposedPort(Integer.valueOf(parts[0]), InternetProtocol.parse(parts[1])); + return new ExposedPort(Integer.parseInt(parts[0]), InternetProtocol.parse(parts[1])); default: throw new IllegalArgumentException(); } diff --git a/src/main/java/com/github/dockerjava/api/model/Ports.java b/src/main/java/com/github/dockerjava/api/model/Ports.java index e0250bba1..17b2ad432 100644 --- a/src/main/java/com/github/dockerjava/api/model/Ports.java +++ b/src/main/java/com/github/dockerjava/api/model/Ports.java @@ -1,16 +1,5 @@ package com.github.dockerjava.api.model; -import static org.apache.commons.lang.StringUtils.isEmpty; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Map.Entry; - -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.builder.EqualsBuilder; - import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; @@ -23,6 +12,16 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.node.NullNode; +import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang.builder.EqualsBuilder; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Map.Entry; + +import static org.apache.commons.lang.StringUtils.isEmpty; /** * A container for port bindings, made available as a {@link Map} via its {@link #getBindings()} method. @@ -111,15 +110,15 @@ public Map getBindings() { /** * Creates a {@link Binding} for the given IP address and port number. */ - public static Binding binding(String hostIp, Integer hostPort) { + public static Binding binding(String hostIp, String hostPort) { return new Binding(hostIp, hostPort); } /** * Creates a {@link Binding} for the given port number, leaving the IP address undefined. */ - public static Binding binding(Integer hostPort) { - return new Binding(hostPort); + public static Binding binding(String hostPort) { + return new Binding(null, hostPort); } /** @@ -132,38 +131,38 @@ public static Binding binding(Integer hostPort) { */ public static class Binding { - private final String hostIp; - - private final Integer hostPort; - /** - * Creates a {@link Binding} for the given {@link #getHostIp() IP address} and {@link #getHostPort() port number}. + * Creates a {@link Binding} for the given {@link #getHostPort() port number or range}, leaving the {@link #getHostIp() IP address} + * undefined. * * @see Ports#bind(ExposedPort, Binding) * @see ExposedPort */ - public Binding(String hostIp, Integer hostPort) { - this.hostIp = isEmpty(hostIp) ? null : hostIp; - this.hostPort = hostPort; + public static Binding forPort(String port) { + return new Binding(null, port); } /** - * Creates a {@link Binding} for the given {@link #getHostPort() port number}, leaving the {@link #getHostIp() IP address} + * Creates a {@link Binding} for the given {@link #getHostIp() IP address}, leaving the {@link #getHostPort() port number} * undefined. - * - * @see Ports#bind(ExposedPort, Binding) - * @see ExposedPort */ - public Binding(Integer hostPort) { - this(null, hostPort); + public static Binding forIp(String hostIp) { + return new Binding(hostIp, null); } + private final String hostIp; + + private final String hostPort; + /** - * Creates a {@link Binding} for the given {@link #getHostIp() IP address}, leaving the {@link #getHostPort() port number} - * undefined. + * Creates a {@link Binding} for the given {@link #getHostIp() IP address} and {@link #getHostPort() port number}. + * + * @see Ports#bind(ExposedPort, Binding) + * @see ExposedPort */ - public Binding(String hostIp) { - this(hostIp, null); + public Binding(String hostIp, String hostPort) { + this.hostIp = isEmpty(hostIp) ? null : hostIp; + this.hostPort = hostPort; } /** @@ -184,7 +183,7 @@ public String getHostIp() { /** * @return the port number on the Docker host. May be null, in which case Docker will dynamically assign a port. */ - public Integer getHostPort() { + public String getHostPort() { return hostPort; } @@ -208,10 +207,10 @@ public static Binding parse(String serialized) throws IllegalArgumentException { String[] parts = serialized.split(":"); switch (parts.length) { case 2: { - return new Binding(parts[0], Integer.valueOf(parts[1])); + return new Binding(parts[0], parts[1]); } case 1: { - return parts[0].contains(".") ? new Binding(parts[0]) : new Binding(Integer.valueOf(parts[0])); + return parts[0].contains(".") ? Binding.forIp(parts[0]) : Binding.forPort(parts[0]); } default: { throw new IllegalArgumentException(); @@ -231,7 +230,7 @@ public static Binding parse(String serialized) throws IllegalArgumentException { @Override public String toString() { if (isEmpty(hostIp)) { - return Integer.toString(hostPort); + return hostPort; } else if (hostPort == null) { return hostIp; } else { @@ -270,7 +269,7 @@ public Ports deserialize(JsonParser jsonParser, DeserializationContext deseriali JsonNode bindingNode = bindingsArray.get(i); if (!bindingNode.equals(NullNode.getInstance())) { String hostIp = bindingNode.get("HostIp").textValue(); - int hostPort = bindingNode.get("HostPort").asInt(); + String hostPort = bindingNode.get("HostPort").textValue(); out.bind(ExposedPort.parse(portNode.getKey()), new Binding(hostIp, hostPort)); } } @@ -294,8 +293,7 @@ public void serialize(Ports portBindings, JsonGenerator jsonGen, SerializerProvi for (Binding binding : entry.getValue()) { jsonGen.writeStartObject(); jsonGen.writeStringField("HostIp", binding.getHostIp() == null ? "" : binding.getHostIp()); - jsonGen.writeStringField("HostPort", binding.getHostPort() == null ? "" : binding.getHostPort() - .toString()); + jsonGen.writeStringField("HostPort", binding.getHostPort() == null ? "" : binding.getHostPort()); jsonGen.writeEndObject(); } jsonGen.writeEndArray(); diff --git a/src/test/java/com/github/dockerjava/api/command/InspectContainerResponseTest.java b/src/test/java/com/github/dockerjava/api/command/InspectContainerResponseTest.java index c9d40b65f..f64cf4ead 100644 --- a/src/test/java/com/github/dockerjava/api/command/InspectContainerResponseTest.java +++ b/src/test/java/com/github/dockerjava/api/command/InspectContainerResponseTest.java @@ -25,7 +25,9 @@ import static org.hamcrest.Matchers.isEmptyString; import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.core.IsNot.not; -import static org.testng.Assert.*; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; /** * Tests for {@link InspectContainerResponse}. diff --git a/src/test/java/com/github/dockerjava/api/model/BindingTest.java b/src/test/java/com/github/dockerjava/api/model/BindingTest.java index 23e793cf8..290e66b82 100644 --- a/src/test/java/com/github/dockerjava/api/model/BindingTest.java +++ b/src/test/java/com/github/dockerjava/api/model/BindingTest.java @@ -10,12 +10,12 @@ public class BindingTest { @Test public void parseIpAndPort() { - assertEquals(Binding.parse("127.0.0.1:80"), Ports.binding("127.0.0.1", 80)); + assertEquals(Binding.parse("127.0.0.1:80"), Ports.binding("127.0.0.1", "80")); } @Test public void parsePortOnly() { - assertEquals(Binding.parse("80"), Ports.binding(null, 80)); + assertEquals(Binding.parse("80"), Ports.binding(null, "80")); } @Test @@ -28,7 +28,8 @@ public void parseEmptyString() { assertEquals(Binding.parse(""), Ports.binding(null, null)); } - @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Error parsing Binding 'nonsense'") + // Strings can be used since it can be a range. Let the docker daemon do the validation. + @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Error parsing Binding 'nonsense'", enabled = false) public void parseInvalidInput() { Binding.parse("nonsense"); } diff --git a/src/test/java/com/github/dockerjava/api/model/PortBindingTest.java b/src/test/java/com/github/dockerjava/api/model/PortBindingTest.java index e5f5f4c1b..296148177 100644 --- a/src/test/java/com/github/dockerjava/api/model/PortBindingTest.java +++ b/src/test/java/com/github/dockerjava/api/model/PortBindingTest.java @@ -13,22 +13,22 @@ public class PortBindingTest { @Test public void fullDefinition() { assertEquals(PortBinding.parse("127.0.0.1:80:8080/tcp"), - new PortBinding(new Binding("127.0.0.1", 80), TCP_8080)); + new PortBinding(new Binding("127.0.0.1", "80"), TCP_8080)); } @Test public void noProtocol() { - assertEquals(PortBinding.parse("127.0.0.1:80:8080"), new PortBinding(new Binding("127.0.0.1", 80), TCP_8080)); + assertEquals(PortBinding.parse("127.0.0.1:80:8080"), new PortBinding(new Binding("127.0.0.1", "80"), TCP_8080)); } @Test public void noHostIp() { - assertEquals(PortBinding.parse("80:8080/tcp"), new PortBinding(new Binding(80), TCP_8080)); + assertEquals(PortBinding.parse("80:8080/tcp"), new PortBinding(Binding.forPort("80"), TCP_8080)); } @Test public void portsOnly() { - assertEquals(PortBinding.parse("80:8080"), new PortBinding(new Binding(80), TCP_8080)); + assertEquals(PortBinding.parse("80:8080"), new PortBinding(Binding.forPort("80"), TCP_8080)); } @Test @@ -38,10 +38,10 @@ public void exposedPortOnly() { @Test public void dynamicHostPort() { - assertEquals(PortBinding.parse("127.0.0.1::8080"), new PortBinding(new Binding("127.0.0.1"), TCP_8080)); + assertEquals(PortBinding.parse("127.0.0.1::8080"), new PortBinding(Binding.forIp("127.0.0.1"), TCP_8080)); } - @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Error parsing PortBinding 'nonsense'") + @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Error parsing PortBinding 'nonsense'", enabled = false) public void parseInvalidInput() { PortBinding.parse("nonsense"); } diff --git a/src/test/java/com/github/dockerjava/api/model/Ports_SerializingTest.java b/src/test/java/com/github/dockerjava/api/model/Ports_SerializingTest.java index 8c8d2014f..fb89561e5 100644 --- a/src/test/java/com/github/dockerjava/api/model/Ports_SerializingTest.java +++ b/src/test/java/com/github/dockerjava/api/model/Ports_SerializingTest.java @@ -1,13 +1,12 @@ package com.github.dockerjava.api.model; -import static org.testng.Assert.assertEquals; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.dockerjava.api.model.Ports.Binding; +import org.testng.annotations.Test; import java.util.Map; -import org.testng.annotations.Test; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.github.dockerjava.api.model.Ports.Binding; +import static org.testng.Assert.assertEquals; public class Ports_SerializingTest { private final ObjectMapper objectMapper = new ObjectMapper(); @@ -24,15 +23,15 @@ public void deserializingPortWithMultipleBindings() throws Exception { Binding[] bindings = map.get(ExposedPort.tcp(80)); assertEquals(bindings.length, 2); - assertEquals(bindings[0], new Binding("10.0.0.1", 80)); - assertEquals(bindings[1], new Binding("10.0.0.2", 80)); + assertEquals(bindings[0], new Binding("10.0.0.1", "80")); + assertEquals(bindings[1], new Binding("10.0.0.2", "80")); } @Test public void serializingPortWithMultipleBindings() throws Exception { Ports ports = new Ports(); - ports.bind(ExposedPort.tcp(80), new Binding("10.0.0.1", 80)); - ports.bind(ExposedPort.tcp(80), new Binding("10.0.0.2", 80)); + ports.bind(ExposedPort.tcp(80), new Binding("10.0.0.1", "80")); + ports.bind(ExposedPort.tcp(80), new Binding("10.0.0.2", "80")); assertEquals(objectMapper.writeValueAsString(ports), jsonWithDoubleBindingForOnePort); } diff --git a/src/test/java/com/github/dockerjava/api/model/Ports_addBindingsTest.java b/src/test/java/com/github/dockerjava/api/model/Ports_addBindingsTest.java index a5a8697f5..401ee4b44 100644 --- a/src/test/java/com/github/dockerjava/api/model/Ports_addBindingsTest.java +++ b/src/test/java/com/github/dockerjava/api/model/Ports_addBindingsTest.java @@ -1,13 +1,12 @@ package com.github.dockerjava.api.model; -import static org.testng.Assert.assertEquals; - -import java.util.Map; - +import com.github.dockerjava.api.model.Ports.Binding; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import com.github.dockerjava.api.model.Ports.Binding; +import java.util.Map; + +import static org.testng.Assert.assertEquals; /** * As there may be several {@link Binding}s per {@link ExposedPort}, it makes a difference if you add {@link PortBinding}s for the same or @@ -18,9 +17,9 @@ public class Ports_addBindingsTest { private static final ExposedPort TCP_90 = ExposedPort.tcp(90); - private static final Binding BINDING_8080 = Ports.binding(8080); + private static final Binding BINDING_8080 = Ports.binding("8080"); - private static final Binding BINDING_9090 = Ports.binding(9090); + private static final Binding BINDING_9090 = Ports.binding("9090"); private Ports ports; diff --git a/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java b/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java index ba05ab4e3..aee8a60a8 100644 --- a/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java +++ b/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java @@ -1,17 +1,69 @@ package com.github.dockerjava.core; +import com.github.dockerjava.api.async.ResultCallback; +import com.github.dockerjava.api.command.AttachContainerCmd; +import com.github.dockerjava.api.command.AuthCmd.Exec; +import com.github.dockerjava.api.command.BuildImageCmd; +import com.github.dockerjava.api.command.CommitCmd; +import com.github.dockerjava.api.command.ConnectToNetworkCmd; +import com.github.dockerjava.api.command.ContainerDiffCmd; +import com.github.dockerjava.api.command.CopyArchiveFromContainerCmd; +import com.github.dockerjava.api.command.CopyArchiveToContainerCmd; +import com.github.dockerjava.api.command.CopyFileFromContainerCmd; +import com.github.dockerjava.api.command.CreateContainerCmd; +import com.github.dockerjava.api.command.CreateContainerResponse; +import com.github.dockerjava.api.command.CreateImageCmd; +import com.github.dockerjava.api.command.CreateImageResponse; +import com.github.dockerjava.api.command.CreateNetworkCmd; +import com.github.dockerjava.api.command.CreateNetworkResponse; +import com.github.dockerjava.api.command.CreateVolumeCmd; +import com.github.dockerjava.api.command.CreateVolumeResponse; +import com.github.dockerjava.api.command.DisconnectFromNetworkCmd; +import com.github.dockerjava.api.command.DockerCmdExecFactory; +import com.github.dockerjava.api.command.EventsCmd; +import com.github.dockerjava.api.command.ExecCreateCmd; +import com.github.dockerjava.api.command.ExecStartCmd; +import com.github.dockerjava.api.command.InfoCmd; +import com.github.dockerjava.api.command.InspectContainerCmd; +import com.github.dockerjava.api.command.InspectExecCmd; +import com.github.dockerjava.api.command.InspectImageCmd; +import com.github.dockerjava.api.command.InspectNetworkCmd; +import com.github.dockerjava.api.command.InspectVolumeCmd; +import com.github.dockerjava.api.command.KillContainerCmd; +import com.github.dockerjava.api.command.ListContainersCmd; +import com.github.dockerjava.api.command.ListImagesCmd; +import com.github.dockerjava.api.command.ListNetworksCmd; +import com.github.dockerjava.api.command.ListVolumesCmd; +import com.github.dockerjava.api.command.LogContainerCmd; +import com.github.dockerjava.api.command.PauseContainerCmd; +import com.github.dockerjava.api.command.PingCmd; +import com.github.dockerjava.api.command.PullImageCmd; +import com.github.dockerjava.api.command.PushImageCmd; +import com.github.dockerjava.api.command.RemoveContainerCmd; +import com.github.dockerjava.api.command.RemoveImageCmd; +import com.github.dockerjava.api.command.RemoveNetworkCmd; +import com.github.dockerjava.api.command.RemoveVolumeCmd; +import com.github.dockerjava.api.command.RenameContainerCmd; +import com.github.dockerjava.api.command.RestartContainerCmd; +import com.github.dockerjava.api.command.SaveImageCmd; +import com.github.dockerjava.api.command.SearchImagesCmd; +import com.github.dockerjava.api.command.StartContainerCmd; +import com.github.dockerjava.api.command.StatsCmd; +import com.github.dockerjava.api.command.StopContainerCmd; +import com.github.dockerjava.api.command.TagImageCmd; +import com.github.dockerjava.api.command.TopContainerCmd; +import com.github.dockerjava.api.command.UnpauseContainerCmd; +import com.github.dockerjava.api.command.UpdateContainerCmd; +import com.github.dockerjava.api.command.VersionCmd; +import com.github.dockerjava.api.command.WaitContainerCmd; +import com.github.dockerjava.api.model.BuildResponseItem; + +import javax.net.ssl.SSLContext; import java.io.IOException; import java.security.SecureRandom; import java.util.ArrayList; import java.util.List; -import javax.net.ssl.SSLContext; - -import com.github.dockerjava.api.async.ResultCallback; -import com.github.dockerjava.api.command.*; -import com.github.dockerjava.api.command.AuthCmd.Exec; -import com.github.dockerjava.api.model.BuildResponseItem; - /** * Special {@link DockerCmdExecFactory} implementation that collects container and image creations while test execution for the purpose of * automatically cleanup. diff --git a/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java index 99eefb4de..9ae4e3e98 100644 --- a/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java @@ -263,7 +263,7 @@ public void testBuildFromPrivateRegistry() throws Exception { CreateContainerResponse testregistry = dockerClient .createContainerCmd("testregistry:2") .withName("registry") - .withPortBindings(new PortBinding(new Ports.Binding(5000), ExposedPort.tcp(5000))) + .withPortBindings(new PortBinding(Ports.Binding.forPort("5000"), ExposedPort.tcp(5000))) .withEnv("REGISTRY_AUTH=htpasswd", "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm", "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd", "REGISTRY_LOG_LEVEL=debug", "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt", "REGISTRY_HTTP_TLS_KEY=/certs/domain.key") diff --git a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java index f2fd32b6a..05d2b6d0d 100644 --- a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java @@ -361,9 +361,9 @@ public void createContainerWithPortBindings() throws DockerException { ExposedPort tcp23 = ExposedPort.tcp(23); Ports portBindings = new Ports(); - portBindings.bind(tcp22, Ports.binding(11022)); - portBindings.bind(tcp23, Ports.binding(11023)); - portBindings.bind(tcp23, Ports.binding(11024)); + portBindings.bind(tcp22, Ports.binding("11022")); + portBindings.bind(tcp23, Ports.binding("11023")); + portBindings.bind(tcp23, Ports.binding("11024")); CreateContainerResponse container = dockerClient.createContainerCmd(BUSYBOX_IMAGE).withCmd("true") .withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec(); @@ -377,13 +377,13 @@ public void createContainerWithPortBindings() throws DockerException { assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23)); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp22)[0], - is(equalTo(Ports.binding(11022)))); + is(equalTo(Ports.binding("11022")))); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[0], - is(equalTo(Ports.binding(11023)))); + is(equalTo(Ports.binding("11023")))); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[1], - is(equalTo(Ports.binding(11024)))); + is(equalTo(Ports.binding("11024")))); } diff --git a/src/test/java/com/github/dockerjava/core/command/RenameContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/RenameContainerCmdImplTest.java index 9f503a87b..582ab2556 100644 --- a/src/test/java/com/github/dockerjava/core/command/RenameContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/RenameContainerCmdImplTest.java @@ -6,12 +6,17 @@ import com.github.dockerjava.api.exception.NotFoundException; import com.github.dockerjava.client.AbstractDockerClientTest; import org.testng.ITestResult; -import org.testng.annotations.*; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.AfterTest; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; import java.lang.reflect.Method; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.*; +import static org.hamcrest.Matchers.isEmptyString; +import static org.hamcrest.Matchers.not; @Test(groups = "integration") public class RenameContainerCmdImplTest extends AbstractDockerClientTest { diff --git a/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java index a2f1e51d8..4437eaaa7 100644 --- a/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java @@ -1,31 +1,5 @@ package com.github.dockerjava.core.command; -import static com.github.dockerjava.api.model.AccessMode.ro; -import static com.github.dockerjava.api.model.Capability.MKNOD; -import static com.github.dockerjava.api.model.Capability.NET_ADMIN; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.containsInAnyOrder; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasSize; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.isEmptyString; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.notNullValue; -import static org.hamcrest.Matchers.startsWith; - -import java.lang.reflect.Method; -import java.util.Arrays; -import java.util.List; -import java.util.UUID; - -import org.testng.ITestResult; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.AfterTest; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; - import com.fasterxml.jackson.databind.ObjectMapper; import com.github.dockerjava.api.command.CreateContainerResponse; import com.github.dockerjava.api.command.InspectContainerResponse; @@ -42,6 +16,31 @@ import com.github.dockerjava.api.model.Volume; import com.github.dockerjava.api.model.VolumesFrom; import com.github.dockerjava.client.AbstractDockerClientTest; +import org.testng.ITestResult; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.AfterTest; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; + +import static com.github.dockerjava.api.model.AccessMode.ro; +import static com.github.dockerjava.api.model.Capability.MKNOD; +import static com.github.dockerjava.api.model.Capability.NET_ADMIN; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.isEmptyString; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.notNullValue; +import static org.hamcrest.Matchers.startsWith; @Test(groups = "integration") public class StartContainerCmdImplTest extends AbstractDockerClientTest { @@ -189,9 +188,9 @@ public void startContainerWithPortBindings() throws DockerException { ExposedPort tcp23 = ExposedPort.tcp(23); Ports portBindings = new Ports(); - portBindings.bind(tcp22, Ports.binding(11022)); - portBindings.bind(tcp23, Ports.binding(11023)); - portBindings.bind(tcp23, Ports.binding(11024)); + portBindings.bind(tcp22, Ports.binding("11022")); + portBindings.bind(tcp23, Ports.binding("11023")); + portBindings.bind(tcp23, Ports.binding("11024")); CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("true") .withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec(); @@ -209,13 +208,13 @@ public void startContainerWithPortBindings() throws DockerException { assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23)); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp22)[0], - is(equalTo(Ports.binding(11022)))); + is(equalTo(Ports.binding("11022")))); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[0], - is(equalTo(Ports.binding(11023)))); + is(equalTo(Ports.binding("11023")))); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[1], - is(equalTo(Ports.binding(11024)))); + is(equalTo(Ports.binding("11024")))); } @@ -243,10 +242,10 @@ public void startContainerWithRandomPortBindings() throws DockerException { assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23)); assertThat(inspectContainerResponse.getNetworkSettings().getPorts().getBindings().get(tcp22)[0].getHostPort(), - is(not(equalTo(tcp22.getPort())))); + is(not(equalTo(String.valueOf(tcp22.getPort()))))); assertThat(inspectContainerResponse.getNetworkSettings().getPorts().getBindings().get(tcp23)[0].getHostPort(), - is(not(equalTo(tcp23.getPort())))); + is(not(equalTo(String.valueOf(tcp23.getPort()))))); } @@ -257,8 +256,8 @@ public void startContainerWithConflictingPortBindings() throws DockerException { ExposedPort tcp23 = ExposedPort.tcp(23); Ports portBindings = new Ports(); - portBindings.bind(tcp22, Ports.binding(11022)); - portBindings.bind(tcp23, Ports.binding(11022)); + portBindings.bind(tcp22, Ports.binding("11022")); + portBindings.bind(tcp23, Ports.binding("11022")); CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("true") .withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec(); diff --git a/src/test/java/com/github/dockerjava/core/util/FiltersBuilderTest.java b/src/test/java/com/github/dockerjava/core/util/FiltersBuilderTest.java index 25027ae76..e70a3b057 100644 --- a/src/test/java/com/github/dockerjava/core/util/FiltersBuilderTest.java +++ b/src/test/java/com/github/dockerjava/core/util/FiltersBuilderTest.java @@ -1,13 +1,12 @@ package com.github.dockerjava.core.util; -import com.github.dockerjava.core.util.FiltersBuilder; import com.google.common.collect.Maps; - import org.testng.annotations.Test; import java.util.Map; -import static org.testng.Assert.*; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotEquals; /** * @author Vincent Latombe diff --git a/src/test/java/com/github/dockerjava/netty/exec/BuildImageCmdExecTest.java b/src/test/java/com/github/dockerjava/netty/exec/BuildImageCmdExecTest.java index 1299cf6ae..2f9ac934c 100644 --- a/src/test/java/com/github/dockerjava/netty/exec/BuildImageCmdExecTest.java +++ b/src/test/java/com/github/dockerjava/netty/exec/BuildImageCmdExecTest.java @@ -255,7 +255,7 @@ public void testBuildFromPrivateRegistry() throws Exception { CreateContainerResponse testregistry = dockerClient .createContainerCmd("testregistry:2") .withName("registry") - .withPortBindings(new PortBinding(new Ports.Binding(5000), ExposedPort.tcp(5000))) + .withPortBindings(new PortBinding(Ports.Binding.forPort("5000"), ExposedPort.tcp(5000))) .withEnv("REGISTRY_AUTH=htpasswd", "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm", "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd", "REGISTRY_LOG_LEVEL=debug", "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt", "REGISTRY_HTTP_TLS_KEY=/certs/domain.key") diff --git a/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java b/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java index 02c5cc54e..0daf4fb46 100644 --- a/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java +++ b/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java @@ -1,33 +1,5 @@ package com.github.dockerjava.netty.exec; -import static com.github.dockerjava.api.model.Capability.MKNOD; -import static com.github.dockerjava.api.model.Capability.NET_ADMIN; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.containsInAnyOrder; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItemInArray; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.isEmptyString; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.notNullValue; -import static org.hamcrest.Matchers.startsWith; - -import java.lang.reflect.Method; -import java.security.SecureRandom; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import org.testng.ITestResult; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.AfterTest; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; - import com.github.dockerjava.api.command.CreateContainerResponse; import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.api.exception.ConflictException; @@ -43,6 +15,33 @@ import com.github.dockerjava.api.model.Volume; import com.github.dockerjava.api.model.VolumesFrom; import com.github.dockerjava.netty.AbstractNettyDockerClientTest; +import org.testng.ITestResult; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.AfterTest; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import java.lang.reflect.Method; +import java.security.SecureRandom; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import static com.github.dockerjava.api.model.Capability.MKNOD; +import static com.github.dockerjava.api.model.Capability.NET_ADMIN; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasItemInArray; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.isEmptyString; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.notNullValue; +import static org.hamcrest.Matchers.startsWith; @Test(groups = "integration") public class CreateContainerCmdExecTest extends AbstractNettyDockerClientTest { @@ -352,9 +351,9 @@ public void createContainerWithPortBindings() throws DockerException { ExposedPort tcp23 = ExposedPort.tcp(23); Ports portBindings = new Ports(); - portBindings.bind(tcp22, Ports.binding(11022)); - portBindings.bind(tcp23, Ports.binding(11023)); - portBindings.bind(tcp23, Ports.binding(11024)); + portBindings.bind(tcp22, Ports.binding("11022")); + portBindings.bind(tcp23, Ports.binding("11023")); + portBindings.bind(tcp23, Ports.binding("11024")); CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("true") .withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec(); @@ -368,13 +367,13 @@ public void createContainerWithPortBindings() throws DockerException { assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23)); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp22)[0], - is(equalTo(Ports.binding(11022)))); + is(equalTo(Ports.binding("11022")))); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[0], - is(equalTo(Ports.binding(11023)))); + is(equalTo(Ports.binding("11023")))); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[1], - is(equalTo(Ports.binding(11024)))); + is(equalTo(Ports.binding("11024")))); } diff --git a/src/test/java/com/github/dockerjava/netty/exec/RenameContainerCmdExecTest.java b/src/test/java/com/github/dockerjava/netty/exec/RenameContainerCmdExecTest.java index c176bc1d6..100a7d772 100644 --- a/src/test/java/com/github/dockerjava/netty/exec/RenameContainerCmdExecTest.java +++ b/src/test/java/com/github/dockerjava/netty/exec/RenameContainerCmdExecTest.java @@ -6,12 +6,17 @@ import com.github.dockerjava.api.exception.NotFoundException; import com.github.dockerjava.netty.AbstractNettyDockerClientTest; import org.testng.ITestResult; -import org.testng.annotations.*; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.AfterTest; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; import java.lang.reflect.Method; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.*; +import static org.hamcrest.Matchers.isEmptyString; +import static org.hamcrest.Matchers.not; @Test(groups = "integration") public class RenameContainerCmdExecTest extends AbstractNettyDockerClientTest { diff --git a/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java b/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java index 6c70c1f07..844274887 100644 --- a/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java +++ b/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java @@ -1,31 +1,5 @@ package com.github.dockerjava.netty.exec; -import static com.github.dockerjava.api.model.AccessMode.ro; -import static com.github.dockerjava.api.model.Capability.MKNOD; -import static com.github.dockerjava.api.model.Capability.NET_ADMIN; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.containsInAnyOrder; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasSize; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.isEmptyString; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.notNullValue; -import static org.hamcrest.Matchers.startsWith; - -import java.lang.reflect.Method; -import java.util.Arrays; -import java.util.List; -import java.util.UUID; - -import org.testng.ITestResult; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.AfterTest; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; - import com.fasterxml.jackson.databind.ObjectMapper; import com.github.dockerjava.api.command.CreateContainerResponse; import com.github.dockerjava.api.command.InspectContainerResponse; @@ -43,6 +17,31 @@ import com.github.dockerjava.api.model.VolumesFrom; import com.github.dockerjava.core.command.WaitContainerResultCallback; import com.github.dockerjava.netty.AbstractNettyDockerClientTest; +import org.testng.ITestResult; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.AfterTest; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; + +import static com.github.dockerjava.api.model.AccessMode.ro; +import static com.github.dockerjava.api.model.Capability.MKNOD; +import static com.github.dockerjava.api.model.Capability.NET_ADMIN; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.isEmptyString; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.notNullValue; +import static org.hamcrest.Matchers.startsWith; @Test(groups = "integration") public class StartContainerCmdExecTest extends AbstractNettyDockerClientTest { @@ -192,9 +191,9 @@ public void startContainerWithPortBindings() throws DockerException { ExposedPort tcp23 = ExposedPort.tcp(23); Ports portBindings = new Ports(); - portBindings.bind(tcp22, Ports.binding(11022)); - portBindings.bind(tcp23, Ports.binding(11023)); - portBindings.bind(tcp23, Ports.binding(11024)); + portBindings.bind(tcp22, Ports.binding("11022")); + portBindings.bind(tcp23, Ports.binding("11023")); + portBindings.bind(tcp23, Ports.binding("11024")); CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("true") .withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec(); @@ -212,13 +211,13 @@ public void startContainerWithPortBindings() throws DockerException { assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23)); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp22)[0], - is(equalTo(Ports.binding(11022)))); + is(equalTo(Ports.binding("11022")))); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[0], - is(equalTo(Ports.binding(11023)))); + is(equalTo(Ports.binding("11023")))); assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[1], - is(equalTo(Ports.binding(11024)))); + is(equalTo(Ports.binding("11024")))); } @@ -246,10 +245,10 @@ public void startContainerWithRandomPortBindings() throws DockerException { assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23)); assertThat(inspectContainerResponse.getNetworkSettings().getPorts().getBindings().get(tcp22)[0].getHostPort(), - is(not(equalTo(tcp22.getPort())))); + is(not(equalTo(String.valueOf(tcp22.getPort()))))); assertThat(inspectContainerResponse.getNetworkSettings().getPorts().getBindings().get(tcp23)[0].getHostPort(), - is(not(equalTo(tcp23.getPort())))); + is(not(equalTo(String.valueOf(tcp23.getPort()))))); } @@ -260,8 +259,8 @@ public void startContainerWithConflictingPortBindings() throws DockerException { ExposedPort tcp23 = ExposedPort.tcp(23); Ports portBindings = new Ports(); - portBindings.bind(tcp22, Ports.binding(11022)); - portBindings.bind(tcp23, Ports.binding(11022)); + portBindings.bind(tcp22, Ports.binding("11022")); + portBindings.bind(tcp23, Ports.binding("11022")); CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("true") .withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec();