55package oracle .kubernetes .operator .helpers ;
66
77import static org .hamcrest .CoreMatchers .equalTo ;
8+ import static org .hamcrest .Matchers .allOf ;
9+ import static org .hamcrest .Matchers .hasItem ;
810import static org .junit .Assert .assertThat ;
911
12+ import io .kubernetes .client .models .V1Container ;
13+ import io .kubernetes .client .models .V1EnvVar ;
14+ import io .kubernetes .client .models .V1JobSpec ;
1015import io .kubernetes .client .models .V1ObjectMeta ;
16+ import io .kubernetes .client .models .V1SecretReference ;
17+ import java .util .List ;
18+ import oracle .kubernetes .operator .ProcessingConstants ;
19+ import oracle .kubernetes .operator .TuningParameters ;
20+ import oracle .kubernetes .operator .helpers .JobHelper .DomainIntrospectorJobStepContext ;
21+ import oracle .kubernetes .operator .work .Component ;
22+ import oracle .kubernetes .operator .work .Packet ;
1123import oracle .kubernetes .weblogic .domain .ClusterConfigurator ;
1224import oracle .kubernetes .weblogic .domain .DomainConfigurator ;
1325import oracle .kubernetes .weblogic .domain .DomainConfiguratorFactory ;
1426import oracle .kubernetes .weblogic .domain .ServerConfigurator ;
1527import oracle .kubernetes .weblogic .domain .v2 .ConfigurationConstants ;
1628import oracle .kubernetes .weblogic .domain .v2 .Domain ;
29+ import oracle .kubernetes .weblogic .domain .v2 .DomainSpec ;
30+ import org .hamcrest .Matcher ;
31+ import org .hamcrest .junit .MatcherAssert ;
1732import org .junit .Test ;
1833
1934public class JobHelperTest {
2035
2136 private static final String NS = "ns1" ;
37+ private static final String DOMAIN_UID = "JobHelperTestDomain" ;
2238
2339 @ Test
2440 public void creatingServers_true_whenClusterReplicas_gt_0 () {
@@ -126,9 +142,66 @@ public void creatingServers_true_when_server_with_START_AWLAYS_startPolicy() {
126142 assertThat (JobHelper .creatingServers (domainPresenceInfo ), equalTo (true ));
127143 }
128144
145+ @ Test
146+ public void whenDomainHasEnvironmentItems_introspectorPodStartupWithThem () {
147+ DomainPresenceInfo domainPresenceInfo = createDomainPresenceInfo ();
148+
149+ configureDomain (domainPresenceInfo )
150+ .withEnvironmentVariable ("item1" , "value1" )
151+ .withEnvironmentVariable ("item2" , "value2" );
152+
153+ Packet packet = new Packet ();
154+ packet
155+ .getComponents ()
156+ .put (ProcessingConstants .DOMAIN_COMPONENT_NAME , Component .createFor (domainPresenceInfo ));
157+ DomainIntrospectorJobStepContext domainIntrospectorJobStepContext =
158+ new DomainIntrospectorJobStepContext (domainPresenceInfo , packet );
159+ V1JobSpec jobSpec =
160+ domainIntrospectorJobStepContext .createJobSpec (TuningParameters .getInstance ());
161+
162+ MatcherAssert .assertThat (
163+ getContainerFromJobSpec (jobSpec , domainPresenceInfo .getDomainUID ()).getEnv (),
164+ allOf (hasEnvVar ("item1" , "value1" ), hasEnvVar ("item2" , "value2" )));
165+ }
166+
167+ @ Test
168+ public void whenAdminServerHasEnvironmentItems_introspectorPodStartupWithThem () {
169+ DomainPresenceInfo domainPresenceInfo = createDomainPresenceInfo ();
170+
171+ configureDomain (domainPresenceInfo )
172+ .withEnvironmentVariable ("item1" , "domain-value1" )
173+ .withEnvironmentVariable ("item2" , "domain-value2" )
174+ .configureAdminServer ()
175+ .withEnvironmentVariable ("item2" , "admin-value2" )
176+ .withEnvironmentVariable ("item3" , "admin-value3" );
177+
178+ Packet packet = new Packet ();
179+ packet
180+ .getComponents ()
181+ .put (ProcessingConstants .DOMAIN_COMPONENT_NAME , Component .createFor (domainPresenceInfo ));
182+ DomainIntrospectorJobStepContext domainIntrospectorJobStepContext =
183+ new DomainIntrospectorJobStepContext (domainPresenceInfo , packet );
184+ V1JobSpec jobSpec =
185+ domainIntrospectorJobStepContext .createJobSpec (TuningParameters .getInstance ());
186+
187+ MatcherAssert .assertThat (
188+ getContainerFromJobSpec (jobSpec , domainPresenceInfo .getDomainUID ()).getEnv (),
189+ allOf (
190+ hasEnvVar ("item1" , "domain-value1" ),
191+ hasEnvVar ("item2" , "admin-value2" ),
192+ hasEnvVar ("item3" , "admin-value3" )));
193+ }
194+
129195 private DomainPresenceInfo createDomainPresenceInfo () {
130196 DomainPresenceInfo domainPresenceInfo =
131- new DomainPresenceInfo (new Domain ().withMetadata (new V1ObjectMeta ().namespace (NS )));
197+ new DomainPresenceInfo (
198+ new Domain ()
199+ .withMetadata (new V1ObjectMeta ().namespace (NS ))
200+ .withSpec (
201+ new DomainSpec ()
202+ .withDomainUID (DOMAIN_UID )
203+ .withWebLogicCredentialsSecret (
204+ new V1SecretReference ().name ("webLogicCredentialsSecretName" ))));
132205 configureDomain (domainPresenceInfo )
133206 .withDefaultServerStartPolicy (ConfigurationConstants .START_NEVER );
134207 return domainPresenceInfo ;
@@ -147,4 +220,20 @@ private ServerConfigurator configureServer(
147220 DomainPresenceInfo domainPresenceInfo , String serverName ) {
148221 return configureDomain (domainPresenceInfo ).configureServer (serverName );
149222 }
223+
224+ private V1Container getContainerFromJobSpec (V1JobSpec jobSpec , String domainUID ) {
225+ List <V1Container > containersList = jobSpec .getTemplate ().getSpec ().getContainers ();
226+ if (containersList != null ) {
227+ for (V1Container container : containersList ) {
228+ if (JobHelper .createJobName (domainUID ).equals (container .getName ())) {
229+ return container ;
230+ }
231+ }
232+ }
233+ return null ;
234+ }
235+
236+ static Matcher <Iterable <? super V1EnvVar >> hasEnvVar (String name , String value ) {
237+ return hasItem (new V1EnvVar ().name (name ).value (value ));
238+ }
150239}
0 commit comments