2020import io .kubernetes .client .ApiException ;
2121import io .kubernetes .client .models .V1Container ;
2222import io .kubernetes .client .models .V1ContainerPort ;
23+ import io .kubernetes .client .models .V1EnvVar ;
2324import io .kubernetes .client .models .V1Pod ;
2425import io .kubernetes .client .models .V1PodSpec ;
2526import io .kubernetes .client .models .V1Status ;
27+ import java .util .ArrayList ;
2628import java .util .Arrays ;
2729import java .util .Collections ;
2830import java .util .List ;
@@ -39,14 +41,6 @@ public class AdminPodHelperTest extends PodHelperTestBase {
3941 private static final String INTERNAL_OPERATOR_CERT_FILE_PARAM = "internalOperatorCert" ;
4042 private static final String INTERNAL_OPERATOR_CERT_ENV_NAME = "INTERNAL_OPERATOR_CERT" ;
4143 private static final String CERTFILE = "certfile" ;
42- private static final String ITEM1 = "item1" ;
43- private static final String ITEM2 = "item2" ;
44- private static final String VALUE1 = "value1" ;
45- private static final String VALUE2 = "value2" ;
46- private static final String RAW_VALUE_1 = "find $(DOMAIN_NAME) at $(DOMAIN_HOME)" ;
47- private static final String END_VALUE_1 = "find domain1 at /shared/domain/domain1" ;
48- private static final String RAW_VALUE_2 = "$(SERVER_NAME) is $(ADMIN_NAME):$(ADMIN_PORT)" ;
49- private static final String END_VALUE_2 = "ADMIN_SERVER is ADMIN_SERVER:7001" ;
5044
5145 public AdminPodHelperTest () {
5246 super (ADMIN_SERVER , ADMIN_PORT );
@@ -246,12 +240,14 @@ public void whenDomainPresenceHasEnvironmentItems_createAdminPodStartupWithThem(
246240 .getDomain ()
247241 .getSpec ()
248242 .setServerStartup (
249- Collections .singletonList (
250- createServerStartup (ADMIN_SERVER , ITEM1 , VALUE1 , ITEM2 , VALUE2 )));
243+ new ServerStartupListBuilder (ADMIN_SERVER )
244+ .withVar ("item1" , "value1" )
245+ .withVar ("item2" , "value2" )
246+ .build ());
251247
252248 assertThat (
253249 getCreatedPodSpecContainer ().getEnv (),
254- allOf (hasEnvVar (ITEM1 , VALUE1 ), hasEnvVar (ITEM2 , VALUE2 )));
250+ allOf (hasEnvVar ("item1" , "value1" ), hasEnvVar ("item2" , "value2" )));
255251 }
256252
257253 @ Test
@@ -260,19 +256,55 @@ public void whenDomainPresenceHasEnvironmentItemsWithVariables_createAdminPodSta
260256 .getDomain ()
261257 .getSpec ()
262258 .setServerStartup (
263- Collections .singletonList (
264- createServerStartup (ADMIN_SERVER , ITEM1 , RAW_VALUE_1 , ITEM2 , RAW_VALUE_2 )));
259+ new ServerStartupListBuilder (ADMIN_SERVER )
260+ .withVar ("item1" , "find $(DOMAIN_NAME) at $(DOMAIN_HOME)" )
261+ .withVar ("item2" , "$(SERVER_NAME) is $(ADMIN_NAME):$(ADMIN_PORT)" )
262+ .build ());
265263
266264 assertThat (
267265 getCreatedPodSpecContainer ().getEnv (),
268- allOf (hasEnvVar (ITEM1 , END_VALUE_1 ), hasEnvVar (ITEM2 , END_VALUE_2 )));
266+ allOf (
267+ hasEnvVar ("item1" , "find domain1 at /shared/domain/domain1" ),
268+ hasEnvVar ("item2" , "ADMIN_SERVER is ADMIN_SERVER:7001" )));
269269 }
270270
271- private ServerStartup createServerStartup (
272- String serverName , String item1 , String value1 , String item2 , String value2 ) {
273- return new ServerStartup ()
274- .withServerName (serverName )
275- .withEnv (Arrays .asList (envItem (item1 , value1 ), envItem (item2 , value2 )));
271+ @ Test
272+ public void whenDomainPresenceHasIterativeVariables_createAdminPodStartupWithThem () {
273+ domainPresenceInfo
274+ .getDomain ()
275+ .getSpec ()
276+ .setServerStartup (
277+ new ServerStartupListBuilder (ADMIN_SERVER )
278+ .withVar ("item1" , "from $(item3)" )
279+ .withVar ("item2" , "<$(DOMAIN_NAME)>" )
280+ .withVar ("item3" , "using $(item2)" )
281+ .build ());
282+
283+ assertThat (
284+ getCreatedPodSpecContainer ().getEnv (),
285+ allOf (
286+ hasEnvVar ("item1" , "from using <domain1>" ),
287+ hasEnvVar ("item2" , "<domain1>" ),
288+ hasEnvVar ("item3" , "using <domain1>" )));
289+ }
290+
291+ static class ServerStartupListBuilder {
292+ private String serverName ;
293+ private List <V1EnvVar > vars = new ArrayList <>();
294+
295+ ServerStartupListBuilder (String serverName ) {
296+ this .serverName = serverName ;
297+ }
298+
299+ ServerStartupListBuilder withVar (String name , String value ) {
300+ vars .add (new V1EnvVar ().name (name ).value (value ));
301+ return this ;
302+ }
303+
304+ List <ServerStartup > build () {
305+ return Collections .singletonList (
306+ new ServerStartup ().withServerName (serverName ).withEnv (vars ));
307+ }
276308 }
277309
278310 @ Override
0 commit comments