[forge-dev] Interesting behavior of CommandController (bug or feature ; ))

George Gastaldi ggastald at redhat.com
Fri Jul 3 10:23:49 EDT 2015


Hi Ivan,

Glad you decided to resume your work on the servlet security addon.

When your command use a PreRequisiteCommandProvider, the initial step 
might not be your command in question, but the commands to be executed 
before that. That's why your setValueFor method might fail.

What are the inputs returned in your test after you call initialize() 
(commandController.getInputs()) ?

Best Regards,

George Gastaldi

On 07/03/2015 09:36 AM, Ivan St. Ivanov wrote:
> Hi everybody,
>
> Believe it or not, but I resumed my work on the Servlet Security addon 
> for Forge (https://issues.jboss.org/browse/FORGEPLUGINS-152) :)
>
> And I found something that I don't know whether is a bug or a feature. 
> If my Command class implements the PrerequisiteCommandsProvider and if 
> I try to use the CommandController in my integration test, then I have 
> a problem. Here is a sample code:
>
> try (CommandController commandController = testHarness
>  .createCommandController(SecuritySetupCommand.class, project.getRoot()))
>       {
>          commandController.initialize();
>          commandController.setValueFor("securityRealm", realm);
>          commandController.setValueFor("authMethod", 
> authenticationMethod);
>          commandController.execute();
>       }
>
> This code fails at the setValueFor method simply because the UI was 
> not initialized in the initialize method above it and there are no 
> such inputs like securityRealm and authMethod.
>
> I did some debugging and found that if SecuritySetupCommand implements 
> the PrerequisiteCommandsProvider interface, the 
> commandController.initialize() method does not 
> call PrerequisiteCommandsProvider#initializeUI method. Instead it 
> triggeres PrerequisiteCommandTransformer.DelegateWizard#initializeUI. 
> Which is empty and does nothing. And that's the reason why there are 
> no securityRealm and authMethod controls.
>
> I guess that it is caused by some CDI "magic"? So I wonder is it a bug 
> or a feature? Can I use CommandController to test commands that 
> implement PrerequisiteCommandsProvider?
>
> Thanks,
> Ivan
>
>
> _______________________________________________
> forge-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20150703/826f8045/attachment.html 


More information about the forge-dev mailing list