153295844df24dff0a1f59e1104795e640b54c2efchrismair/* 253295844df24dff0a1f59e1104795e640b54c2efchrismair * Copyright 2007 the original author or authors. 353295844df24dff0a1f59e1104795e640b54c2efchrismair * 453295844df24dff0a1f59e1104795e640b54c2efchrismair * Licensed under the Apache License, Version 2.0 (the "License"); 553295844df24dff0a1f59e1104795e640b54c2efchrismair * you may not use this file except in compliance with the License. 653295844df24dff0a1f59e1104795e640b54c2efchrismair * You may obtain a copy of the License at 753295844df24dff0a1f59e1104795e640b54c2efchrismair * 853295844df24dff0a1f59e1104795e640b54c2efchrismair * http://www.apache.org/licenses/LICENSE-2.0 953295844df24dff0a1f59e1104795e640b54c2efchrismair * 1053295844df24dff0a1f59e1104795e640b54c2efchrismair * Unless required by applicable law or agreed to in writing, software 1153295844df24dff0a1f59e1104795e640b54c2efchrismair * distributed under the License is distributed on an "AS IS" BASIS, 1253295844df24dff0a1f59e1104795e640b54c2efchrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1353295844df24dff0a1f59e1104795e640b54c2efchrismair * See the License for the specific language governing permissions and 1453295844df24dff0a1f59e1104795e640b54c2efchrismair * limitations under the License. 1553295844df24dff0a1f59e1104795e640b54c2efchrismair */ 1653295844df24dff0a1f59e1104795e640b54c2efchrismairpackage org.mockftpserver.stub.command; 1753295844df24dff0a1f59e1104795e640b54c2efchrismair 1853295844df24dff0a1f59e1104795e640b54c2efchrismairimport org.mockftpserver.core.command.Command; 1953295844df24dff0a1f59e1104795e640b54c2efchrismairimport org.mockftpserver.core.command.CommandNames; 2053295844df24dff0a1f59e1104795e640b54c2efchrismairimport org.mockftpserver.core.command.ReplyCodes; 2153295844df24dff0a1f59e1104795e640b54c2efchrismairimport org.mockftpserver.stub.command.StorCommandHandler; 2253295844df24dff0a1f59e1104795e640b54c2efchrismair 2353295844df24dff0a1f59e1104795e640b54c2efchrismair/** 2453295844df24dff0a1f59e1104795e640b54c2efchrismair * Tests for the StorCommandHandler class 2553295844df24dff0a1f59e1104795e640b54c2efchrismair * 2653295844df24dff0a1f59e1104795e640b54c2efchrismair * @version $Revision$ - $Date$ 2753295844df24dff0a1f59e1104795e640b54c2efchrismair * 2853295844df24dff0a1f59e1104795e640b54c2efchrismair * @author Chris Mair 2953295844df24dff0a1f59e1104795e640b54c2efchrismair */ 3053295844df24dff0a1f59e1104795e640b54c2efchrismairpublic final class StorCommandHandlerTest extends AbstractCommandHandlerTest { 3153295844df24dff0a1f59e1104795e640b54c2efchrismair 3253295844df24dff0a1f59e1104795e640b54c2efchrismair private StorCommandHandler commandHandler; 3353295844df24dff0a1f59e1104795e640b54c2efchrismair 3453295844df24dff0a1f59e1104795e640b54c2efchrismair /** 3553295844df24dff0a1f59e1104795e640b54c2efchrismair * Perform initialization before each test 3653295844df24dff0a1f59e1104795e640b54c2efchrismair * 3753295844df24dff0a1f59e1104795e640b54c2efchrismair * @see org.mockftpserver.stub.command.AbstractCommandHandlerTest#setUp() 3853295844df24dff0a1f59e1104795e640b54c2efchrismair */ 3953295844df24dff0a1f59e1104795e640b54c2efchrismair protected void setUp() throws Exception { 4053295844df24dff0a1f59e1104795e640b54c2efchrismair super.setUp(); 4153295844df24dff0a1f59e1104795e640b54c2efchrismair commandHandler = new StorCommandHandler(); 4253295844df24dff0a1f59e1104795e640b54c2efchrismair commandHandler.setReplyTextBundle(replyTextBundle); 4353295844df24dff0a1f59e1104795e640b54c2efchrismair } 4453295844df24dff0a1f59e1104795e640b54c2efchrismair 4553295844df24dff0a1f59e1104795e640b54c2efchrismair /** 4653295844df24dff0a1f59e1104795e640b54c2efchrismair * Test the handleCommand() method, as well as the getFileContents() and clearFileContents() methods 4753295844df24dff0a1f59e1104795e640b54c2efchrismair */ 4853295844df24dff0a1f59e1104795e640b54c2efchrismair public void testHandleCommand() throws Exception { 4953295844df24dff0a1f59e1104795e640b54c2efchrismair final String DATA = "ABC"; 5053295844df24dff0a1f59e1104795e640b54c2efchrismair 5153295844df24dff0a1f59e1104795e640b54c2efchrismair session.sendReply(ReplyCodes.SEND_DATA_INITIAL_OK, replyTextFor(ReplyCodes.SEND_DATA_INITIAL_OK)); 5253295844df24dff0a1f59e1104795e640b54c2efchrismair session.openDataConnection(); 5353295844df24dff0a1f59e1104795e640b54c2efchrismair session.readData(); 5453295844df24dff0a1f59e1104795e640b54c2efchrismair control(session).setReturnValue(DATA.getBytes()); 5553295844df24dff0a1f59e1104795e640b54c2efchrismair session.closeDataConnection(); 5653295844df24dff0a1f59e1104795e640b54c2efchrismair session.sendReply(ReplyCodes.SEND_DATA_FINAL_OK, replyTextFor(ReplyCodes.SEND_DATA_FINAL_OK)); 5753295844df24dff0a1f59e1104795e640b54c2efchrismair replay(session); 5853295844df24dff0a1f59e1104795e640b54c2efchrismair 5953295844df24dff0a1f59e1104795e640b54c2efchrismair Command command = new Command(CommandNames.STOR, array(FILENAME1)); 6053295844df24dff0a1f59e1104795e640b54c2efchrismair commandHandler.handleCommand(command, session); 6153295844df24dff0a1f59e1104795e640b54c2efchrismair verify(session); 6253295844df24dff0a1f59e1104795e640b54c2efchrismair 6353295844df24dff0a1f59e1104795e640b54c2efchrismair verifyNumberOfInvocations(commandHandler, 1); 6453295844df24dff0a1f59e1104795e640b54c2efchrismair verifyTwoDataElements(commandHandler.getInvocation(0), StorCommandHandler.PATHNAME_KEY, FILENAME1, 6553295844df24dff0a1f59e1104795e640b54c2efchrismair StorCommandHandler.FILE_CONTENTS_KEY, DATA.getBytes()); 6653295844df24dff0a1f59e1104795e640b54c2efchrismair } 6753295844df24dff0a1f59e1104795e640b54c2efchrismair 6853295844df24dff0a1f59e1104795e640b54c2efchrismair /** 6953295844df24dff0a1f59e1104795e640b54c2efchrismair * Test the handleCommand() method, when no pathname parameter has been specified 7053295844df24dff0a1f59e1104795e640b54c2efchrismair */ 7153295844df24dff0a1f59e1104795e640b54c2efchrismair public void testHandleCommand_MissingPathnameParameter() throws Exception { 7253295844df24dff0a1f59e1104795e640b54c2efchrismair testHandleCommand_InvalidParameters(commandHandler, CommandNames.STOR, EMPTY); 7353295844df24dff0a1f59e1104795e640b54c2efchrismair } 7453295844df24dff0a1f59e1104795e640b54c2efchrismair 7553295844df24dff0a1f59e1104795e640b54c2efchrismair} 76