CdupCommandHandlerTest.groovy revision 5e9a0227eb376a4d67ada00c7ea54d3f7962cefd
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 245e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair/** 255e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * Tests for CdupCommandHandler 265e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * 275e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * @version $Revision$ - $Date$ 285e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * 295e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair * @author Chris Mair 305e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair */ 315e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismairclass CdupCommandHandlerTest extends AbstractLoginRequiredCommandHandlerTest { 325e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 335e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair def DIR = "/usr" 345e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair def SUBDIR = "${DIR}/sub" 355e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 365e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair void testHandleCommand() { 375e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair setCurrentDirectory(SUBDIR) 385e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair commandHandler.handleCommand(createCommand([]), session) 395e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair assertSessionReply(ReplyCodes.CDUP_OK) 405e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair assert session.getAttribute(SessionKeys.CURRENT_DIRECTORY) == DIR 415e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair } 425e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 435e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair void testHandleCommand_NoParentDirectory() { 445e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair setCurrentDirectory('/') 455e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair commandHandler.handleCommand(createCommand([]), session) 465e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair assertSessionReply(ReplyCodes.EXISTING_FILE_ERROR, '/') 475e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair assert session.getAttribute(SessionKeys.CURRENT_DIRECTORY) == '/' 485e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair } 495e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 505e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair //------------------------------------------------------------------------- 515e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair // Helper Methods 525e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair //------------------------------------------------------------------------- 535e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 545e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair CommandHandler createCommandHandler() { 555e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair new CdupCommandHandler() 565e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair } 575e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 585e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair Command createValidCommand() { 595e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair return new Command(CommandNames.CDUP, []) 605e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair } 615e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 625e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair void setUp() { 635e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair super.setUp() 645e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair assert fileSystem.createDirectory(SUBDIR) 655e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair } 665e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair 675e9a0227eb376a4d67ada00c7ea54d3f7962cefdchrismair}