StorCommandHandlerTest.java revision 17f899cea435aaf91624af2a93bc24bcfcd5fc2d
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.stub.command; 1717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 1817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.core.command.Command; 1917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.core.command.CommandNames; 2017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.core.command.ReplyCodes; 2117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairimport org.mockftpserver.stub.command.StorCommandHandler; 2217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 2317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair/** 2417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Tests for the StorCommandHandler class 2517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 2617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * @version $Revision$ - $Date$ 2717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 2817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * @author Chris Mair 2917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 3017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismairpublic final class StorCommandHandlerTest extends AbstractCommandHandlerTest { 3117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 3217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair private StorCommandHandler commandHandler; 3317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 3417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 3517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Perform initialization before each test 3617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * 3717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * @see org.mockftpserver.stub.command.AbstractCommandHandlerTest#setUp() 3817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 3917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair protected void setUp() throws Exception { 4017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair super.setUp(); 4117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler = new StorCommandHandler(); 4217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.setReplyTextBundle(replyTextBundle); 4317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 4417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 4517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 4617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the handleCommand() method, as well as the getFileContents() and clearFileContents() methods 4717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 4817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testHandleCommand() throws Exception { 4917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair final String DATA = "ABC"; 5017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 5117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair session.sendReply(ReplyCodes.SEND_DATA_INITIAL_OK, replyTextFor(ReplyCodes.SEND_DATA_INITIAL_OK)); 5217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair session.openDataConnection(); 5317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair session.readData(); 5417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair control(session).setReturnValue(DATA.getBytes()); 5517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair session.closeDataConnection(); 5617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair session.sendReply(ReplyCodes.SEND_DATA_FINAL_OK, replyTextFor(ReplyCodes.SEND_DATA_FINAL_OK)); 5717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair replay(session); 5817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 5917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair Command command = new Command(CommandNames.STOR, array(FILENAME1)); 6017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair commandHandler.handleCommand(command, session); 6117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair verify(session); 6217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 6317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair verifyNumberOfInvocations(commandHandler, 1); 6417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair verifyTwoDataElements(commandHandler.getInvocation(0), StorCommandHandler.PATHNAME_KEY, FILENAME1, 6517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair StorCommandHandler.FILE_CONTENTS_KEY, DATA.getBytes()); 6617f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 6717f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 6817f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair /** 6917f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair * Test the handleCommand() method, when no pathname parameter has been specified 7017f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair */ 7117f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair public void testHandleCommand_MissingPathnameParameter() throws Exception { 7217f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair testHandleCommand_InvalidParameters(commandHandler, CommandNames.STOR, EMPTY); 7317f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair } 7417f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair 7517f899cea435aaf91624af2a93bc24bcfcd5fc2dchrismair} 76