1e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair/* 2e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * Copyright 2007 the original author or authors. 3e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * 4e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 5e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * you may not use this file except in compliance with the License. 6e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * You may obtain a copy of the License at 7e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * 8e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * http://www.apache.org/licenses/LICENSE-2.0 9e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * 10e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * Unless required by applicable law or agreed to in writing, software 11e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * distributed under the License is distributed on an "AS IS" BASIS, 12e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * See the License for the specific language governing permissions and 14e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * limitations under the License. 15e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair */ 16e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismairpackage org.mockftpserver.stub.command; 17e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair 18e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismairimport org.mockftpserver.core.command.Command; 19e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismairimport org.mockftpserver.core.command.CommandNames; 20e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismairimport org.mockftpserver.core.command.ReplyCodes; 21e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismairimport org.mockftpserver.stub.command.StorCommandHandler; 22e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair 23e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair/** 24e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * Tests for the StorCommandHandler class 25e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * 26e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * @version $Revision$ - $Date$ 27e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * 28e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * @author Chris Mair 29e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair */ 30e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismairpublic final class StorCommandHandlerTest extends AbstractCommandHandlerTest { 31e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair 32e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair private StorCommandHandler commandHandler; 33e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair 34e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair /** 35e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * Perform initialization before each test 36e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * 37e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * @see org.mockftpserver.stub.command.AbstractCommandHandlerTest#setUp() 38e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair */ 39e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair protected void setUp() throws Exception { 40e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair super.setUp(); 41e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair commandHandler = new StorCommandHandler(); 42e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair commandHandler.setReplyTextBundle(replyTextBundle); 43e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair } 44e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair 45e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair /** 46e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * Test the handleCommand() method, as well as the getFileContents() and clearFileContents() methods 47e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair */ 48e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair public void testHandleCommand() throws Exception { 49e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair final String DATA = "ABC"; 50e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair 51e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair session.sendReply(ReplyCodes.SEND_DATA_INITIAL_OK, replyTextFor(ReplyCodes.SEND_DATA_INITIAL_OK)); 52e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair session.openDataConnection(); 53e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair session.readData(); 54e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair control(session).setReturnValue(DATA.getBytes()); 55e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair session.closeDataConnection(); 56e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair session.sendReply(ReplyCodes.SEND_DATA_FINAL_OK, replyTextFor(ReplyCodes.SEND_DATA_FINAL_OK)); 57e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair replay(session); 58e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair 59e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair Command command = new Command(CommandNames.STOR, array(FILENAME1)); 60e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair commandHandler.handleCommand(command, session); 61e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair verify(session); 62e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair 63e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair verifyNumberOfInvocations(commandHandler, 1); 64e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair verifyTwoDataElements(commandHandler.getInvocation(0), StorCommandHandler.PATHNAME_KEY, FILENAME1, 65e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair StorCommandHandler.FILE_CONTENTS_KEY, DATA.getBytes()); 66e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair } 67e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair 68e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair /** 69e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair * Test the handleCommand() method, when no pathname parameter has been specified 70e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair */ 71e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair public void testHandleCommand_MissingPathnameParameter() throws Exception { 72e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair testHandleCommand_InvalidParameters(commandHandler, CommandNames.STOR, EMPTY); 73e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair } 74e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair 75e47352fb2508e2b25f003b8df12fa79c3215b4b1chrismair} 76