package io.cattle.platform.docker.client; import static org.junit.Assert.*; import org.junit.Test; public class DockerImageTest { private static final String sha = "sha256:88f8d82bc9bc20ff80992cdeeee1dd6d8799cd36797b3653c644943e90b3acdf"; @Test public void testNoNamespace() { DockerImage image = DockerImage.parse("ubuntu"); assertEquals("index.docker.io", image.getServer()); assertEquals("ubuntu", image.getFullName()); } @Test public void testNoNamespaceWithTag() { DockerImage image = DockerImage.parse("ubuntu:14.04"); assertEquals("index.docker.io", image.getServer()); assertEquals("ubuntu:14.04", image.getFullName()); } @Test public void testNamespace() { DockerImage image = DockerImage.parse("ibuildthecloud/ubuntu-core"); assertEquals("index.docker.io", image.getServer()); assertEquals("ibuildthecloud/ubuntu-core", image.getFullName()); } @Test public void testTag() { DockerImage image = DockerImage.parse("ibuildthecloud/ubuntu-core:123"); assertEquals("index.docker.io", image.getServer()); assertEquals("ibuildthecloud/ubuntu-core:123", image.getFullName()); } @Test public void testUrl() { DockerImage image = DockerImage.parse("quay.io/ibuildthecloud/ubuntu-core:123"); assertEquals("quay.io", image.getServer()); assertEquals("ibuildthecloud/ubuntu-core:123", image.getFullName()); } @Test public void testUrlLatest() { DockerImage image = DockerImage.parse("quay.io/ibuildthecloud/ubuntu-core"); assertEquals("quay.io", image.getServer()); assertEquals("ibuildthecloud/ubuntu-core", image.getFullName()); } @Test public void testUrlTlnNoTag() { DockerImage image = DockerImage.parse("quay.io/ubuntu-core"); assertEquals("quay.io", image.getServer()); assertEquals("ubuntu-core", image.getFullName()); } @Test public void testUrlTln() { DockerImage image = DockerImage.parse("quay.io/ubuntu-core:123"); assertEquals("quay.io", image.getServer()); assertEquals("ubuntu-core:123", image.getFullName()); } @Test public void testLocalHost() { DockerImage image = DockerImage.parse("localhost:5000/ibuildthecloud/ubuntu-core:123"); assertEquals("localhost:5000", image.getServer()); assertEquals("ibuildthecloud/ubuntu-core:123", image.getFullName()); } @Test public void testLocalHostLatest() { DockerImage image = DockerImage.parse("localhost:5000/ibuildthecloud/ubuntu-core"); assertEquals("localhost:5000", image.getServer()); assertEquals("ibuildthecloud/ubuntu-core", image.getFullName()); } @Test public void testLocalHostTln() { DockerImage image = DockerImage.parse("localhost:5000/ubuntu-core:123"); assertEquals("localhost:5000", image.getServer()); assertEquals("ubuntu-core:123", image.getFullName()); } @Test public void testLocalHostTlnNoTag() { DockerImage image = DockerImage.parse("localhost:5000/ubuntu-core"); assertEquals("localhost:5000", image.getServer()); assertEquals("ubuntu-core", image.getFullName()); } @Test public void testLocalHostTlnNoTagNoPort() { DockerImage image = DockerImage.parse("localhost/ubuntu-core"); assertEquals("localhost", image.getServer()); assertEquals("ubuntu-core", image.getFullName()); } @Test public void testMyLocalHostTlnNoTagNoPort() { DockerImage image = DockerImage.parse("mylocalhost/ubuntu-core"); assertEquals("index.docker.io", image.getServer()); assertEquals("mylocalhost/ubuntu-core", image.getFullName()); } @Test public void testMalFormed() { DockerImage image = DockerImage.parse("foo:port/garbage/stuff/to:much"); assertNull(image); image = DockerImage.parse("garbage:bar/foo:1:2:3"); assertNull(image); } @Test public void testNoNamespaceWithShaTag() { DockerImage image = DockerImage.parse("ubuntu@" + sha); assertEquals("index.docker.io", image.getServer()); assertEquals("ubuntu@" + sha, image.getFullName()); } @Test public void testShaTag() { DockerImage image = DockerImage.parse("ibuildthecloud/ubuntu-core@" + sha); assertEquals("index.docker.io", image.getServer()); assertEquals("ibuildthecloud/ubuntu-core@" + sha, image.getFullName()); } @Test public void testUrlSha() { DockerImage image = DockerImage.parse("quay.io/ibuildthecloud/ubuntu-core@" + sha); assertEquals("quay.io", image.getServer()); assertEquals("ibuildthecloud/ubuntu-core@" + sha, image.getFullName()); } @Test public void testUrlTlnSha() { DockerImage image = DockerImage.parse("quay.io/ubuntu-core@" + sha); assertEquals("quay.io", image.getServer()); assertEquals("ubuntu-core@" + sha, image.getFullName()); } @Test public void testLocalHostSha() { DockerImage image = DockerImage.parse("localhost:5000/ibuildthecloud/ubuntu-core@" + sha); assertEquals("localhost:5000", image.getServer()); assertEquals("ibuildthecloud/ubuntu-core@" + sha, image.getFullName()); } @Test public void testLocalHostTlnSha() { DockerImage image = DockerImage.parse("localhost:5000/ubuntu-core@" + sha); assertEquals("localhost:5000", image.getServer()); assertEquals("ubuntu-core@" + sha, image.getFullName()); } @Test public void testIPServer() { DockerImage image = DockerImage.parse("127.0.0.1:5000/ubuntu-core@" + sha); assertEquals("127.0.0.1:5000", image.getServer()); assertEquals("ubuntu-core@" + sha, image.getFullName()); } }