/* * Copyright 2008 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.mockftpserver.fake import org.mockftpserver.core.command.Command import org.mockftpserver.core.command.CommandHandler import org.mockftpserver.core.command.ReplyTextBundleAware import org.mockftpserver.core.server.AbstractFtpServer import org.mockftpserver.core.server.AbstractFtpServerTestCase import org.mockftpserver.core.session.Session /** * Tests for FakeFtpServer. * * @version $Revision$ - $Date$ * * @author Chris Mair */ class FakeFtpServerTest extends AbstractFtpServerTestCase { def commandHandler def commandHandler_NotServerConfigurationAware //------------------------------------------------------------------------- // Extra tests (Standard tests defined in superclass) //------------------------------------------------------------------------- void testSetCommandHandler_NotServerConfigurationAware() { ftpServer.setCommandHandler("ZZZ", commandHandler_NotServerConfigurationAware) assert ftpServer.getCommandHandler("ZZZ") == commandHandler_NotServerConfigurationAware } void testSetCommandHandler_ServerConfigurationAware() { ftpServer.setCommandHandler("ZZZ", commandHandler) assert ftpServer.getCommandHandler("ZZZ") == commandHandler assert ftpServer == commandHandler.serverConfiguration } void testSetCommandHandler_ReplyTextBundleAware() { def cmdHandler = new TestCommandHandlerReplyTextBundleAware() ftpServer.setCommandHandler("ZZZ", cmdHandler) assert ftpServer.getCommandHandler("ZZZ") == cmdHandler assert ftpServer.replyTextBundle == cmdHandler.replyTextBundle } void testUserAccounts() { def userAccount = new UserAccount(username: 'abc') // addUserAccount() ftpServer.addUserAccount(userAccount) assert ftpServer.getUserAccount("abc") == userAccount // setUserAccounts def userAccounts = [userAccount] ftpServer.userAccounts = userAccounts assert ftpServer.getUserAccount("abc") == userAccount } void testHelpText() { ftpServer.helpText = [a: 'aaaaa', b: 'bbbbb', '': 'default'] assert ftpServer.getHelpText('a') == 'aaaaa' assert ftpServer.getHelpText('b') == 'bbbbb' assert ftpServer.getHelpText('') == 'default' assert ftpServer.getHelpText('unrecognized') == null } void testSystemName() { assert ftpServer.systemName == "WINDOWS" ftpServer.systemName = "abc" assert ftpServer.systemName == "abc" } void testSystemStatus() { assert ftpServer.systemStatus == "Connected" ftpServer.systemStatus = "abc" assert ftpServer.systemStatus == "abc" } void testReplyText() { ftpServer.replyTextBaseName = "SampleReplyText" ResourceBundle resourceBundle = ftpServer.replyTextBundle assert resourceBundle.getString("110") == "Testing123" } //------------------------------------------------------------------------- // Test set up //------------------------------------------------------------------------- void setUp() { super.setUp(); commandHandler = new TestCommandHandler() commandHandler_NotServerConfigurationAware = new TestCommandHandlerNotServerConfigurationAware() } //------------------------------------------------------------------------- // Abstract method implementations //------------------------------------------------------------------------- protected AbstractFtpServer createFtpServer() { return new FakeFtpServer(); } protected CommandHandler createCommandHandler() { return new TestCommandHandler(); } protected void verifyCommandHandlerInitialized(CommandHandler commandHandler) { //To change body of implemented methods use File | Settings | File Templates. } } class TestCommandHandlerReplyTextBundleAware implements CommandHandler, ReplyTextBundleAware { ResourceBundle replyTextBundle public void handleCommand(Command command, Session session) { } }