1bda3441225e0607b5ced8b538123fd7c7a417910chrismair/* 2bda3441225e0607b5ced8b538123fd7c7a417910chrismair * Copyright 2008 the original author or authors. 3bda3441225e0607b5ced8b538123fd7c7a417910chrismair * 4bda3441225e0607b5ced8b538123fd7c7a417910chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 5bda3441225e0607b5ced8b538123fd7c7a417910chrismair * you may not use this file except in compliance with the License. 6bda3441225e0607b5ced8b538123fd7c7a417910chrismair * You may obtain a copy of the License at 7bda3441225e0607b5ced8b538123fd7c7a417910chrismair * 8bda3441225e0607b5ced8b538123fd7c7a417910chrismair * http://www.apache.org/licenses/LICENSE-2.0 9bda3441225e0607b5ced8b538123fd7c7a417910chrismair * 10bda3441225e0607b5ced8b538123fd7c7a417910chrismair * Unless required by applicable law or agreed to in writing, software 11bda3441225e0607b5ced8b538123fd7c7a417910chrismair * distributed under the License is distributed on an "AS IS" BASIS, 12bda3441225e0607b5ced8b538123fd7c7a417910chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bda3441225e0607b5ced8b538123fd7c7a417910chrismair * See the License for the specific language governing permissions and 14bda3441225e0607b5ced8b538123fd7c7a417910chrismair * limitations under the License. 15bda3441225e0607b5ced8b538123fd7c7a417910chrismair */ 16bda3441225e0607b5ced8b538123fd7c7a417910chrismairpackage org.mockftpserver.fake.command 17bda3441225e0607b5ced8b538123fd7c7a417910chrismair 18bda3441225e0607b5ced8b538123fd7c7a417910chrismairimport org.mockftpserver.core.command.Command 19bda3441225e0607b5ced8b538123fd7c7a417910chrismairimport org.mockftpserver.core.command.CommandHandler 20bda3441225e0607b5ced8b538123fd7c7a417910chrismairimport org.mockftpserver.core.command.CommandNames 21bda3441225e0607b5ced8b538123fd7c7a417910chrismairimport org.mockftpserver.core.command.ReplyCodes 22bda3441225e0607b5ced8b538123fd7c7a417910chrismair 23bda3441225e0607b5ced8b538123fd7c7a417910chrismair/** 24bda3441225e0607b5ced8b538123fd7c7a417910chrismair * Tests for StorCommandHandler 25bda3441225e0607b5ced8b538123fd7c7a417910chrismair * 26bda3441225e0607b5ced8b538123fd7c7a417910chrismair * @version $Revision$ - $Date$ 27bda3441225e0607b5ced8b538123fd7c7a417910chrismair * 28bda3441225e0607b5ced8b538123fd7c7a417910chrismair * @author Chris Mair 29bda3441225e0607b5ced8b538123fd7c7a417910chrismair */ 30bda3441225e0607b5ced8b538123fd7c7a417910chrismairclass StorCommandHandlerTest extends AbstractStoreFileCommandHandlerTestCase { 31bda3441225e0607b5ced8b538123fd7c7a417910chrismair 32bda3441225e0607b5ced8b538123fd7c7a417910chrismair void testHandleCommand_MissingPathParameter() { 33bda3441225e0607b5ced8b538123fd7c7a417910chrismair testHandleCommand_MissingRequiredParameter([]) 34bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 35bda3441225e0607b5ced8b538123fd7c7a417910chrismair 36bda3441225e0607b5ced8b538123fd7c7a417910chrismair void testHandleCommand_AbsolutePath() { 37bda3441225e0607b5ced8b538123fd7c7a417910chrismair testHandleCommand([FILE], 'stor', CONTENTS) 38bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 39bda3441225e0607b5ced8b538123fd7c7a417910chrismair 40bda3441225e0607b5ced8b538123fd7c7a417910chrismair void testHandleCommand_RelativePath() { 41bda3441225e0607b5ced8b538123fd7c7a417910chrismair setCurrentDirectory(DIR) 42bda3441225e0607b5ced8b538123fd7c7a417910chrismair testHandleCommand([FILENAME], 'stor', CONTENTS) 43bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 44bda3441225e0607b5ced8b538123fd7c7a417910chrismair 45bda3441225e0607b5ced8b538123fd7c7a417910chrismair void testHandleCommand_PathSpecifiesAnExistingDirectory() { 46bda3441225e0607b5ced8b538123fd7c7a417910chrismair createDirectory(FILE) 47bda3441225e0607b5ced8b538123fd7c7a417910chrismair handleCommand([FILE]) 48bda3441225e0607b5ced8b538123fd7c7a417910chrismair assertSessionReply(ReplyCodes.FILENAME_NOT_VALID, FILE) 49bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 50bda3441225e0607b5ced8b538123fd7c7a417910chrismair 51bda3441225e0607b5ced8b538123fd7c7a417910chrismair void testHandleCommand_ParentDirectoryDoesNotExist() { 52bda3441225e0607b5ced8b538123fd7c7a417910chrismair def NO_SUCH_DIR = "/path/DoesNotExist" 53bda3441225e0607b5ced8b538123fd7c7a417910chrismair handleCommand([p(NO_SUCH_DIR, FILENAME)]) 54bda3441225e0607b5ced8b538123fd7c7a417910chrismair assertSessionReply(ReplyCodes.FILENAME_NOT_VALID, NO_SUCH_DIR) 55bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 56bda3441225e0607b5ced8b538123fd7c7a417910chrismair 57bda3441225e0607b5ced8b538123fd7c7a417910chrismair //------------------------------------------------------------------------- 58bda3441225e0607b5ced8b538123fd7c7a417910chrismair // Helper Methods 59bda3441225e0607b5ced8b538123fd7c7a417910chrismair //------------------------------------------------------------------------- 60bda3441225e0607b5ced8b538123fd7c7a417910chrismair 61bda3441225e0607b5ced8b538123fd7c7a417910chrismair CommandHandler createCommandHandler() { 62bda3441225e0607b5ced8b538123fd7c7a417910chrismair new StorCommandHandler() 63bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 64bda3441225e0607b5ced8b538123fd7c7a417910chrismair 65bda3441225e0607b5ced8b538123fd7c7a417910chrismair Command createValidCommand() { 66bda3441225e0607b5ced8b538123fd7c7a417910chrismair return new Command(CommandNames.STOR, [FILE]) 67bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 68bda3441225e0607b5ced8b538123fd7c7a417910chrismair 69bda3441225e0607b5ced8b538123fd7c7a417910chrismair void setUp() { 70bda3441225e0607b5ced8b538123fd7c7a417910chrismair super.setUp() 71bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 72bda3441225e0607b5ced8b538123fd7c7a417910chrismair 73bda3441225e0607b5ced8b538123fd7c7a417910chrismair protected String verifyOutputFile() { 74bda3441225e0607b5ced8b538123fd7c7a417910chrismair assert fileSystem.isFile(FILE) 75bda3441225e0607b5ced8b538123fd7c7a417910chrismair assert session.getReplyMessage(1).contains(FILENAME) 76bda3441225e0607b5ced8b538123fd7c7a417910chrismair return FILE 77bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 78bda3441225e0607b5ced8b538123fd7c7a417910chrismair 79bda3441225e0607b5ced8b538123fd7c7a417910chrismair}