// Copyright � 2006-2007 ASERT. Released under the Canoo Webtest license.
package com.canoo.webtest.plugins.emailtest;
import javax.mail.Message;
import javax.mail.Folder;
import javax.mail.MessagingException;
import com.canoo.webtest.steps.Step;
/**
* Test for {@link EmailDeleteMessage}.
*
* @author Paul King, ASERT
*/
public class EmailDeleteMessageTest extends BaseEmailTestCase
{
protected Step createStep() {
return new EmailDeleteMessage();
}
public void testMandatoryParams() {
final Step step = getStep();
step.getContext().put("EmailConfigInfo", null);
assertErrorOnExecute(step, "messageId not set",
"Can't parse messageId parameter with value 'null' as an integer.");
}
public void testCallsHelper() throws Exception {
final EmailDeleteMessage step = (EmailDeleteMessage) getStep();
final EmailHelper helper = (EmailHelper) mock(EmailHelper.class, "helper");
step.setHelper(helper);
final boolean deleteOnExit = true;
final Message mockMessage = setUpGetMessageExpectations(step, helper, deleteOnExit);
helper.markForDelete(mockMessage);
modify().args(is.instanceOf(Message.class));
setUpMessageOperationFinaliseExpectations(helper, deleteOnExit);
startVerification();
executeStep(step);
}
public void testNullMessage() throws Exception {
final EmailDeleteMessage step = (EmailDeleteMessage) getStep();
final EmailHelper helper = (EmailHelper) mock(EmailHelper.class, "helper");
step.setHelper(helper);
final boolean deleteOnExit = true;
final Folder mockFolder = createMockFolder();
step.getContext().put("EmailConfigInfo", MOCK_INFO);
final String mockMid = "99";
step.setMessageId(mockMid);
helper.getInboxFolder(MOCK_INFO);
modify().returnValue(mockFolder);
helper.getMessage(Integer.parseInt(mockMid), mockFolder);
modify().returnValue(null);
setUpMessageOperationFinaliseExpectations(helper, deleteOnExit);
startVerification();
assertFailOnExecute(step, "expected to fail", "Could not retrieve message.");
}
public void testMessageException() throws Exception {
final EmailDeleteMessage step = (EmailDeleteMessage) getStep();
final EmailHelper helper = (EmailHelper) mock(EmailHelper.class, "helper");
step.setHelper(helper);
final boolean deleteOnExit = true;
final Folder mockFolder = createMockFolder();
step.getContext().put("EmailConfigInfo", MOCK_INFO);
final String mockMid = "99";
step.setMessageId(mockMid);
helper.getInboxFolder(MOCK_INFO);
modify().returnValue(mockFolder);
helper.getMessage(Integer.parseInt(mockMid), mockFolder);
modify().throwException(new MessagingException("Dummy messaging exception"));
setUpMessageOperationFinaliseExpectations(helper, deleteOnExit);
startVerification();
assertFailOnExecute(step, "expected to fail", "Error performing operation: Dummy messaging exception");
}
}