Skip to content

Commit

Permalink
Merge pull request #535 from agoncal/FORGE-2255
Browse files Browse the repository at this point in the history
FORGE-2255: Adding helper methods in CommandController
  • Loading branch information
gastaldi committed Feb 19, 2015
2 parents 36bf71d + 3c9c830 commit d884a88
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 10 deletions.
Expand Up @@ -96,6 +96,20 @@ public interface CommandController extends AutoCloseable
*/
Map<String, InputComponent<?, ?>> getInputs();

/**
* Returns a {@link InputComponent} instances for this command given an input name. May be <code>null</code>.
*
* @throws IllegalStateException if {@link #initialize()} has not been called before invoking this method.
*/
InputComponent<?, ?> getInput(String inputName);

/**
* Returns true if the {@link InputComponent} instances exists for this command given an input name.
*
* @throws IllegalStateException if {@link #initialize()} has not been called before invoking this method.
*/
boolean hasInput(String inputName);

/**
* @return the result of the current {@link UICommand#getMetadata(UIContext)}. Does not require initialization.
*/
Expand Down
Expand Up @@ -189,7 +189,19 @@ public Object getValueFor(String inputName) throws IllegalArgumentException
return controller.getInputs();
}

@Override
@Override
public InputComponent<?, ?> getInput(String inputName)
{
return getInputs().get(inputName);
}

@Override
public boolean hasInput(String inputName)
{
return getInputs().containsKey(inputName);
}

@Override
public UICommandMetadata getMetadata()
{
return controller.getMetadata();
Expand Down
Expand Up @@ -111,6 +111,18 @@ public boolean canExecute()
return uiBuilder.getInputs();
}

@Override
public InputComponent<?, ?> getInput(String inputName)
{
return getInputs().get(inputName);
}

@Override
public boolean hasInput(String inputName)
{
return getInputs().containsKey(inputName);
}

@SuppressWarnings("unchecked")
@Override
public CommandController setValueFor(String inputName, Object value)
Expand Down
Expand Up @@ -239,7 +239,19 @@ public Object getValueFor(String inputName) throws IllegalArgumentException
return getCurrentController().getInputs();
}

@Override
@Override
public InputComponent<?, ?> getInput(String inputName)
{
return getInputs().get(inputName);
}

@Override
public boolean hasInput(String inputName)
{
return getInputs().containsKey(inputName);
}

@Override
public UICommandMetadata getMetadata()
{
return getCurrentController().getMetadata();
Expand Down
Expand Up @@ -14,11 +14,7 @@
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.forge.addon.ui.command.ValidateRequiredCommand;
import org.jboss.forge.addon.ui.controller.mock.ExampleCommand;
import org.jboss.forge.addon.ui.controller.mock.ExampleNoUICommand;
import org.jboss.forge.addon.ui.controller.mock.FlowExampleStep;
import org.jboss.forge.addon.ui.controller.mock.FlowExampleWizard;
import org.jboss.forge.addon.ui.controller.mock.MockPreStepsCommand;
import org.jboss.forge.addon.ui.controller.mock.*;
import org.jboss.forge.addon.ui.impl.mock.MockUIContext;
import org.jboss.forge.addon.ui.impl.mock.MockUIRuntime;
import org.jboss.forge.addon.ui.result.Result;
Expand Down Expand Up @@ -93,6 +89,10 @@ public void testSingleCommandController() throws Exception
controller.initialize();
Assert.assertFalse(controller.getInputs().isEmpty());
Assert.assertTrue(controller.getInputs().containsKey("firstName"));
Assert.assertNotNull(controller.getInput("firstName"));
Assert.assertTrue(controller.hasInput("firstName"));
Assert.assertNull(controller.getInput("dummy"));
Assert.assertFalse(controller.hasInput("dummy"));
controller.setValueFor("firstName", "Forge");
Assert.assertEquals("Forge", controller.getValueFor("firstName"));
Assert.assertTrue(controller.isValid());
Expand All @@ -116,6 +116,9 @@ public void testExampleNoUI() throws Exception
exampleNoUICommand);
controller.initialize();
Assert.assertTrue(controller.getInputs().isEmpty());
Assert.assertEquals(0, controller.getInputs().size());
Assert.assertNull(controller.getInput("firstName"));
Assert.assertFalse(controller.hasInput("firstName"));
Assert.assertTrue(controller.isValid());
Assert.assertTrue(controller.canExecute());
Result result = controller.execute();
Expand Down
Expand Up @@ -7,9 +7,7 @@

package org.jboss.forge.addon.ui.controller;

import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.*;

import java.util.List;

Expand Down Expand Up @@ -220,6 +218,10 @@ public void testDynamicInputs() throws Exception
controller.next().initialize();
Assert.assertTrue("Should have added one input", controller.getInputs().size() == 1);
Assert.assertTrue("Input inputOne not added", controller.getInputs().containsKey("inputOne"));
Assert.assertNotNull(controller.getInput("inputOne"));
Assert.assertTrue(controller.hasInput("inputOne"));
Assert.assertNull(controller.getInput("dummy"));
Assert.assertFalse(controller.hasInput("dummy"));
Assert.assertTrue(controller.canMoveToPreviousStep());
controller.previous();
controller.setValueFor("chooseInputTwo", Boolean.TRUE);
Expand Down

0 comments on commit d884a88

Please sign in to comment.