blob: e7e2597a2bffa18c70e1c750d556ea3ee84c3bd3 [file] [log] [blame]
/*
* 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) {
}
}