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:
06: import com.canoo.webtest.steps.Step;
07:
08: /**
09: * Test for {@link EmailStoreMessageId}.
10: *
11: * @author Paul King, ASERT
12: */
13: public class EmailStoreMessageIdTest extends BaseEmailTestCase {
14: private static final String PROPERTY_NAME = "dummyPropertyName";
15: private static final String DUMMY_MESSAGE_ID = "123";
16:
17: protected Step createStep() {
18: return new EmailStoreMessageId();
19: }
20:
21: public void testInvalidMessageIndex() {
22: final EmailStoreMessageId step = (EmailStoreMessageId) getStep();
23: step.getContext().put("EmailConfigInfo", null);
24: step.setProperty(PROPERTY_NAME);
25: step.setMessageIndex("non-integer");
26: assertErrorOnExecute(step, "invalid messageIndex",
27: "Can't parse messageIndex parameter with value 'non-integer' as an integer.");
28: }
29:
30: public void testNoMatches() throws Exception {
31: final EmailStoreMessageId step = (EmailStoreMessageId) getStep();
32: step.setProperty(PROPERTY_NAME);
33: final EmailHelper helper = (EmailHelper) mock(
34: EmailHelper.class, "helper");
35: step.setHelper(helper);
36: final boolean deleteOnExit = false;
37: setUpGetMessagesExpectations(step, helper, 0);
38: setUpMessageOperationFinaliseExpectations(helper, deleteOnExit);
39: startVerification();
40: assertFailOnExecute(step, "expected to fail",
41: "Error processing content: No messages matching criteria.");
42: }
43:
44: public void testIndexTooBig() throws Exception {
45: final EmailStoreMessageId step = (EmailStoreMessageId) getStep();
46: step.setProperty(PROPERTY_NAME);
47: step.setMessageIndex("6");
48: final EmailHelper helper = (EmailHelper) mock(
49: EmailHelper.class, "helper");
50: step.setHelper(helper);
51: final boolean deleteOnExit = false;
52: setUpGetMessagesExpectations(step, helper, 4);
53: setUpMessageOperationFinaliseExpectations(helper, deleteOnExit);
54: startVerification();
55: assertFailOnExecute(step, "expected to fail",
56: "Error processing content: Invalid messageIndex '6', valid range is 0..3");
57: }
58:
59: public void testIndexJustRight() throws Exception {
60: final EmailStoreMessageId step = (EmailStoreMessageId) getStep();
61: step.setProperty(PROPERTY_NAME);
62: step.setMessageIndex("2");
63: final EmailHelper helper = (EmailHelper) mock(
64: EmailHelper.class, "helper");
65: step.setHelper(helper);
66: final boolean deleteOnExit = false;
67: Message[] messages = setUpGetMessagesExpectations(step, helper,
68: 4);
69: messages[2].getMessageNumber();
70: modify().returnValue(Integer.parseInt(DUMMY_MESSAGE_ID));
71: setUpMessageOperationFinaliseExpectations(helper, deleteOnExit);
72: startVerification();
73: executeStep(step);
74: assertEquals(DUMMY_MESSAGE_ID, step
75: .getWebtestProperty(PROPERTY_NAME));
76: }
77:
78: }
|