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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev