Package com.pugh.sockso.commands

Source Code of com.pugh.sockso.commands.CommandExecuterTest

package com.pugh.sockso.commands;

import com.pugh.sockso.Properties;
import com.pugh.sockso.StringProperties;
import com.pugh.sockso.db.Database;

import com.pugh.sockso.tests.SocksoTestCase;
import com.pugh.sockso.tests.TestDatabase;
import com.pugh.sockso.tests.TestLocale;
import com.pugh.sockso.web.User;

public class CommandExecuterTest extends SocksoTestCase {

    private CommandExecuter cmd;
   
    private Properties p;
   
    private Database db;

    private TestLocale locale;

    @Override
    public void setUp() {
        p = new StringProperties();
        db = new TestDatabase();
        locale = new TestLocale();
        locale.setString( "con.desc.commands", "Usage:" );
        locale.setString( "con.msg.propertySaved", "property saved" );
        cmd = new CommandExecuter( db, p, null, locale, new CommandParser() );
    }


    public void testCommandsCanBeExecutedByName() throws Exception {
        cmd.execute( "propset foo bar" );
        assertEquals( "bar", p.get("foo") );
    }

    public void testCommandsCanBePassedParameters() throws Exception {
        cmd.execute( "propset foo bar" );
        assertEquals( "bar", p.get("foo") );
    }

    public void testErrorReportedWhenExtactNumberOfRequiredArgumentsIsNotSpecified() throws Exception {
        assertContains( cmd.execute("propset foo"), "requires" );           // too few
        assertContains( cmd.execute("propset foo bar baz"), "requires" );   // too many

    }

    public void testCommandResultIsReturnedWhenACommandIsRun() throws Exception {
        assertEquals( "property saved", cmd.execute("propset foo bar") );
    }

    public void testUsageIsReturnedWhenAnUnknownCommandIsSpecified() throws Exception {
        assertContains( cmd.execute("bloopper"), "Usage:" );
    }

    public void testCommandNamesListedInUsageReturned() throws Exception {
        assertContains( cmd.execute("help"), "propset" );
    }

    public void testCommandArgumentsListedInUsageReturned() throws Exception {
        assertContains( cmd.execute("help"), "NAME VALUE" );
    }

    public void testCommandDescriptionListedInUsageReturned() throws Exception {
        assertContains( cmd.execute("help"), "Sets a property" );
    }

    public void testQuotesCanBeUsedInArguments() throws Exception {
        cmd.execute( "propset foo \"bah bah\"" );
        assertEquals( "bah bah", p.get("foo") );
        cmd.execute( "propset \"foo foo\" \"baz baz baz\"" );
        assertEquals( "baz baz baz", p.get("foo foo") );
    }

}
TOP

Related Classes of com.pugh.sockso.commands.CommandExecuterTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.