11package org .testcontainers .utility ;
22
33import org .junit .jupiter .api .Nested ;
4+ import org .junit .jupiter .api .Test ;
45import org .junit .jupiter .params .ParameterizedTest ;
56import org .junit .jupiter .params .provider .Arguments ;
67import org .junit .jupiter .params .provider .MethodSource ;
@@ -24,6 +25,8 @@ public static String[] getNames() {
2425 "registry.foo.com:1234/repo_here/my-name:1.0" ,
2526 "registry.foo.com:1234/repo-here/my-name@sha256:1234abcd1234abcd1234abcd1234abcd" ,
2627 "registry.foo.com:1234/my-name@sha256:1234abcd1234abcd1234abcd1234abcd" ,
28+ "myname:latest@sha256:1234abcd1234abcd1234abcd1234abcd" ,
29+ "registry.foo.com:1234/repo-here/my-name:1.0@sha256:1234abcd1234abcd1234abcd1234abcd" ,
2730 "1.2.3.4/my-name:1.0" ,
2831 "1.2.3.4:1234/my-name:1.0" ,
2932 "1.2.3.4/repo-here/my-name:1.0" ,
@@ -147,4 +150,37 @@ void testParsing(
147150 }
148151 }
149152 }
153+
154+ @ Nested
155+ class TagAndDigestParsing {
156+
157+ @ Test
158+ void testTagAndDigestStripsTagFromRepository () {
159+ DockerImageName imageName = DockerImageName .parse ("myname:latest@sha256:1234abcd1234abcd1234abcd1234abcd" );
160+
161+ assertThat (imageName .getRegistry ()).isEqualTo ("" );
162+ assertThat (imageName .getUnversionedPart ()).isEqualTo ("myname" );
163+ assertThat (imageName .getVersionPart ()).isEqualTo ("sha256:1234abcd1234abcd1234abcd1234abcd" );
164+ }
165+
166+ @ Test
167+ void testTagAndDigestWithRepoPath () {
168+ DockerImageName imageName = DockerImageName .parse ("repo/myname:1.0@sha256:1234abcd1234abcd1234abcd1234abcd" );
169+
170+ assertThat (imageName .getRegistry ()).isEqualTo ("" );
171+ assertThat (imageName .getUnversionedPart ()).isEqualTo ("repo/myname" );
172+ assertThat (imageName .getVersionPart ()).isEqualTo ("sha256:1234abcd1234abcd1234abcd1234abcd" );
173+ }
174+
175+ @ Test
176+ void testTagAndDigestWithRegistry () {
177+ DockerImageName imageName = DockerImageName .parse (
178+ "registry.foo.com:1234/repo-here/my-name:1.0@sha256:1234abcd1234abcd1234abcd1234abcd"
179+ );
180+
181+ assertThat (imageName .getRegistry ()).isEqualTo ("registry.foo.com:1234" );
182+ assertThat (imageName .getUnversionedPart ()).isEqualTo ("registry.foo.com:1234/repo-here/my-name" );
183+ assertThat (imageName .getVersionPart ()).isEqualTo ("sha256:1234abcd1234abcd1234abcd1234abcd" );
184+ }
185+ }
150186}
0 commit comments