// Copyright � 2006-2007 ASERT. Released under the Canoo Webtest license. package com.canoo.webtest.plugins.emailtest; import javax.mail.Message; import com.canoo.webtest.steps.Step; /** * Test for {@link EmailStoreMessageId}. * * @author Paul King, ASERT */ public class EmailStoreMessageIdTest extends BaseEmailTestCase { private static final String PROPERTY_NAME = "dummyPropertyName"; private static final String DUMMY_MESSAGE_ID = "123"; protected Step createStep() { return new EmailStoreMessageId(); } public void testInvalidMessageIndex() { final EmailStoreMessageId step = (EmailStoreMessageId) getStep(); step.getContext().put("EmailConfigInfo", null); step.setProperty(PROPERTY_NAME); step.setMessageIndex("non-integer"); assertErrorOnExecute(step, "invalid messageIndex", "Can't parse messageIndex parameter with value 'non-integer' as an integer."); } public void testNoMatches() throws Exception { final EmailStoreMessageId step = (EmailStoreMessageId) getStep(); step.setProperty(PROPERTY_NAME); final EmailHelper helper = (EmailHelper) mock(EmailHelper.class, "helper"); step.setHelper(helper); final boolean deleteOnExit = false; setUpGetMessagesExpectations(step, helper, 0); setUpMessageOperationFinaliseExpectations(helper, deleteOnExit); startVerification(); assertFailOnExecute(step, "expected to fail", "Error processing content: No messages matching criteria."); } public void testIndexTooBig() throws Exception { final EmailStoreMessageId step = (EmailStoreMessageId) getStep(); step.setProperty(PROPERTY_NAME); step.setMessageIndex("6"); final EmailHelper helper = (EmailHelper) mock(EmailHelper.class, "helper"); step.setHelper(helper); final boolean deleteOnExit = false; setUpGetMessagesExpectations(step, helper, 4); setUpMessageOperationFinaliseExpectations(helper, deleteOnExit); startVerification(); assertFailOnExecute(step, "expected to fail", "Error processing content: Invalid messageIndex '6', valid range is 0..3"); } public void testIndexJustRight() throws Exception { final EmailStoreMessageId step = (EmailStoreMessageId) getStep(); step.setProperty(PROPERTY_NAME); step.setMessageIndex("2"); final EmailHelper helper = (EmailHelper) mock(EmailHelper.class, "helper"); step.setHelper(helper); final boolean deleteOnExit = false; Message[] messages = setUpGetMessagesExpectations(step, helper, 4); messages[2].getMessageNumber(); modify().returnValue(Integer.parseInt(DUMMY_MESSAGE_ID)); setUpMessageOperationFinaliseExpectations(helper, deleteOnExit); startVerification(); executeStep(step); assertEquals(DUMMY_MESSAGE_ID, step.getWebtestProperty(PROPERTY_NAME)); } }