CdupCommandHandlerTest.groovy revision d150a70ca8f8ad6cc300cf56174c8846066a4ad4
15e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair/* 25e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * Copyright 2008 the original author or authors. 35e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * 45e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * Licensed under the Apache License, Version 2.0 (the "License"); 55e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * you may not use this file except in compliance with the License. 65e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * You may obtain a copy of the License at 75e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * 85e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * http://www.apache.org/licenses/LICENSE-2.0 95e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * 105e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * Unless required by applicable law or agreed to in writing, software 115e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * distributed under the License is distributed on an "AS IS" BASIS, 125e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * See the License for the specific language governing permissions and 145e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * limitations under the License. 155e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair */ 165e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismairpackage org.mockftpserver.fake.command 175e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 185e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismairimport org.mockftpserver.core.command.Command 195e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismairimport org.mockftpserver.core.command.CommandHandler 205e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismairimport org.mockftpserver.core.command.CommandNames 215e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismairimport org.mockftpserver.core.command.ReplyCodes 225e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismairimport org.mockftpserver.core.session.SessionKeys 235e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 24d150a70ca8f8ad6cc300cf56174c8846066a4ad4chrismair 255e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair/** 265e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * Tests for CdupCommandHandler 275e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * 285e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * @version $Revision$ - $Date$ 295e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * 305e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * @author Chris Mair 315e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair */ 326950d7499a1865c24b29d555591130114dbc25c0chrismairclass CdupCommandHandlerTest extends AbstractFakeCommandHandlerTest { 335e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 345e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair def DIR = "/usr" 355e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair def SUBDIR = "${DIR}/sub" 365e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 375e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair void testHandleCommand() { 385e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair setCurrentDirectory(SUBDIR) 395e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair commandHandler.handleCommand(createCommand([]), session) 406fed98e9c695a9024ede347900c2689979ab5785chrismair assertSessionReply(ReplyCodes.CDUP_OK, ['cdup', DIR]) 415e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair assert session.getAttribute(SessionKeys.CURRENT_DIRECTORY) == DIR 425e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair } 435e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 445e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair void testHandleCommand_NoParentDirectory() { 455e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair setCurrentDirectory('/') 465e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair commandHandler.handleCommand(createCommand([]), session) 47777c1c842d19df00d2529ccf43e4f4c26cfd39fbchrismair assertSessionReply(ReplyCodes.EXISTING_FILE_ERROR, ['filesystem.parentDirectoryDoesNotExist', '/']) 485e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair assert session.getAttribute(SessionKeys.CURRENT_DIRECTORY) == '/' 495e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair } 505e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 515e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair //------------------------------------------------------------------------- 525e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair // Helper Methods 535e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair //------------------------------------------------------------------------- 545e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 555e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair CommandHandler createCommandHandler() { 565e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair new CdupCommandHandler() 575e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair } 585e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 595e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair Command createValidCommand() { 605e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair return new Command(CommandNames.CDUP, []) 615e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair } 625e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 635e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair void setUp() { 645e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair super.setUp() 65d150a70ca8f8ad6cc300cf56174c8846066a4ad4chrismair createDirectory(SUBDIR) 665e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair } 675e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 685e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair}