100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair/* 200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Copyright 2009 the original author or authors. 300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * you may not use this file except in compliance with the License. 600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * You may obtain a copy of the License at 700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * http://www.apache.org/licenses/LICENSE-2.0 900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 1000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Unless required by applicable law or agreed to in writing, software 1100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * distributed under the License is distributed on an "AS IS" BASIS, 1200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * See the License for the specific language governing permissions and 1400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * limitations under the License. 1500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 1600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismairpackage org.mockftpserver.fake.command 1700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 1800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismairimport org.mockftpserver.core.command.Command 1900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismairimport org.mockftpserver.core.command.CommandHandler 2000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismairimport org.mockftpserver.core.command.CommandNames 2100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismairimport org.mockftpserver.core.command.ReplyCodes 2200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 2300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair/** 2400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Tests for PortCommandHandler 2500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 2600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @version $Revision$ - $Date$ 2700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 2800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @author Chris Mair 2900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 3000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismairclass EprtCommandHandlerTest extends AbstractFakeCommandHandlerTestCase { 3100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 3200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair static final PARAMETERS_IPV4 = ["|1|132.235.1.2|6275|"] 3300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair static final HOST_IPV4 = InetAddress.getByName("132.235.1.2") 3400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair static final PARAMETERS_IPV6 = ["|2|1080::8:800:200C:417A|6275|"] 3500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair static final HOST_IPV6 = InetAddress.getByName("1080::8:800:200C:417A") 3600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair static final PORT = 6275 3700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 3800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair boolean testNotLoggedIn = false 3900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 4000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair void testHandleCommand_IPv4() { 4100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair handleCommand(PARAMETERS_IPV4) 4200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assertSessionReply(ReplyCodes.EPRT_OK, 'eprt') 4300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assert session.clientDataHost == HOST_IPV4 4400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assert session.clientDataPort == PORT 4500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 4600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 4700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair void testHandleCommand_IPv6() { 4800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair handleCommand(PARAMETERS_IPV6) 4900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assertSessionReply(ReplyCodes.EPRT_OK, 'eprt') 5000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assert session.clientDataHost == HOST_IPV6 5100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assert session.clientDataPort == PORT 5200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 5300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 5400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair void testHandleCommand_IPv6_CustomDelimiter() { 5500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair handleCommand(["@2@1080::8:800:200C:417A@6275@"]) 5600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assertSessionReply(ReplyCodes.EPRT_OK, 'eprt') 5700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assert session.clientDataHost == HOST_IPV6 5800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assert session.clientDataPort == PORT 5900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 6000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 6100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair void testHandleCommand_IllegalParameterFormat() { 6200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair handleCommand(['abcdef']) 6300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assertSessionReply(ReplyCodes.COMMAND_SYNTAX_ERROR) 6400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 6500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 6600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair void testHandleCommand_PortMissing() { 6700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair handleCommand(['|1|132.235.1.2|']) 6800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assertSessionReply(ReplyCodes.COMMAND_SYNTAX_ERROR) 6900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 7000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 7100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair void testHandleCommand_IllegalHostName() { 7200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair handleCommand(['|1|132.@|6275|']) 7300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair assertSessionReply(ReplyCodes.COMMAND_SYNTAX_ERROR) 7400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 7500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 7600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair void testHandleCommand_MissingRequiredParameter() { 7700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair testHandleCommand_MissingRequiredParameter([]) 7800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 7900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 8000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair //------------------------------------------------------------------------- 8100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair // Helper Methods 8200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair //------------------------------------------------------------------------- 8300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 8400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair void setUp() { 8500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair super.setUp() 8600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 8700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 8800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair CommandHandler createCommandHandler() { 8900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair new EprtCommandHandler() 9000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 9100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 9200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair Command createValidCommand() { 9300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair return new Command(CommandNames.EPRT, PARAMETERS_IPV4) 9400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 9500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 9600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair}