/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF 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 weather; import junit.framework.Assert; import org.apache.activemq.broker.BrokerService; import org.apache.tuscany.sca.host.embedded.SCADomain; import org.junit.After; import org.junit.Before; import org.junit.Test; import weather.WeatherService; /** * Test case for Tempore weather client */ public class WeatherTestCase { private BrokerService jmsBroker; private WeatherService weatherService; private WeatherService weatherService2; private WeatherSubscriber weatherSubscriber; private WeatherSubscriber weatherSubscriber2; private SCADomain weatherSubscriberDomain; private SCADomain weatherPublisherDomain; @Before public void startWeatherTest() throws Exception { try { startBroker(); weatherPublisherDomain = SCADomain.newInstance("weatherPublisher.composite"); weatherSubscriberDomain = SCADomain.newInstance("weatherSubscriber.composite"); weatherService = weatherPublisherDomain.getService(WeatherService.class, "WeatherPublisherComponent"); weatherService2 = weatherPublisherDomain.getService(WeatherService.class, "WeatherPublisherComponent2"); weatherSubscriber = weatherSubscriberDomain.getService(WeatherSubscriber.class, "WeatherSubscriberComponent/WeatherSubscriber"); weatherSubscriber2 = weatherPublisherDomain.getService(WeatherSubscriber.class, "WeatherSubscriberComponent2/WeatherSubscriber"); } catch (Throwable e) { e.printStackTrace(); } } @Test public void runWeatherTest() throws Exception { weatherService.start(); weatherService2.start(); Thread.sleep(2000); int[] messageList = weatherSubscriber.getMessageList(); Assert.assertNotNull("Message list is null.", messageList); Assert.assertEquals("Message list invalid.", 3, messageList.length); int[] expectedMessages = {0, 1, 1}; for (int i = 0; i < messageList.length; i++) { Assert.assertEquals("Message type " + i + " not received correctly.", expectedMessages[i], messageList[i]); } int[] messageList2 = weatherSubscriber2.getMessageList(); Assert.assertNotNull("Message list is null.", messageList2); Assert.assertEquals("Message list invalid.", 3, messageList2.length); int[] expectedMessages2 = {1, 0, 0}; for (int i = 0; i < messageList2.length; i++) { Assert.assertEquals("Message type " + i + " not received correctly.", expectedMessages2[i], messageList2[i]); } } @After public void stopClient() throws Exception { weatherPublisherDomain.close(); weatherSubscriberDomain.close(); } protected void startBroker() throws Exception { jmsBroker = new BrokerService(); jmsBroker.setPersistent(false); jmsBroker.setUseJmx(false); jmsBroker.addConnector("tcp://localhost:61619"); jmsBroker.start(); } }