/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.command.internal.handlers; import java.util.LinkedList; import java.util.List; import org.easymock.EasyMock; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import de.rcenvironment.core.command.common.CommandException; import de.rcenvironment.core.command.spi.CommandContext; import de.rcenvironment.core.utils.common.textstream.TextOutputReceiver; /** * Tests for {@link BuiltInCommandPlugin}. * * @author Tobias Rodehutskors */ public class BuiltInCommandPluginTest { /** * Expected exception placeholder. */ @Rule public ExpectedException commandException = ExpectedException.none(); /** * Tests if the force-crash command throws a reasonable exception if no argument was supplied. * * @throws CommandException expected */ @Test public void testForceCrashWithoutArgument() throws CommandException { BuiltInCommandPlugin plugin = new BuiltInCommandPlugin(); TextOutputReceiver receiver = EasyMock.createStrictMock(TextOutputReceiver.class); List<String> tokens = new LinkedList<String>(); tokens.add("force-crash"); CommandContext context = new CommandContext(tokens, receiver, "invoker"); commandException.expect(CommandException.class); commandException.expectMessage("Wrong number of parameters"); plugin.execute(context); } /** * Tests if the force-crash command throws a reasonable exception if an invalid argument was supplied. * * @throws CommandException expected */ @Test public void testForceCrashWithArgumentOfWrongType() throws CommandException { BuiltInCommandPlugin plugin = new BuiltInCommandPlugin(); TextOutputReceiver receiver = EasyMock.createStrictMock(TextOutputReceiver.class); List<String> tokens = new LinkedList<String>(); tokens.add("force-crash"); tokens.add("string"); CommandContext context = new CommandContext(tokens, receiver, "invoker"); commandException.expect(CommandException.class); commandException.expectMessage("You need to specify the delay in milliseconds"); plugin.execute(context); } }