DeleCommandHandlerTest.groovy revision 6fed98e9c695a9024ede347900c2689979ab5785
147712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair/* 247712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * Copyright 2008 the original author or authors. 347712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * 447712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * Licensed under the Apache License, Version 2.0 (the "License"); 547712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * you may not use this file except in compliance with the License. 647712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * You may obtain a copy of the License at 747712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * 847712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * http://www.apache.org/licenses/LICENSE-2.0 947712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * 1047712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * Unless required by applicable law or agreed to in writing, software 1147712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * distributed under the License is distributed on an "AS IS" BASIS, 1247712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1347712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * See the License for the specific language governing permissions and 1447712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * limitations under the License. 1547712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair */ 1647712ff43a2b7a33f58fc18afd01929a2e4c626fchrismairpackage org.mockftpserver.fake.command 1747712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 1847712ff43a2b7a33f58fc18afd01929a2e4c626fchrismairimport org.mockftpserver.core.command.Command 1947712ff43a2b7a33f58fc18afd01929a2e4c626fchrismairimport org.mockftpserver.core.command.CommandHandler 2047712ff43a2b7a33f58fc18afd01929a2e4c626fchrismairimport org.mockftpserver.core.command.CommandNames 2147712ff43a2b7a33f58fc18afd01929a2e4c626fchrismairimport org.mockftpserver.core.command.ReplyCodes 2247712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 2347712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair/** 2447712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * Tests for DeleCommandHandler 2547712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * 2647712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * @version $Revision$ - $Date$ 2747712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * 2847712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair * @author Chris Mair 2947712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair */ 3047712ff43a2b7a33f58fc18afd01929a2e4c626fchrismairclass DeleCommandHandlerTest extends AbstractLoginRequiredCommandHandlerTest { 3147712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 3247712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair def FILENAME = "f.txt" 3347712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair def FILE = "/" + FILENAME 3447712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 3547712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair void testHandleCommand() { 3647712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair assert fileSystem.createFile(FILE) 3747712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair commandHandler.handleCommand(createCommand([FILE]), session) 386fed98e9c695a9024ede347900c2689979ab5785chrismair assertSessionReply(ReplyCodes.DELE_OK, ['dele', FILE]) 3947712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair assert fileSystem.exists(FILE) == false 4047712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair } 4147712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 4247712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair void testHandleCommand_PathIsRelative() { 4347712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair assert fileSystem.createFile(FILE) 4447712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair setCurrentDirectory("/") 4547712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair commandHandler.handleCommand(createCommand([FILENAME]), session) 466fed98e9c695a9024ede347900c2689979ab5785chrismair assertSessionReply(ReplyCodes.DELE_OK, ['dele', FILENAME]) 4747712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair assert fileSystem.exists(FILE) == false 4847712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair } 4947712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 5047712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair void testHandleCommand_PathDoesNotExistInFileSystem() { 5147712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair commandHandler.handleCommand(createCommand([FILE]), session) 5247712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair assertSessionReply(ReplyCodes.EXISTING_FILE_ERROR, FILE) 5347712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair } 5447712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 5547712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair void testHandleCommand_PathSpecifiesADirectory() { 5647712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair assert fileSystem.createDirectory(FILE) 5747712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair commandHandler.handleCommand(createCommand([FILE]), session) 5847712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair assertSessionReply(ReplyCodes.EXISTING_FILE_ERROR, FILE) 5947712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair assert fileSystem.exists(FILE) 6047712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair } 6147712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 6247712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair void testHandleCommand_MissingPathParameter() { 6347712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair testHandleCommand_MissingRequiredParameter([]) 6447712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair } 6547712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 6647712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair void testHandleCommand_DeleteThrowsException() { 6747712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair overrideMethodToThrowFileSystemException("delete") 6847712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair handleCommand([FILE]) 6947712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair assertSessionReply(ReplyCodes.EXISTING_FILE_ERROR) 7047712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair } 7147712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 7247712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair //------------------------------------------------------------------------- 7347712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair // Helper Methods 7447712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair //------------------------------------------------------------------------- 7547712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 7647712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair CommandHandler createCommandHandler() { 7747712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair new DeleCommandHandler() 7847712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair } 7947712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 8047712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair Command createValidCommand() { 8147712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair return new Command(CommandNames.DELE, [FILE]) 8247712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair } 8347712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair 8447712ff43a2b7a33f58fc18afd01929a2e4c626fchrismair}