14bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair/* 24bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Copyright 2007 the original author or authors. 34bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * 44bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Licensed under the Apache License, Version 2.0 (the "License"); 54bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * you may not use this file except in compliance with the License. 64bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * You may obtain a copy of the License at 74bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * 84bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * http://www.apache.org/licenses/LICENSE-2.0 94bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * 104bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Unless required by applicable law or agreed to in writing, software 114bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * distributed under the License is distributed on an "AS IS" BASIS, 124bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * See the License for the specific language governing permissions and 144bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * limitations under the License. 154bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair */ 164bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairpackage org.mockftpserver.stub.command; 174bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 184bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairimport org.mockftpserver.core.command.Command; 194bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairimport org.mockftpserver.core.command.CommandNames; 204bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairimport org.mockftpserver.core.command.ReplyCodes; 214bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairimport org.mockftpserver.stub.command.StorCommandHandler; 224bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 234bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair/** 244bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Tests for the StorCommandHandler class 254bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * 264bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * @version $Revision$ - $Date$ 274bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * 284bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * @author Chris Mair 294bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair */ 304bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismairpublic final class StorCommandHandlerTest extends AbstractCommandHandlerTest { 314bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 324bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair private StorCommandHandler commandHandler; 334bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 344bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair /** 354bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Perform initialization before each test 364bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * 374bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * @see org.mockftpserver.stub.command.AbstractCommandHandlerTest#setUp() 384bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair */ 394bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair protected void setUp() throws Exception { 404bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair super.setUp(); 414bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair commandHandler = new StorCommandHandler(); 424bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair commandHandler.setReplyTextBundle(replyTextBundle); 434bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair } 444bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 454bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair /** 464bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Test the handleCommand() method, as well as the getFileContents() and clearFileContents() methods 474bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair */ 484bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair public void testHandleCommand() throws Exception { 494bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair final String DATA = "ABC"; 504bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 514bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair session.sendReply(ReplyCodes.SEND_DATA_INITIAL_OK, replyTextFor(ReplyCodes.SEND_DATA_INITIAL_OK)); 524bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair session.openDataConnection(); 534bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair session.readData(); 544bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair control(session).setReturnValue(DATA.getBytes()); 554bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair session.closeDataConnection(); 564bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair session.sendReply(ReplyCodes.SEND_DATA_FINAL_OK, replyTextFor(ReplyCodes.SEND_DATA_FINAL_OK)); 574bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair replay(session); 584bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 594bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair Command command = new Command(CommandNames.STOR, array(FILENAME1)); 604bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair commandHandler.handleCommand(command, session); 614bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair verify(session); 624bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 634bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair verifyNumberOfInvocations(commandHandler, 1); 644bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair verifyTwoDataElements(commandHandler.getInvocation(0), StorCommandHandler.PATHNAME_KEY, FILENAME1, 654bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair StorCommandHandler.FILE_CONTENTS_KEY, DATA.getBytes()); 664bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair } 674bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 684bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair /** 694bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair * Test the handleCommand() method, when no pathname parameter has been specified 704bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair */ 714bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair public void testHandleCommand_MissingPathnameParameter() throws Exception { 724bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair testHandleCommand_InvalidParameters(commandHandler, CommandNames.STOR, EMPTY); 734bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair } 744bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair 754bc314fb002f3e5369cd724b91e83e0c71aeeccbchrismair} 76