2525import static org .assertj .core .api .Assertions .assertThat ;
2626import static org .assertj .core .api .Assertions .assertThatIllegalArgumentException ;
2727import static org .assertj .core .api .Assertions .assertThatIllegalStateException ;
28- import static org .assertj .core .api .Assertions .fail ;
2928
3029/**
3130 * Tests for {@link ImageReference}.
@@ -46,6 +45,16 @@ void ofSimpleName() {
4645 assertThat (reference ).hasToString ("docker.io/library/ubuntu" );
4746 }
4847
48+ @ Test
49+ void ofSimpleNameWithSingleCharacterSuffix () {
50+ ImageReference reference = ImageReference .of ("ubuntu-a" );
51+ assertThat (reference .getDomain ()).isEqualTo ("docker.io" );
52+ assertThat (reference .getName ()).isEqualTo ("library/ubuntu-a" );
53+ assertThat (reference .getTag ()).isNull ();
54+ assertThat (reference .getDigest ()).isNull ();
55+ assertThat (reference ).hasToString ("docker.io/library/ubuntu-a" );
56+ }
57+
4958 @ Test
5059 void ofLibrarySlashName () {
5160 ImageReference reference = ImageReference .of ("library/ubuntu" );
@@ -176,7 +185,7 @@ void ofImageNameTagAndDigest() {
176185 }
177186
178187 @ Test
179- void ofWhenHasIllegalCharacter () {
188+ void ofWhenHasIllegalCharacterThrowsException () {
180189 assertThatIllegalArgumentException ()
181190 .isThrownBy (() -> ImageReference
182191 .of ("registry.example.com/example/example-app:1.6.0-dev.2.uncommitted+wip.foo.c75795d" ))
@@ -191,6 +200,14 @@ void ofWhenContainsUpperCaseThrowsException() {
191200 .withMessageContaining ("Unable to parse image reference" );
192201 }
193202
203+ @ Test
204+ @ Timeout (value = 1 , threadMode = ThreadMode .SEPARATE_THREAD )
205+ void ofWhenIsVeryLongAndHasIllegalCharacter () {
206+ assertThatIllegalArgumentException ().isThrownBy (() -> ImageReference
207+ .of ("docker.io/library/this-image-has-a-long-name-with-an-invalid-tag-which-is-at-danger-of-catastrophic-backtracking:1.0.0+1234" ))
208+ .withMessageContaining ("Unable to parse image reference" );
209+ }
210+
194211 @ Test
195212 void forJarFile () {
196213 assertForJarFile ("spring-boot.2.0.0.BUILD-SNAPSHOT.jar" , "library/spring-boot" , "2.0.0.BUILD-SNAPSHOT" );
@@ -309,26 +326,4 @@ void inTaglessForm() {
309326 assertThat (updated ).hasToString ("docker.io/library/ubuntu" );
310327 }
311328
312- @ Test
313- void ofSimpleNameWithSingleCharacterSuffix () {
314- ImageReference reference = ImageReference .of ("ubuntu-a" );
315- assertThat (reference .getDomain ()).isEqualTo ("docker.io" );
316- assertThat (reference .getName ()).isEqualTo ("library/ubuntu-a" );
317- assertThat (reference .getTag ()).isNull ();
318- assertThat (reference .getDigest ()).isNull ();
319- assertThat (reference ).hasToString ("docker.io/library/ubuntu-a" );
320- }
321-
322- @ Test
323- @ Timeout (value = 1 , threadMode = ThreadMode .SEPARATE_THREAD )
324- void ofWhenIsVeryLongAndHasIllegalCharacter () {
325- try {
326- ImageReference
327- .of ("docker.io/library/this-image-has-a-long-name-with-an-invalid-tag-which-is-at-danger-of-catastrophic-backtracking:1.0.0+1234" );
328- fail ("Contains an illegal character and should have thrown an IllegalArgumentException" );
329- }
330- catch (IllegalArgumentException ignored ) {
331- }
332- }
333-
334329}
0 commit comments