// Copyright � 2006-2007 ASERT. Released under the Canoo Webtest license.
package com.canoo.webtest.plugins.emailtest;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import com.canoo.webtest.engine.StepFailedException;
import com.canoo.webtest.util.ConversionUtil;
/**
* Abstract class used by email steps that store a property related to a single message.
*
* @author Paul King
*/
public abstract class AbstractMessageStoreStep extends AbstractStoreStep implements ISingleMessageStep
{
private String fMessageId;
/**
* Sets the message id.
*
* @param id The id of the message of interest
* @webtest.parameter
* required="yes"
* description="The message id."
*/
public void setMessageId(final String id) {
fMessageId = id;
}
public String getMessageId() {
return fMessageId;
}
/**
* Verifies the parameters
*/
protected void verifyParameters() {
super.verifyParameters();
optionalIntegerParamCheck(fMessageId, "messageId", true);
}
protected String processContent(final Folder folder) throws MessagingException {
final int id = ConversionUtil.convertToInt(getMessageId(), 0);
final Message message = getHelper().getMessage(id, folder);
if (message == null) {
throw new StepFailedException("Could not find message with id '" + id + "' on server.", this);
}
return performOperation(message);
}
protected abstract String performOperation(Message message) throws MessagingException;
}