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