/** * Copyright 2005-2016 Red Hat, Inc. * * Red Hat licenses this file to you under the Apache License, version * 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. */ package io.fabric8.spring.boot.external; import io.fabric8.annotations.PortName; import io.fabric8.annotations.Protocol; import io.fabric8.annotations.ServiceName; import io.fabric8.kubernetes.api.KubernetesHelper; import io.fabric8.kubernetes.client.Config; import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.spring.boot.Fabric8Application; import io.fabric8.spring.boot.URLToConnection; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.net.URLConnection; @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = {URLToConnection.class, Fabric8Application.class}) public class ApplicationExternalTest { @BeforeClass public static void setUpClass() throws Exception { System.setProperty("SERVICE1_PROTOCOL", "https"); System.setProperty("SERVICE2_PROTOCOL", "https"); System.setProperty("SERVICE3_PROTOCOL", "https"); MockConfigurer.configure(); System.setProperty(KubernetesHelper.KUBERNETES_NAMESPACE_SYSTEM_PROPERTY, KubernetesHelper.DEFAULT_NAMESPACE); System.setProperty(Config.KUBERNETES_TRUST_CERT_SYSTEM_PROPERTY, "true"); } @Autowired private KubernetesClient client; @Autowired @ServiceName("service1") private URLConnection service1; @Autowired @ServiceName("service2") private String service2; @Autowired @ServiceName("service3") @Protocol("http") private String service3; @Autowired @ServiceName("multiport") @PortName("port1") private String multiport; @Autowired @ServiceName("multiport") @PortName("port2") private String multiport2; @Test public void testSpringBoot() { //Assert client is injected Assert.assertNotNull(client); //Assert injection as service Assert.assertNotNull(service1); //Assert injection as string Assert.assertNotNull(service2); //Assert injection as string with protocol Assert.assertNotNull(service3); } @Test public void testMultiport() { Assert.assertNotNull(multiport); Assert.assertTrue(multiport.endsWith("8081")); Assert.assertNotNull(multiport2); Assert.assertTrue(multiport2.endsWith("8082")); } }