117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair/* 217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Copyright 2007 the original author or authors. 317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Licensed under the Apache License, Version 2.0 (the "License"); 517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * you may not use this file except in compliance with the License. 617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * You may obtain a copy of the License at 717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * http://www.apache.org/licenses/LICENSE-2.0 917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 1017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Unless required by applicable law or agreed to in writing, software 1117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * distributed under the License is distributed on an "AS IS" BASIS, 1217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * See the License for the specific language governing permissions and 1417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * limitations under the License. 1517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 1617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairpackage org.mockftpserver.core.command; 1717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 1817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport java.util.ListResourceBundle; 1917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport java.util.ResourceBundle; 2017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 2117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.apache.log4j.Logger; 2217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.easymock.MockControl; 2317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.core.session.Session; 2417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.core.util.AssertFailedException; 2517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.stub.command.AbstractStubCommandHandler; 2617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.test.AbstractTest; 2717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 2817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair/** 2917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Tests for the AbstractCommandHandler class. The class name is prefixed with an underscore 3017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * so that it is not filtered out by Maven's Surefire test plugin. 3117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 3217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * @version $Revision$ - $Date$ 3317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 3417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * @author Chris Mair 3517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 3617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairpublic final class _AbstractCommandHandlerTest extends AbstractTest { 3717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 3817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final Logger LOG = Logger.getLogger(_AbstractCommandHandlerTest.class); 3917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final String COMMAND_NAME = "abc"; 4017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final Object ARG = "123"; 4117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final Object[] ARGS = { ARG }; 4217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final Command COMMAND = new Command(COMMAND_NAME, EMPTY); 4317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final Command COMMAND_WITH_ARGS = new Command(COMMAND_NAME, EMPTY); 4417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final int REPLY_CODE1 = 777; 4517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final int REPLY_CODE2 = 888; 4617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final int REPLY_CODE3 = 999; 4717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final String REPLY_TEXT1 = "reply1 ... abcdef"; 4817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final String REPLY_TEXT2 = "abc {0} def"; 4917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final String REPLY_TEXT2_FORMATTED = "abc 123 def"; 5017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final String OVERRIDE_REPLY_TEXT = "overridden reply ... abcdef"; 5117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final String MESSAGE_KEY = "key.123"; 5217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private static final String MESSAGE_TEXT = "message.123"; 5317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 5417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private AbstractCommandHandler commandHandler; 5517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private Session session; 5617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private ResourceBundle replyTextBundle; 5717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 5817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 5917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the handleCommand(Command,Session) method 6017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 6117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testHandleCommand() throws Exception { 6217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair assertEquals("before", 0, commandHandler.numberOfInvocations()); 6317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.handleCommand(COMMAND, session); 6417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair assertEquals("after", 1, commandHandler.numberOfInvocations()); 6517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair assertTrue("locked", commandHandler.getInvocation(0).isLocked()); 6617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 6717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 6817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 6917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the handleCommand(Command,Session) method, passing in a null Command 7017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 7117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testHandleCommand_NullCommand() throws Exception { 7217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair try { 7317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.handleCommand(null, session); 7417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair fail("Expected AssertFailedException"); 7517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 7617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair catch (AssertFailedException expected) { 7717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair LOG.info("Expected: " + expected); 7817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 7917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 8017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 8117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 8217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the handleCommand(Command,Session) method, passing in a null Session 8317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 8417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testHandleCommand_NullSession() throws Exception { 8517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair try { 8617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.handleCommand(COMMAND, null); 8717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair fail("Expected AssertFailedException"); 8817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 8917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair catch (AssertFailedException expected) { 9017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair LOG.info("Expected: " + expected); 9117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 9217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 9317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 9417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 9517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the numberOfInvocations(), addInvocationRecord() and clearInvocationRecord() methods 9617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 9717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testInvocationHistory() throws Exception { 9817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair control(session).expectAndDefaultReturn(session.getClientHost(), DEFAULT_HOST); 9917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair replay(session); 10017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 10117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair assertEquals("none", 0, commandHandler.numberOfInvocations()); 10217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.handleCommand(COMMAND, session); 10317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair assertEquals("1", 1, commandHandler.numberOfInvocations()); 10417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.handleCommand(COMMAND, session); 10517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair assertEquals("2", 2, commandHandler.numberOfInvocations()); 10617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.clearInvocations(); 10717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair assertEquals("cleared", 0, commandHandler.numberOfInvocations()); 10817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 10917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 11017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 11117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the getInvocation() method 11217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * @throws Exception 11317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 11417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testGetInvocation() throws Exception { 11517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair control(session).expectAndDefaultReturn(session.getClientHost(), DEFAULT_HOST); 11617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair replay(session); 11717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 11817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.handleCommand(COMMAND, session); 11917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.handleCommand(COMMAND_WITH_ARGS, session); 12017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair assertSame("1", COMMAND, commandHandler.getInvocation(0).getCommand()); 12117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair assertSame("2", COMMAND_WITH_ARGS, commandHandler.getInvocation(1).getCommand()); 12217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 12317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 12417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 12517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the getInvocation() method, passing in an invalid index 12617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 12717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testGetInvocation_IndexOutOfBounds() throws Exception { 12817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.handleCommand(COMMAND, session); 12917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair try { 13017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.getInvocation(2); 13117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair fail("Expected IndexOutOfBoundsException"); 13217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 13317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair catch (IndexOutOfBoundsException expected) { 13417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair LOG.info("Expected: " + expected); 13517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 13617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 13717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 13817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 13917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the quotes utility method 14017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 14117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testQuotes() { 14217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair assertEquals("abc", "\"abc\"", AbstractStubCommandHandler.quotes("abc")); 14317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair assertEquals("<empty>", "\"\"", AbstractStubCommandHandler.quotes("")); 14417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 14517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 14617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 14717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the quotes utility method, passing in a null 14817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 14917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testQuotes_Null() { 15017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair try { 15117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair AbstractStubCommandHandler.quotes(null); 15217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair fail("Expected AssertFailedException"); 15317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 15417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair catch (AssertFailedException expected) { 15517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair LOG.info("Expected: " + expected); 15617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 15717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 15817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 15917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 16017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the assertValidReplyCode() method 16117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 16217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testAssertValidReplyCode() { 16317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair // These are valid, so expect no exceptions 16417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.assertValidReplyCode(1); 16517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.assertValidReplyCode(100); 16617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 16717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair // These are invalid 16817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair testAssertValidReplyCodeWithInvalid(0); 16917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair testAssertValidReplyCodeWithInvalid(-1); 17017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 17117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 17217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 17317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the assertValidReplyCode() method , passing in an invalid replyCode value 17417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 17517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private void testAssertValidReplyCodeWithInvalid(int invalidReplyCode) { 17617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair try { 17717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.assertValidReplyCode(invalidReplyCode); 17817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair fail("Expected AssertFailedException"); 17917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 18017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair catch (AssertFailedException expected) { 18117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair LOG.info("Expected: " + expected); 18217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 18317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 18417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 18517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 18617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the sendReply() method, when no message arguments are specified 18717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 18817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testSendReply() { 18917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair session.sendReply(REPLY_CODE1, REPLY_TEXT1); 19017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair session.sendReply(REPLY_CODE1, MESSAGE_TEXT); 19117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair session.sendReply(REPLY_CODE1, OVERRIDE_REPLY_TEXT); 19217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair session.sendReply(REPLY_CODE3, null); 19317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair replay(session); 19417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 19517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.sendReply(session, REPLY_CODE1, null, null, null); 19617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.sendReply(session, REPLY_CODE1, MESSAGE_KEY, null, null); 19717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.sendReply(session, REPLY_CODE1, MESSAGE_KEY, OVERRIDE_REPLY_TEXT, null); 19817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.sendReply(session, REPLY_CODE3, null, null, null); 19917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 20017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair verify(session); 20117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 20217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 20317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 20417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the sendReply() method, passing in message arguments 20517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 20617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testSendReply_WithMessageArguments() { 20717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair session.sendReply(REPLY_CODE1, REPLY_TEXT2_FORMATTED); 20817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair replay(session); 20917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 21017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.sendReply(session, REPLY_CODE1, null, REPLY_TEXT2, ARGS); 21117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 21217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair verify(session); 21317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 21417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 21517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 21617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the sendReply() method, passing in a null Session 21717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 21817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testSendReply_NullSession() { 21917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair try { 22017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.sendReply(null, REPLY_CODE1, REPLY_TEXT1, null, null); 22117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair fail("Expected AssertFailedException"); 22217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 22317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair catch (AssertFailedException expected) { 22417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair LOG.info("Expected: " + expected); 22517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 22617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 22717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 22817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 22917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the sendReply() method, passing in an invalid replyCode 23017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 23117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testSendReply_InvalidReplyCode() { 23217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair try { 23317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.sendReply(session, 0, REPLY_TEXT1, null, null); 23417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair fail("Expected AssertFailedException"); 23517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 23617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair catch (AssertFailedException expected) { 23717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair LOG.info("Expected: " + expected); 23817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 23917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 24017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 24117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair //------------------------------------------------------------------------- 24217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair // Test setup 24317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair //------------------------------------------------------------------------- 24417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 24517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 24617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Perform initialization before each test 24717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * @see org.mockftpserver.test.AbstractTest#setUp() 24817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 24917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair protected void setUp() throws Exception { 25017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair super.setUp(); 25117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair session = (Session) createMock(Session.class); 25217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair control(session).setDefaultMatcher(MockControl.ARRAY_MATCHER); 25317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler = new AbstractCommandHandler() { 25417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void handleCommand(Command command, Session session, InvocationRecord invocationRecord) throws Exception { 25517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 25617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair }; 25717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair replyTextBundle = new ListResourceBundle() { 25817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair protected Object[][] getContents() { 25917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair return new Object[][] { 26017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair { Integer.toString(REPLY_CODE1), REPLY_TEXT1 }, 26117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair { Integer.toString(REPLY_CODE2), REPLY_TEXT2 }, 26217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair { MESSAGE_KEY, MESSAGE_TEXT } 26317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair }; 26417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 26517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair }; 26617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.setReplyTextBundle(replyTextBundle); 26717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 26817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 26917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair} 270