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.stub.command; 17b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 18b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.core.command.AbstractCommandHandlerTest; 19b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.core.command.Command; 20b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.core.command.CommandNames; 21b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.core.command.ReplyCodes; 22b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 23b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair/** 24b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Tests for the StorCommandHandler class 25b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 26b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @author Chris Mair 27b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @version $Revision$ - $Date$ 28b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 29b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairpublic final class StorCommandHandlerTest extends AbstractCommandHandlerTest { 30b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 31b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private StorCommandHandler commandHandler; 32b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 33b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair /** 34b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Perform initialization before each test 35b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 36b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @see org.mockftpserver.core.command.AbstractCommandHandlerTest#setUp() 37b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 38b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair protected void setUp() throws Exception { 39b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair super.setUp(); 40b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair commandHandler = new StorCommandHandler(); 41b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair commandHandler.setReplyTextBundle(replyTextBundle); 42b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 43b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 44b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair /** 45b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Test the handleCommand() method, as well as the getFileContents() and clearFileContents() methods 46b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 47b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public void testHandleCommand() throws Exception { 48b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair final String DATA = "ABC"; 49b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 50b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair session.sendReply(ReplyCodes.TRANSFER_DATA_INITIAL_OK, replyTextFor(ReplyCodes.TRANSFER_DATA_INITIAL_OK)); 51b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair session.openDataConnection(); 52b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair session.readData(); 53b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair control(session).setReturnValue(DATA.getBytes()); 54b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair session.closeDataConnection(); 55b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair session.sendReply(ReplyCodes.TRANSFER_DATA_FINAL_OK, replyTextFor(ReplyCodes.TRANSFER_DATA_FINAL_OK)); 56b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair replay(session); 57b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 58b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair Command command = new Command(CommandNames.STOR, array(FILENAME1)); 59b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair commandHandler.handleCommand(command, session); 60b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair verify(session); 61b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 62b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair verifyNumberOfInvocations(commandHandler, 1); 63b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair verifyTwoDataElements(commandHandler.getInvocation(0), StorCommandHandler.PATHNAME_KEY, FILENAME1, 64b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair StorCommandHandler.FILE_CONTENTS_KEY, DATA.getBytes()); 65b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 66b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 67b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair /** 68b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Test the handleCommand() method, when no pathname parameter has been specified 69b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 70b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public void testHandleCommand_MissingPathnameParameter() throws Exception { 71b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair testHandleCommand_InvalidParameters(commandHandler, CommandNames.STOR, EMPTY); 72b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 73b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 74b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair} 75