/* * JBoss, Home of Professional Open Source * Copyright 2007, Red Hat Middleware LLC, and individual contributors * as indicated by the @author tags. * See the copyright.txt in the distribution for a * full listing of individual contributors. * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions * of the GNU Lesser General Public License, v. 2.1. * This program is distributed in the hope that it will be useful, but WITHOUT A * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public License, * v.2.1 along with this distribution; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. * * (C) 2005-2006, * @author JBoss Inc. */ package com.jboss.transaction.wstf.interop; import junit.framework.TestCase; import junit.framework.TestResult; import com.jboss.transaction.wstf.proxy.ProxyConversation; /** * Base class for interop tests. * @author kevin */ public class InteropTestCase extends TestCase { /** * The log message prefix start. */ private static final String LOG_MESSAGE_PREFIX_START = "<log:message testcase=\"" ; /** * The log message prefix centre. */ private static final String LOG_MESSAGE_PREFIX_CENTRE = "\" message=\"" ; /** * The log message prefix end. */ private static final String LOG_MESSAGE_PREFIX_END = "\"><log:content>" ; /** * The log message suffix. */ private static final String LOG_MESSAGE_SUFFIX = "</log:content></log:message>" ; /** * The URI of the participant. */ private String participantURI ; /** * The conversation id for the test. */ private String conversationId ; /** * The test timeout value. */ private long testTimeout ; /** * The asynchronous test flag. */ private boolean asyncTest ; /** * Set the participant URI. * @param participantURI The participant URI. */ public void setParticipantURI(final String participantURI) { this.participantURI = participantURI ; } /** * Get the participant URI. * @return The participant URI. */ protected String getParticipantURI() { return participantURI ; } /** * Set the test timeout value. * testTimeout The test timeout value. */ public void setTestTimeout(final long testTimeout) { this.testTimeout = testTimeout ; } /** * Get the asynchronous test flag. * @return The asynchronous test flag. */ protected boolean getAsyncTest() { return asyncTest ; } /** * Set the asynchronous test flag. * asyncTest The asynchronous test flag. */ public void setAsyncTest(final boolean asyncTest) { this.asyncTest = asyncTest ; } /** * Get the test timeout value. * @return The test timeout value. */ protected long getTestTimeout() { return testTimeout ; } /** * Get the conversation id. * @return The conversation id. */ protected String getConversationId() { return conversationId ; } protected void setConversationId(String conversationId) { this.conversationId = conversationId; } /** * Wraps the run method to include logging of message interactions. * @param result The test result. */ public void run(final TestResult result) { // get a conversation id, start the log, clear it on finish. conversationId = ProxyConversation.createConversation() ; try { super.run(result) ; } finally { final String[] messages = ProxyConversation.removeConversation(conversationId) ; conversationId = null ; if (messages != null) { final int numMessages = messages.length ; final StringBuffer buffer = new StringBuffer() ; int count = 0 ; while(count < numMessages) { final String message = messages[count] ; count++ ; if (message != null) { buffer.append(LOG_MESSAGE_PREFIX_START) ; buffer.append(getName()) ; buffer.append(LOG_MESSAGE_PREFIX_CENTRE) ; buffer.append(count) ; buffer.append(LOG_MESSAGE_PREFIX_END) ; buffer.append(message) ; buffer.append(LOG_MESSAGE_SUFFIX) ; } } MessageLogging.appendThreadLog(buffer.toString()) ; } } } /** * Return the string represenation of this test. * @return the string representation. */ public String toString() { return getName() ; } }