/* * 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 org.objectweb.jtests.jms.framework; import javax.jms.JMSException; import java.io.IOException; import java.util.Properties; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.objectweb.jtests.jms.admin.Admin; import org.objectweb.jtests.jms.admin.AdminFactory; /** * Class extending <code>junit.framework.TestCase</code> to * provide a new <code>fail()</code> method with an <code>Exception</code> * as parameter. * <br /> * Every Test Case for JMS should extend this class instead of <code>junit.framework.TestCase</code> */ public abstract class JMSTestCase extends Assert { public static String _PROP_FILE_NAME = "provider.properties"; public static String getPropFileName() { return System.getProperty("joram.provider", _PROP_FILE_NAME); } public static void setPropFileName(String fileName) { System.setProperty("joram.provider", fileName); _PROP_FILE_NAME = fileName; } public static boolean startServer = true; protected Admin admin; /** * Fails a test with an exception which will be used for a message. * * If the exception is an instance of <code>javax.jms.JMSException</code>, the * message of the failure will contained both the JMSException and its linked exception * (provided there's one). */ public void fail(final Exception e) { if (e instanceof javax.jms.JMSException) { JMSException exception = (JMSException) e; String message = e.toString(); Exception linkedException = exception.getLinkedException(); if (linkedException != null) { message += " [linked exception: " + linkedException + "]"; } Assert.fail(message); } else { Assert.fail(e.getMessage()); } } /** * Should be overridden * * @return */ protected Properties getProviderProperties() throws IOException { Properties props = new Properties(); props.load(ClassLoader.getSystemResourceAsStream(getPropFileName())); return props; } @Before public void setUp() throws Exception { // Admin step // gets the provider administration wrapper... Properties props = getProviderProperties(); admin = AdminFactory.getAdmin(props); if (startServer) { admin.startServer(); } admin.start(); } @After public void tearDown() throws Exception { try { admin.stop(); if (startServer) { admin.stopServer(); } } finally { } } }