1b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair/* 2b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Copyright 2007 the original author or authors. 3b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 4b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 5b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * you may not use this file except in compliance with the License. 6b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * You may obtain a copy of the License at 7b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 8b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * http://www.apache.org/licenses/LICENSE-2.0 9b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 10b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Unless required by applicable law or agreed to in writing, software 11b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * distributed under the License is distributed on an "AS IS" BASIS, 12b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * See the License for the specific language governing permissions and 14b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * limitations under the License. 15b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 16b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairpackage org.mockftpserver.core.command; 17b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 18b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.apache.log4j.Logger; 19b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.easymock.MockControl; 20b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.core.session.Session; 21b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.core.util.AssertFailedException; 22b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.stub.command.AbstractStubCommandHandler; 23b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.test.AbstractTest; 24b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 25b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport java.util.ListResourceBundle; 26b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport java.util.ResourceBundle; 27b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 28b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair/** 29b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Tests for the AbstractCommandHandler class. The class name is prefixed with an 30b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * underscore so that it is not filtered out by Maven's Surefire test plugin. 31b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 32b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @author Chris Mair 33b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @version $Revision$ - $Date$ 34b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 35b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairpublic final class _AbstractCommandHandlerTest extends AbstractTest { 36b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 37b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private static final Logger LOG = Logger.getLogger(_AbstractTrackingCommandHandlerTest.class); 38b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private static final int REPLY_CODE1 = 777; 39b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private static final int REPLY_CODE2 = 888; 40b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private static final String REPLY_TEXT1 = "reply1 ... abcdef"; 41b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private static final String REPLY_TEXT2 = "abc {0} def"; 42b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private static final String MESSAGE_KEY = "key.123"; 43b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private static final String MESSAGE_TEXT = "message.123"; 44b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 45b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private AbstractCommandHandler commandHandler; 46b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 47b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair /** 48b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Test the quotes utility method 49b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 50b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public void testQuotes() { 51b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair assertEquals("abc", "\"abc\"", AbstractStubCommandHandler.quotes("abc")); 52b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair assertEquals("<empty>", "\"\"", AbstractStubCommandHandler.quotes("")); 53b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 54b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 55b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair /** 56b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Test the quotes utility method, passing in a null 57b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 58b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public void testQuotes_Null() { 59b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair try { 60b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair AbstractStubCommandHandler.quotes(null); 61b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair fail("Expected AssertFailedException"); 62b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 63b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair catch (AssertFailedException expected) { 64b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair LOG.info("Expected: " + expected); 65b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 66b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 67b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 68b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair /** 69b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Test the assertValidReplyCode() method 70b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 71b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public void testAssertValidReplyCode() { 72b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair // These are valid, so expect no exceptions 73b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair commandHandler.assertValidReplyCode(1); 74b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair commandHandler.assertValidReplyCode(100); 75b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 76b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair // These are invalid 77b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair testAssertValidReplyCodeWithInvalid(0); 78b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair testAssertValidReplyCodeWithInvalid(-1); 79b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 80b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 81b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair /** 82b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Test the assertValidReplyCode() method , passing in an invalid replyCode value 83b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 84b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @param invalidReplyCode - a reply code that is expected to be invalid 85b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 86b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private void testAssertValidReplyCodeWithInvalid(int invalidReplyCode) { 87b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair try { 88b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair commandHandler.assertValidReplyCode(invalidReplyCode); 89b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair fail("Expected AssertFailedException"); 90b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 91b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair catch (AssertFailedException expected) { 92b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair LOG.info("Expected: " + expected); 93b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 94b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 95b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 96b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair //------------------------------------------------------------------------- 97b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair // Test setup 98b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair //------------------------------------------------------------------------- 99b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 100b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair /** 101b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Perform initialization before each test 102b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 103b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @see org.mockftpserver.test.AbstractTest#setUp() 104b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 105b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair protected void setUp() throws Exception { 106b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair super.setUp(); 107b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair Session session = (Session) createMock(Session.class); 108b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair control(session).setDefaultMatcher(MockControl.ARRAY_MATCHER); 109b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair commandHandler = new AbstractCommandHandler() { 110b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public void handleCommand(Command command, Session session) throws Exception { 111b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 112b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair }; 113b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair ResourceBundle replyTextBundle = new ListResourceBundle() { 114b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair protected Object[][] getContents() { 115b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair return new Object[][]{ 116b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair {Integer.toString(REPLY_CODE1), REPLY_TEXT1}, 117b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair {Integer.toString(REPLY_CODE2), REPLY_TEXT2}, 118b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair {MESSAGE_KEY, MESSAGE_TEXT} 119b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair }; 120b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 121b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair }; 122b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair commandHandler.setReplyTextBundle(replyTextBundle); 123b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 124b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 125b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair}