1
1
/*
2
- * Copyright 2012-2023 the original author or authors.
2
+ * Copyright 2012-2024 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
@@ -37,7 +37,7 @@ class DockerTests {
37
37
@ Test
38
38
void asDockerConfigurationWithDefaults () {
39
39
Docker docker = new Docker ();
40
- DockerConfiguration dockerConfiguration = docker . asDockerConfiguration ( );
40
+ DockerConfiguration dockerConfiguration = createDockerConfiguration ( docker );
41
41
assertThat (dockerConfiguration .getHost ()).isNull ();
42
42
assertThat (dockerConfiguration .getBuilderRegistryAuthentication ()).isNull ();
43
43
assertThat (decoded (dockerConfiguration .getPublishRegistryAuthentication ().getAuthHeader ()))
@@ -53,14 +53,14 @@ void asDockerConfigurationWithHostConfiguration() {
53
53
docker .setHost ("docker.example.com" );
54
54
docker .setTlsVerify (true );
55
55
docker .setCertPath ("/tmp/ca-cert" );
56
- DockerConfiguration dockerConfiguration = docker . asDockerConfiguration ( );
56
+ DockerConfiguration dockerConfiguration = createDockerConfiguration ( docker );
57
57
DockerHostConfiguration host = dockerConfiguration .getHost ();
58
58
assertThat (host .getAddress ()).isEqualTo ("docker.example.com" );
59
59
assertThat (host .isSecure ()).isTrue ();
60
60
assertThat (host .getCertificatePath ()).isEqualTo ("/tmp/ca-cert" );
61
61
assertThat (host .getContext ()).isNull ();
62
62
assertThat (dockerConfiguration .isBindHostToBuilder ()).isFalse ();
63
- assertThat (docker . asDockerConfiguration ( ).getBuilderRegistryAuthentication ()).isNull ();
63
+ assertThat (createDockerConfiguration ( docker ).getBuilderRegistryAuthentication ()).isNull ();
64
64
assertThat (decoded (dockerConfiguration .getPublishRegistryAuthentication ().getAuthHeader ()))
65
65
.contains ("\" username\" : \" \" " )
66
66
.contains ("\" password\" : \" \" " )
@@ -72,14 +72,14 @@ void asDockerConfigurationWithHostConfiguration() {
72
72
void asDockerConfigurationWithContextConfiguration () {
73
73
Docker docker = new Docker ();
74
74
docker .setContext ("test-context" );
75
- DockerConfiguration dockerConfiguration = docker . asDockerConfiguration ( );
75
+ DockerConfiguration dockerConfiguration = createDockerConfiguration ( docker );
76
76
DockerHostConfiguration host = dockerConfiguration .getHost ();
77
77
assertThat (host .getContext ()).isEqualTo ("test-context" );
78
78
assertThat (host .getAddress ()).isNull ();
79
79
assertThat (host .isSecure ()).isFalse ();
80
80
assertThat (host .getCertificatePath ()).isNull ();
81
81
assertThat (dockerConfiguration .isBindHostToBuilder ()).isFalse ();
82
- assertThat (docker . asDockerConfiguration ( ).getBuilderRegistryAuthentication ()).isNull ();
82
+ assertThat (createDockerConfiguration ( docker ).getBuilderRegistryAuthentication ()).isNull ();
83
83
assertThat (decoded (dockerConfiguration .getPublishRegistryAuthentication ().getAuthHeader ()))
84
84
.contains ("\" username\" : \" \" " )
85
85
.contains ("\" password\" : \" \" " )
@@ -92,7 +92,7 @@ void asDockerConfigurationWithHostAndContextFails() {
92
92
Docker docker = new Docker ();
93
93
docker .setContext ("test-context" );
94
94
docker .setHost ("docker.example.com" );
95
- assertThatIllegalArgumentException ().isThrownBy (docker :: asDockerConfiguration )
95
+ assertThatIllegalArgumentException ().isThrownBy (() -> createDockerConfiguration ( docker ) )
96
96
.withMessageContaining ("Invalid Docker configuration" );
97
97
}
98
98
@@ -103,13 +103,13 @@ void asDockerConfigurationWithBindHostToBuilder() {
103
103
docker .setTlsVerify (true );
104
104
docker .setCertPath ("/tmp/ca-cert" );
105
105
docker .setBindHostToBuilder (true );
106
- DockerConfiguration dockerConfiguration = docker . asDockerConfiguration ( );
106
+ DockerConfiguration dockerConfiguration = createDockerConfiguration ( docker );
107
107
DockerHostConfiguration host = dockerConfiguration .getHost ();
108
108
assertThat (host .getAddress ()).isEqualTo ("docker.example.com" );
109
109
assertThat (host .isSecure ()).isTrue ();
110
110
assertThat (host .getCertificatePath ()).isEqualTo ("/tmp/ca-cert" );
111
111
assertThat (dockerConfiguration .isBindHostToBuilder ()).isTrue ();
112
- assertThat (docker . asDockerConfiguration ( ).getBuilderRegistryAuthentication ()).isNull ();
112
+ assertThat (createDockerConfiguration ( docker ).getBuilderRegistryAuthentication ()).isNull ();
113
113
assertThat (decoded (dockerConfiguration .getPublishRegistryAuthentication ().getAuthHeader ()))
114
114
.contains ("\" username\" : \" \" " )
115
115
.contains ("\" password\" : \" \" " )
@@ -124,7 +124,7 @@ void asDockerConfigurationWithUserAuth() {
124
124
new Docker .
DockerRegistry (
"user1" ,
"secret1" ,
"https://docker1.example.com" ,
"[email protected] " ));
125
125
docker .setPublishRegistry (
126
126
new Docker .
DockerRegistry (
"user2" ,
"secret2" ,
"https://docker2.example.com" ,
"[email protected] " ));
127
- DockerConfiguration dockerConfiguration = docker . asDockerConfiguration ( );
127
+ DockerConfiguration dockerConfiguration = createDockerConfiguration ( docker );
128
128
assertThat (decoded (dockerConfiguration .getBuilderRegistryAuthentication ().getAuthHeader ()))
129
129
.contains ("\" username\" : \" user1\" " )
130
130
.contains ("\" password\" : \" secret1\" " )
@@ -142,7 +142,7 @@ void asDockerConfigurationWithIncompleteBuilderUserAuthFails() {
142
142
Docker docker = new Docker ();
143
143
docker .setBuilderRegistry (
144
144
new Docker .
DockerRegistry (
"user" ,
null ,
"https://docker.example.com" ,
"[email protected] " ));
145
- assertThatIllegalArgumentException ().isThrownBy (docker :: asDockerConfiguration )
145
+ assertThatIllegalArgumentException ().isThrownBy (() -> createDockerConfiguration ( docker ) )
146
146
.withMessageContaining ("Invalid Docker builder registry configuration" );
147
147
}
148
148
@@ -151,16 +151,25 @@ void asDockerConfigurationWithIncompletePublishUserAuthFails() {
151
151
Docker docker = new Docker ();
152
152
docker .setPublishRegistry (
153
153
new Docker .
DockerRegistry (
"user" ,
null ,
"https://docker.example.com" ,
"[email protected] " ));
154
- assertThatIllegalArgumentException ().isThrownBy (docker :: asDockerConfiguration )
154
+ assertThatIllegalArgumentException ().isThrownBy (() -> createDockerConfiguration ( docker ) )
155
155
.withMessageContaining ("Invalid Docker publish registry configuration" );
156
156
}
157
157
158
+ @ Test
159
+ void asDockerConfigurationWithIncompletePublishUserAuthDoesNotFailIfPublishIsDisabled () {
160
+ Docker docker = new Docker ();
161
+ docker .setPublishRegistry (
162
+ new Docker .
DockerRegistry (
"user" ,
null ,
"https://docker.example.com" ,
"[email protected] " ));
163
+ DockerConfiguration dockerConfiguration = docker .asDockerConfiguration (false );
164
+ assertThat (dockerConfiguration .getPublishRegistryAuthentication ()).isNull ();
165
+ }
166
+
158
167
@ Test
159
168
void asDockerConfigurationWithTokenAuth () {
160
169
Docker docker = new Docker ();
161
170
docker .setBuilderRegistry (new Docker .DockerRegistry ("token1" ));
162
171
docker .setPublishRegistry (new Docker .DockerRegistry ("token2" ));
163
- DockerConfiguration dockerConfiguration = docker . asDockerConfiguration ( );
172
+ DockerConfiguration dockerConfiguration = createDockerConfiguration ( docker );
164
173
assertThat (decoded (dockerConfiguration .getBuilderRegistryAuthentication ().getAuthHeader ()))
165
174
.contains ("\" identitytoken\" : \" token1\" " );
166
175
assertThat (decoded (dockerConfiguration .getPublishRegistryAuthentication ().getAuthHeader ()))
@@ -175,10 +184,27 @@ void asDockerConfigurationWithUserAndTokenAuthFails() {
175
184
dockerRegistry .setToken ("token" );
176
185
Docker docker = new Docker ();
177
186
docker .setBuilderRegistry (dockerRegistry );
178
- assertThatIllegalArgumentException ().isThrownBy (docker :: asDockerConfiguration )
187
+ assertThatIllegalArgumentException ().isThrownBy (() -> createDockerConfiguration ( docker ) )
179
188
.withMessageContaining ("Invalid Docker builder registry configuration" );
180
189
}
181
190
191
+ @ Test
192
+ void asDockerConfigurationWithUserAndTokenAuthDoesNotFailIfPublishingIsDisabled () {
193
+ Docker .DockerRegistry dockerRegistry = new Docker .DockerRegistry ();
194
+ dockerRegistry .setUsername ("user" );
195
+ dockerRegistry .setPassword ("secret" );
196
+ dockerRegistry .setToken ("token" );
197
+ Docker docker = new Docker ();
198
+ docker .setPublishRegistry (dockerRegistry );
199
+ DockerConfiguration dockerConfiguration = docker .asDockerConfiguration (false );
200
+ assertThat (dockerConfiguration .getPublishRegistryAuthentication ()).isNull ();
201
+ }
202
+
203
+ private DockerConfiguration createDockerConfiguration (Docker docker ) {
204
+ return docker .asDockerConfiguration (true );
205
+
206
+ }
207
+
182
208
String decoded (String value ) {
183
209
return new String (Base64 .getDecoder ().decode (value ));
184
210
}
0 commit comments