01: // Copyright © 2006-2007 ASERT. Released under the Canoo Webtest license.
02: package com.canoo.webtest.plugins.emailtest;
03:
04: import javax.mail.Message;
05: import javax.mail.Folder;
06: import javax.mail.MessagingException;
07:
08: import com.canoo.webtest.steps.Step;
09:
10: /**
11: * Test for {@link EmailDeleteMessage}.
12: *
13: * @author Paul King, ASERT
14: */
15: public class EmailDeleteMessageTest extends BaseEmailTestCase {
16: protected Step createStep() {
17: return new EmailDeleteMessage();
18: }
19:
20: public void testMandatoryParams() {
21: final Step step = getStep();
22: step.getContext().put("EmailConfigInfo", null);
23: assertErrorOnExecute(step, "messageId not set",
24: "Can't parse messageId parameter with value 'null' as an integer.");
25: }
26:
27: public void testCallsHelper() throws Exception {
28: final EmailDeleteMessage step = (EmailDeleteMessage) getStep();
29: final EmailHelper helper = (EmailHelper) mock(
30: EmailHelper.class, "helper");
31: step.setHelper(helper);
32: final boolean deleteOnExit = true;
33: final Message mockMessage = setUpGetMessageExpectations(step,
34: helper, deleteOnExit);
35: helper.markForDelete(mockMessage);
36: modify().args(is.instanceOf(Message.class));
37: setUpMessageOperationFinaliseExpectations(helper, deleteOnExit);
38: startVerification();
39: executeStep(step);
40: }
41:
42: public void testNullMessage() throws Exception {
43: final EmailDeleteMessage step = (EmailDeleteMessage) getStep();
44: final EmailHelper helper = (EmailHelper) mock(
45: EmailHelper.class, "helper");
46: step.setHelper(helper);
47: final boolean deleteOnExit = true;
48: final Folder mockFolder = createMockFolder();
49: step.getContext().put("EmailConfigInfo", MOCK_INFO);
50: final String mockMid = "99";
51: step.setMessageId(mockMid);
52: helper.getInboxFolder(MOCK_INFO);
53: modify().returnValue(mockFolder);
54: helper.getMessage(Integer.parseInt(mockMid), mockFolder);
55: modify().returnValue(null);
56: setUpMessageOperationFinaliseExpectations(helper, deleteOnExit);
57: startVerification();
58: assertFailOnExecute(step, "expected to fail",
59: "Could not retrieve message.");
60: }
61:
62: public void testMessageException() throws Exception {
63: final EmailDeleteMessage step = (EmailDeleteMessage) getStep();
64: final EmailHelper helper = (EmailHelper) mock(
65: EmailHelper.class, "helper");
66: step.setHelper(helper);
67: final boolean deleteOnExit = true;
68: final Folder mockFolder = createMockFolder();
69: step.getContext().put("EmailConfigInfo", MOCK_INFO);
70: final String mockMid = "99";
71: step.setMessageId(mockMid);
72: helper.getInboxFolder(MOCK_INFO);
73: modify().returnValue(mockFolder);
74: helper.getMessage(Integer.parseInt(mockMid), mockFolder);
75: modify().throwException(
76: new MessagingException("Dummy messaging exception"));
77: setUpMessageOperationFinaliseExpectations(helper, deleteOnExit);
78: startVerification();
79: assertFailOnExecute(step, "expected to fail",
80: "Error performing operation: Dummy messaging exception");
81: }
82:
83: }
|