| /******************************************************************************* |
| * Copyright (c) 2004, 2010 BREDEX GmbH. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * BREDEX GmbH - initial API and implementation and/or initial documentation |
| *******************************************************************************/ |
| package org.eclipse.jubula.client.internal.commands; |
| |
| import org.eclipse.jubula.client.core.businessprocess.TestExecution; |
| import org.eclipse.jubula.client.core.i18n.Messages; |
| import org.eclipse.jubula.communication.internal.APICommand; |
| import org.eclipse.jubula.communication.internal.message.CAPTestResponseMessage; |
| import org.eclipse.jubula.communication.internal.message.Message; |
| import org.eclipse.jubula.communication.internal.message.MessageCap; |
| import org.eclipse.jubula.tools.internal.constants.StringConstants; |
| import org.eclipse.osgi.util.NLS; |
| import org.slf4j.Logger; |
| import org.slf4j.LoggerFactory; |
| |
| |
| |
| /** |
| * The command class for CAPTestResponseMessage. <br> |
| * |
| * Currently the execute() methods logs the result and returns always null (no |
| * message to send as response). |
| * |
| * @author BREDEX GmbH |
| * @created 07.09.2004 |
| * |
| */ |
| public class CAPTestResponseCommand implements APICommand { |
| /** |
| * The logger |
| */ |
| private static final Logger LOG = |
| LoggerFactory.getLogger(CAPTestResponseCommand.class); |
| /** |
| * The message |
| */ |
| private CAPTestResponseMessage m_capTestResponseMessage; |
| |
| |
| /** |
| * <code>m_messageCap</code> contains data sending to server for the |
| * actual cap (test step) |
| */ |
| private MessageCap m_messageCap; |
| |
| /** |
| * constructor |
| */ |
| public CAPTestResponseCommand() { |
| super(); |
| } |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public Message getMessage() { |
| return m_capTestResponseMessage; |
| } |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public void setMessage(Message message) { |
| m_capTestResponseMessage = (CAPTestResponseMessage)message; |
| } |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public Message execute() { |
| logResult(); |
| TestExecution.getInstance() |
| .processServerResponse((CAPTestResponseMessage)getMessage()); |
| return null; |
| } |
| |
| /** |
| * {@inheritDoc} |
| */ |
| public void timeout() { |
| StringBuilder messageCapData = |
| new StringBuilder(StringConstants.SEMICOLON); |
| messageCapData.append(Messages.MessageCap); |
| messageCapData.append(StringConstants.COLON); |
| messageCapData.append(StringConstants.SPACE); |
| if (LOG.isErrorEnabled()) { |
| if (m_capTestResponseMessage != null) { |
| MessageCap msgCap = m_capTestResponseMessage.getMessageCap(); |
| messageCapData.append(Messages.Method) |
| .append(StringConstants.APOSTROPHE) |
| .append(msgCap.getMethod()) |
| .append(StringConstants.APOSTROPHE) |
| .append(StringConstants.COMMA) |
| .append(StringConstants.SPACE) |
| .append(Messages.ComponentId) |
| .append(StringConstants.SPACE) |
| .append(StringConstants.APOSTROPHE) |
| .append(msgCap.getCi()) |
| .append(StringConstants.APOSTROPHE); |
| } else { |
| messageCapData.append(Messages.Null); |
| } |
| } |
| LOG.error(this.getClass().getName() |
| + StringConstants.SPACE + Messages.TimeoutCalled |
| + messageCapData.toString()); |
| TestExecution.getInstance().timeout(); |
| } |
| |
| |
| /** |
| * private method logging the result on info level |
| */ |
| private void logResult() { |
| if (LOG.isInfoEnabled()) { |
| String message = Messages.TestStepResult + StringConstants.COLON; |
| int state = m_capTestResponseMessage.getState(); |
| switch (state) { |
| case CAPTestResponseMessage.TEST_OK: |
| message = message + Messages.Success; |
| if (!void.class.getName().equals( |
| m_capTestResponseMessage.getReturnType())) { |
| |
| message = message + StringConstants.NEWLINE |
| + Messages.ReturnType + StringConstants.SPACE |
| + m_capTestResponseMessage.getReturnType() |
| + StringConstants.NEWLINE + Messages.ReturnValue |
| + StringConstants.COLON |
| + m_capTestResponseMessage.getReturnValue(); |
| } |
| break; |
| case CAPTestResponseMessage.TEST_FAILED: |
| message = message |
| + Messages.GeneralFailure + StringConstants.NEWLINE; |
| break; |
| case CAPTestResponseMessage.FAILURE_SECURITY: |
| message = message + NLS.bind(Messages.Failure, |
| Messages.MissingPermission); |
| break; |
| case CAPTestResponseMessage.FAILURE_ACCESSIBILITY: |
| message = message + NLS.bind(Messages.Failure, |
| Messages.MethodNotAccesible); |
| break; |
| case CAPTestResponseMessage |
| .FAILURE_INVALID_IMPLEMENTATION_CLASS: |
| message = message + NLS.bind(Messages.Failure, |
| Messages.MissingImplementationClass); |
| break; |
| case CAPTestResponseMessage.FAILURE_METHOD_NOT_FOUND: |
| break; |
| case CAPTestResponseMessage.FAILURE_INVALID_PARAMETER: |
| message = message + NLS.bind(Messages.Failure, |
| Messages.parametersAreNotValid); |
| break; |
| case CAPTestResponseMessage.FAILURE_STEP_EXECUTION: |
| message = message + NLS.bind(Messages.Failure, |
| Messages.ImplementingMethodHasThrownAnException); |
| break; |
| case CAPTestResponseMessage.FAILURE_UNSUPPORTED_COMPONENT: |
| message = message + NLS.bind(Messages.Failure, |
| Messages.ComponentIsNotSupported); |
| break; |
| case CAPTestResponseMessage.FAILURE_COMPONENT_NOT_FOUND: |
| message = message + NLS.bind(Messages.Failure, |
| Messages.ComponentNotFound); |
| break; |
| default: |
| message = Messages.UnknownState + StringConstants.COLON |
| + StringConstants.SPACE + state; |
| } |
| LOG.debug(message); |
| } |
| } |
| /** |
| * @return Returns the messageCap. |
| */ |
| public MessageCap getMessageCap() { |
| return m_messageCap; |
| } |
| |
| /** |
| * @param messageCap the message cap to set |
| */ |
| public void setMessageCap(MessageCap messageCap) { |
| m_messageCap = messageCap; |
| } |
| } |