1ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair/* 2ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Copyright 2007 the original author or authors. 3ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * 4ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 5ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * you may not use this file except in compliance with the License. 6ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * You may obtain a copy of the License at 7ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * 8ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * http://www.apache.org/licenses/LICENSE-2.0 9ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * 10ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Unless required by applicable law or agreed to in writing, software 11ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * distributed under the License is distributed on an "AS IS" BASIS, 12ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * See the License for the specific language governing permissions and 14ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * limitations under the License. 15ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 16ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairpackage org.mockftpserver.core.command; 17ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 18ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairimport java.util.ListResourceBundle; 19ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairimport java.util.ResourceBundle; 20ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 21ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairimport org.apache.log4j.Logger; 22ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairimport org.easymock.MockControl; 23ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairimport org.mockftpserver.core.session.Session; 24ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairimport org.mockftpserver.core.util.AssertFailedException; 25ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairimport org.mockftpserver.stub.command.AbstractStubCommandHandler; 26ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairimport org.mockftpserver.test.AbstractTest; 27ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 28ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair/** 29ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Tests for the AbstractCommandHandler class. The class name is prefixed with an underscore 30ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * so that it is not filtered out by Maven's Surefire test plugin. 31ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * 32ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * @version $Revision$ - $Date$ 33ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * 34ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * @author Chris Mair 35ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 36ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairpublic final class _AbstractCommandHandlerTest extends AbstractTest { 37ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 38ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final Logger LOG = Logger.getLogger(_AbstractCommandHandlerTest.class); 39ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final String COMMAND_NAME = "abc"; 40ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final Object ARG = "123"; 41ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final Object[] ARGS = { ARG }; 42ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final Command COMMAND = new Command(COMMAND_NAME, EMPTY); 43ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final Command COMMAND_WITH_ARGS = new Command(COMMAND_NAME, EMPTY); 44ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final int REPLY_CODE1 = 777; 45ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final int REPLY_CODE2 = 888; 46ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final int REPLY_CODE3 = 999; 47ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final String REPLY_TEXT1 = "reply1 ... abcdef"; 48ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final String REPLY_TEXT2 = "abc {0} def"; 49ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final String REPLY_TEXT2_FORMATTED = "abc 123 def"; 50ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final String OVERRIDE_REPLY_TEXT = "overridden reply ... abcdef"; 51ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final String MESSAGE_KEY = "key.123"; 52ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private static final String MESSAGE_TEXT = "message.123"; 53ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 54ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private AbstractCommandHandler commandHandler; 55ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private Session session; 56ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private ResourceBundle replyTextBundle; 57ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 58ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 59ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the handleCommand(Command,Session) method 60ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 61ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testHandleCommand() throws Exception { 62ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair assertEquals("before", 0, commandHandler.numberOfInvocations()); 63ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.handleCommand(COMMAND, session); 64ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair assertEquals("after", 1, commandHandler.numberOfInvocations()); 65ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair assertTrue("locked", commandHandler.getInvocation(0).isLocked()); 66ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 67ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 68ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 69ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the handleCommand(Command,Session) method, passing in a null Command 70ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 71ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testHandleCommand_NullCommand() throws Exception { 72ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair try { 73ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.handleCommand(null, session); 74ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair fail("Expected AssertFailedException"); 75ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 76ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair catch (AssertFailedException expected) { 77ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair LOG.info("Expected: " + expected); 78ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 79ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 80ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 81ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 82ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the handleCommand(Command,Session) method, passing in a null Session 83ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 84ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testHandleCommand_NullSession() throws Exception { 85ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair try { 86ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.handleCommand(COMMAND, null); 87ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair fail("Expected AssertFailedException"); 88ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 89ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair catch (AssertFailedException expected) { 90ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair LOG.info("Expected: " + expected); 91ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 92ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 93ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 94ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 95ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the numberOfInvocations(), addInvocationRecord() and clearInvocationRecord() methods 96ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 97ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testInvocationHistory() throws Exception { 98ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair control(session).expectAndDefaultReturn(session.getClientHost(), DEFAULT_HOST); 99ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair replay(session); 100ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 101ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair assertEquals("none", 0, commandHandler.numberOfInvocations()); 102ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.handleCommand(COMMAND, session); 103ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair assertEquals("1", 1, commandHandler.numberOfInvocations()); 104ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.handleCommand(COMMAND, session); 105ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair assertEquals("2", 2, commandHandler.numberOfInvocations()); 106ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.clearInvocations(); 107ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair assertEquals("cleared", 0, commandHandler.numberOfInvocations()); 108ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 109ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 110ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 111ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the getInvocation() method 112ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * @throws Exception 113ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 114ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testGetInvocation() throws Exception { 115ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair control(session).expectAndDefaultReturn(session.getClientHost(), DEFAULT_HOST); 116ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair replay(session); 117ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 118ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.handleCommand(COMMAND, session); 119ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.handleCommand(COMMAND_WITH_ARGS, session); 120ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair assertSame("1", COMMAND, commandHandler.getInvocation(0).getCommand()); 121ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair assertSame("2", COMMAND_WITH_ARGS, commandHandler.getInvocation(1).getCommand()); 122ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 123ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 124ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 125ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the getInvocation() method, passing in an invalid index 126ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 127ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testGetInvocation_IndexOutOfBounds() throws Exception { 128ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.handleCommand(COMMAND, session); 129ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair try { 130ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.getInvocation(2); 131ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair fail("Expected IndexOutOfBoundsException"); 132ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 133ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair catch (IndexOutOfBoundsException expected) { 134ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair LOG.info("Expected: " + expected); 135ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 136ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 137ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 138ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 139ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the quotes utility method 140ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 141ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testQuotes() { 142ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair assertEquals("abc", "\"abc\"", AbstractStubCommandHandler.quotes("abc")); 143ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair assertEquals("<empty>", "\"\"", AbstractStubCommandHandler.quotes("")); 144ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 145ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 146ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 147ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the quotes utility method, passing in a null 148ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 149ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testQuotes_Null() { 150ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair try { 151ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair AbstractStubCommandHandler.quotes(null); 152ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair fail("Expected AssertFailedException"); 153ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 154ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair catch (AssertFailedException expected) { 155ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair LOG.info("Expected: " + expected); 156ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 157ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 158ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 159ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 160ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the assertValidReplyCode() method 161ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 162ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testAssertValidReplyCode() { 163ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair // These are valid, so expect no exceptions 164ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.assertValidReplyCode(1); 165ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.assertValidReplyCode(100); 166ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 167ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair // These are invalid 168ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair testAssertValidReplyCodeWithInvalid(0); 169ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair testAssertValidReplyCodeWithInvalid(-1); 170ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 171ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 172ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 173ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the assertValidReplyCode() method , passing in an invalid replyCode value 174ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 175ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair private void testAssertValidReplyCodeWithInvalid(int invalidReplyCode) { 176ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair try { 177ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.assertValidReplyCode(invalidReplyCode); 178ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair fail("Expected AssertFailedException"); 179ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 180ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair catch (AssertFailedException expected) { 181ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair LOG.info("Expected: " + expected); 182ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 183ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 184ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 185ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 186ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the sendReply() method, when no message arguments are specified 187ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 188ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testSendReply() { 189ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair session.sendReply(REPLY_CODE1, REPLY_TEXT1); 190ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair session.sendReply(REPLY_CODE1, MESSAGE_TEXT); 191ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair session.sendReply(REPLY_CODE1, OVERRIDE_REPLY_TEXT); 192ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair session.sendReply(REPLY_CODE3, null); 193ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair replay(session); 194ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 195ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.sendReply(session, REPLY_CODE1, null, null, null); 196ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.sendReply(session, REPLY_CODE1, MESSAGE_KEY, null, null); 197ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.sendReply(session, REPLY_CODE1, MESSAGE_KEY, OVERRIDE_REPLY_TEXT, null); 198ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.sendReply(session, REPLY_CODE3, null, null, null); 199ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 200ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair verify(session); 201ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 202ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 203ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 204ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the sendReply() method, passing in message arguments 205ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 206ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testSendReply_WithMessageArguments() { 207ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair session.sendReply(REPLY_CODE1, REPLY_TEXT2_FORMATTED); 208ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair replay(session); 209ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 210ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.sendReply(session, REPLY_CODE1, null, REPLY_TEXT2, ARGS); 211ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 212ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair verify(session); 213ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 214ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 215ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 216ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the sendReply() method, passing in a null Session 217ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 218ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testSendReply_NullSession() { 219ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair try { 220ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.sendReply(null, REPLY_CODE1, REPLY_TEXT1, null, null); 221ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair fail("Expected AssertFailedException"); 222ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 223ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair catch (AssertFailedException expected) { 224ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair LOG.info("Expected: " + expected); 225ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 226ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 227ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 228ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 229ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Test the sendReply() method, passing in an invalid replyCode 230ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 231ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void testSendReply_InvalidReplyCode() { 232ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair try { 233ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.sendReply(session, 0, REPLY_TEXT1, null, null); 234ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair fail("Expected AssertFailedException"); 235ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 236ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair catch (AssertFailedException expected) { 237ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair LOG.info("Expected: " + expected); 238ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 239ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 240ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 241ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair //------------------------------------------------------------------------- 242ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair // Test setup 243ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair //------------------------------------------------------------------------- 244ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 245ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair /** 246ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Perform initialization before each test 247ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * @see org.mockftpserver.test.AbstractTest#setUp() 248ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */ 249ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair protected void setUp() throws Exception { 250ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair super.setUp(); 251ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair session = (Session) createMock(Session.class); 252ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair control(session).setDefaultMatcher(MockControl.ARRAY_MATCHER); 253ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler = new AbstractCommandHandler() { 254ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair public void handleCommand(Command command, Session session, InvocationRecord invocationRecord) throws Exception { 255ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 256ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair }; 257ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair replyTextBundle = new ListResourceBundle() { 258ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair protected Object[][] getContents() { 259ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair return new Object[][] { 260ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair { Integer.toString(REPLY_CODE1), REPLY_TEXT1 }, 261ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair { Integer.toString(REPLY_CODE2), REPLY_TEXT2 }, 262ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair { MESSAGE_KEY, MESSAGE_TEXT } 263ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair }; 264ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 265ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair }; 266ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair commandHandler.setReplyTextBundle(replyTextBundle); 267ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair } 268ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair 269ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair} 270