177391c2a01ce1fed085906743cc240a4d58edd92chrismair/*
277391c2a01ce1fed085906743cc240a4d58edd92chrismair * Copyright 2007 the original author or authors.
377391c2a01ce1fed085906743cc240a4d58edd92chrismair *
477391c2a01ce1fed085906743cc240a4d58edd92chrismair * Licensed under the Apache License, Version 2.0 (the "License");
577391c2a01ce1fed085906743cc240a4d58edd92chrismair * you may not use this file except in compliance with the License.
677391c2a01ce1fed085906743cc240a4d58edd92chrismair * You may obtain a copy of the License at
777391c2a01ce1fed085906743cc240a4d58edd92chrismair *
877391c2a01ce1fed085906743cc240a4d58edd92chrismair *      http://www.apache.org/licenses/LICENSE-2.0
977391c2a01ce1fed085906743cc240a4d58edd92chrismair *
1077391c2a01ce1fed085906743cc240a4d58edd92chrismair * Unless required by applicable law or agreed to in writing, software
1177391c2a01ce1fed085906743cc240a4d58edd92chrismair * distributed under the License is distributed on an "AS IS" BASIS,
1277391c2a01ce1fed085906743cc240a4d58edd92chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1377391c2a01ce1fed085906743cc240a4d58edd92chrismair * See the License for the specific language governing permissions and
1477391c2a01ce1fed085906743cc240a4d58edd92chrismair * limitations under the License.
1577391c2a01ce1fed085906743cc240a4d58edd92chrismair */
1677391c2a01ce1fed085906743cc240a4d58edd92chrismairpackage org.mockftpserver.stub.command;
1777391c2a01ce1fed085906743cc240a4d58edd92chrismair
1877391c2a01ce1fed085906743cc240a4d58edd92chrismairimport org.apache.log4j.Logger;
1977391c2a01ce1fed085906743cc240a4d58edd92chrismairimport org.mockftpserver.core.command.Command;
2077391c2a01ce1fed085906743cc240a4d58edd92chrismairimport org.mockftpserver.core.command.CommandNames;
2177391c2a01ce1fed085906743cc240a4d58edd92chrismairimport org.mockftpserver.core.command.ReplyCodes;
2277391c2a01ce1fed085906743cc240a4d58edd92chrismairimport org.mockftpserver.core.util.AssertFailedException;
2377391c2a01ce1fed085906743cc240a4d58edd92chrismairimport org.mockftpserver.stub.command.SystCommandHandler;
2477391c2a01ce1fed085906743cc240a4d58edd92chrismair
2577391c2a01ce1fed085906743cc240a4d58edd92chrismair/**
2677391c2a01ce1fed085906743cc240a4d58edd92chrismair * Tests for the SystCommandHandler class
2777391c2a01ce1fed085906743cc240a4d58edd92chrismair *
2877391c2a01ce1fed085906743cc240a4d58edd92chrismair * @version $Revision$ - $Date$
2977391c2a01ce1fed085906743cc240a4d58edd92chrismair *
3077391c2a01ce1fed085906743cc240a4d58edd92chrismair * @author Chris Mair
3177391c2a01ce1fed085906743cc240a4d58edd92chrismair */
3277391c2a01ce1fed085906743cc240a4d58edd92chrismairpublic final class SystCommandHandlerTest extends AbstractCommandHandlerTest {
3377391c2a01ce1fed085906743cc240a4d58edd92chrismair
3477391c2a01ce1fed085906743cc240a4d58edd92chrismair    private static final Logger LOG = Logger.getLogger(SystCommandHandlerTest.class);
3577391c2a01ce1fed085906743cc240a4d58edd92chrismair
3677391c2a01ce1fed085906743cc240a4d58edd92chrismair    private SystCommandHandler commandHandler;
3777391c2a01ce1fed085906743cc240a4d58edd92chrismair
3877391c2a01ce1fed085906743cc240a4d58edd92chrismair    /**
3977391c2a01ce1fed085906743cc240a4d58edd92chrismair     * Test the handleCommand() method
4077391c2a01ce1fed085906743cc240a4d58edd92chrismair     */
4177391c2a01ce1fed085906743cc240a4d58edd92chrismair    public void testHandleCommand() throws Exception {
4277391c2a01ce1fed085906743cc240a4d58edd92chrismair
4377391c2a01ce1fed085906743cc240a4d58edd92chrismair        final String SYSTEM_NAME = "UNIX";
4477391c2a01ce1fed085906743cc240a4d58edd92chrismair        commandHandler.setSystemName(SYSTEM_NAME);
4577391c2a01ce1fed085906743cc240a4d58edd92chrismair
4677391c2a01ce1fed085906743cc240a4d58edd92chrismair        session.sendReply(ReplyCodes.SYST_OK, formattedReplyTextFor(ReplyCodes.SYST_OK, "\"" + SYSTEM_NAME + "\""));
4777391c2a01ce1fed085906743cc240a4d58edd92chrismair        replay(session);
4877391c2a01ce1fed085906743cc240a4d58edd92chrismair
4977391c2a01ce1fed085906743cc240a4d58edd92chrismair        final Command COMMAND = new Command(CommandNames.SYST, EMPTY);
5077391c2a01ce1fed085906743cc240a4d58edd92chrismair
5177391c2a01ce1fed085906743cc240a4d58edd92chrismair        commandHandler.handleCommand(COMMAND, session);
5277391c2a01ce1fed085906743cc240a4d58edd92chrismair        verify(session);
5377391c2a01ce1fed085906743cc240a4d58edd92chrismair
5477391c2a01ce1fed085906743cc240a4d58edd92chrismair        verifyNumberOfInvocations(commandHandler, 1);
5577391c2a01ce1fed085906743cc240a4d58edd92chrismair        verifyNoDataElements(commandHandler.getInvocation(0));
5677391c2a01ce1fed085906743cc240a4d58edd92chrismair    }
5777391c2a01ce1fed085906743cc240a4d58edd92chrismair
5877391c2a01ce1fed085906743cc240a4d58edd92chrismair    /**
5977391c2a01ce1fed085906743cc240a4d58edd92chrismair     * Test the SetSystemName method, passing in a null
6077391c2a01ce1fed085906743cc240a4d58edd92chrismair     */
6177391c2a01ce1fed085906743cc240a4d58edd92chrismair    public void testSetSystemName_Null() {
6277391c2a01ce1fed085906743cc240a4d58edd92chrismair        try {
6377391c2a01ce1fed085906743cc240a4d58edd92chrismair            commandHandler.setSystemName(null);
6477391c2a01ce1fed085906743cc240a4d58edd92chrismair            fail("Expected AssertFailedException");
6577391c2a01ce1fed085906743cc240a4d58edd92chrismair        }
6677391c2a01ce1fed085906743cc240a4d58edd92chrismair        catch (AssertFailedException expected) {
6777391c2a01ce1fed085906743cc240a4d58edd92chrismair            LOG.info("Expected: " + expected);
6877391c2a01ce1fed085906743cc240a4d58edd92chrismair        }
6977391c2a01ce1fed085906743cc240a4d58edd92chrismair    }
7077391c2a01ce1fed085906743cc240a4d58edd92chrismair
7177391c2a01ce1fed085906743cc240a4d58edd92chrismair    /**
7277391c2a01ce1fed085906743cc240a4d58edd92chrismair     * Perform initialization before each test
7377391c2a01ce1fed085906743cc240a4d58edd92chrismair     * @see org.mockftpserver.stub.command.AbstractCommandHandlerTest#setUp()
7477391c2a01ce1fed085906743cc240a4d58edd92chrismair     */
7577391c2a01ce1fed085906743cc240a4d58edd92chrismair    protected void setUp() throws Exception {
7677391c2a01ce1fed085906743cc240a4d58edd92chrismair        super.setUp();
7777391c2a01ce1fed085906743cc240a4d58edd92chrismair        commandHandler = new SystCommandHandler();
7877391c2a01ce1fed085906743cc240a4d58edd92chrismair        commandHandler.setReplyTextBundle(replyTextBundle);
7977391c2a01ce1fed085906743cc240a4d58edd92chrismair    }
8077391c2a01ce1fed085906743cc240a4d58edd92chrismair
8177391c2a01ce1fed085906743cc240a4d58edd92chrismair}
82