/** * 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.itests; import io.fabric8.arquillian.kubernetes.Constants; import io.fabric8.arquillian.kubernetes.Session; import io.fabric8.kubernetes.model.KubernetesClient; import io.fabric8.kubernetes.api.model.Pod; import io.fabric8.kubernetes.jolokia.JolokiaClients; import io.fabric8.utils.Asserts; import io.fabric8.utils.Block; import org.assertj.core.api.Condition; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; import org.jolokia.client.J4pClient; import org.junit.Test; import org.junit.runner.RunWith; import static io.fabric8.kubernetes.assertions.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat; import static io.fabric8.jolokia.assertions.Assertions.assertThat; /** * Integration test that broker, producer, consumer all works */ @RunWith(Arquillian.class) public class BrokerProducerConsumerIT { @ArquillianResource KubernetesClient client; @ArquillianResource Session session; @ArquillianResource JolokiaClients jolokiaClients; String brokerReplicationControllerId = "fabric8mq-controller"; String consumerReplicationControllerId = "fabric8mq-consumer-controller"; @Test public void testMQConsumer() throws Exception { assertThat(client).replicationController(brokerReplicationControllerId).isNotNull(); assertThat(client).replicationController(consumerReplicationControllerId).isNotNull(); assertThat(client).pods() .runningStatus() .filterNamespace(session.getNamespace()) .haveAtLeast(1, new Condition<Pod>() { @Override public boolean matches(Pod podSchema) { return true; } }); Asserts.assertWaitFor(10 * 60 * 1000, new Block() { @Override public void invoke() throws Exception { J4pClient brokerClient = jolokiaClients.assertClientForReplicationController(brokerReplicationControllerId); J4pClient consumerClient = jolokiaClients.assertClientForReplicationController(consumerReplicationControllerId); assertThat(consumerClient).stringAttribute("org.apache.camel:context=camel-1,type=context,name=\"camel-1\"", "State").isEqualTo("Started"); assertThat(brokerClient).longAttribute("org.apache.activemq:type=Broker,brokerName=default,destinationType=Queue,destinationName=TEST.FOO", "EnqueueCount").isGreaterThan(1000); assertThat(brokerClient).longAttribute("org.apache.activemq:type=Broker,brokerName=default,destinationType=Queue,destinationName=TEST.FOO", "DequeueCount").isGreaterThan(1000); } }); } }