Skip to content

Commit

Permalink
FORGE-855: Merged 2.0 branch
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Jan 10, 2014
1 parent 532f9a7 commit 8948b1e
Show file tree
Hide file tree
Showing 6 changed files with 67 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ public void enrich(InjectionPoint injectionPoint, InputComponent<?, ?> input)
{
Class<?> beanType = injectionPoint.getBean().getBeanClass();
UIValidationAdapter adapter = new UIValidationAdapter(validator, input, (Class<UICommand>) beanType);
input.setValidator(adapter);
input.addValidator(adapter);
}
}
6 changes: 6 additions & 0 deletions bean-validation/tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@
<artifactId>ui</artifactId>
<classifier>forge-addon</classifier>
</dependency>
<dependency>
<groupId>org.jboss.forge.addon</groupId>
<artifactId>ui-test-harness</artifactId>
<classifier>forge-addon</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.forge.furnace.test</groupId>
<artifactId>furnace-test-harness</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,11 @@

import javax.validation.constraints.NotNull;

import org.jboss.forge.furnace.services.Exported;

/**
*
* @author <a href="ggastald@redhat.com">George Gastaldi</a>
*/
@Exported
public class ManagedExportedObject
public class ManagedObject
{
public String sayHello(@NotNull String name)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public static ForgeArchive getDeployment()
{
ForgeArchive archive = ShrinkWrap
.create(ForgeArchive.class)
.addClass(ManagedExportedObject.class)
.addClass(ManagedObject.class)
.addBeansXML()
.addAsAddonDependencies(
AddonDependencyEntry.create("org.jboss.forge.addon:bean-validation"),
Expand All @@ -45,7 +45,7 @@ public static ForgeArchive getDeployment()
}

@Inject
private ManagedExportedObject exportedObject;
private ManagedObject exportedObject;

@Test
public void testInjection() throws Exception
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/**
* Copyright 2014 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/

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

import javax.inject.Inject;
import javax.validation.constraints.Size;

import org.jboss.forge.addon.ui.AbstractUICommand;
import org.jboss.forge.addon.ui.context.UIBuilder;
import org.jboss.forge.addon.ui.context.UIExecutionContext;
import org.jboss.forge.addon.ui.input.UIInput;
import org.jboss.forge.addon.ui.metadata.WithAttributes;
import org.jboss.forge.addon.ui.result.Result;
import org.jboss.forge.addon.ui.result.Results;

/**
*
* @author <a href="ggastald@redhat.com">George Gastaldi</a>
*/
public class ValidationCommand extends AbstractUICommand
{
@Inject
@WithAttributes(label = "Name", required = true)
@Size(min = 1, max = 5)
private UIInput<String> name;

@Override
public void initializeUI(UIBuilder builder) throws Exception
{
builder.add(name);
}

@Override
public Result execute(UIExecutionContext context) throws Exception
{
return Results.success();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,16 @@
import java.util.List;

import javax.inject.Inject;
import javax.validation.constraints.Size;

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.forge.addon.ui.context.AbstractUIContext;
import org.jboss.forge.addon.ui.context.AbstractUIValidationContext;
import org.jboss.forge.addon.ui.context.UIContext;
import org.jboss.forge.addon.ui.context.UISelection;
import org.jboss.forge.addon.ui.input.UIInput;
import org.jboss.forge.addon.ui.metadata.WithAttributes;
import org.jboss.forge.addon.ui.util.Selections;
import org.jboss.forge.addon.ui.controller.CommandController;
import org.jboss.forge.addon.ui.output.UIMessage;
import org.jboss.forge.arquillian.AddonDependency;
import org.jboss.forge.arquillian.Dependencies;
import org.jboss.forge.arquillian.archive.ForgeArchive;
import org.jboss.forge.furnace.repositories.AddonDependencyEntry;
import org.jboss.forge.ui.test.UITestHarness;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.junit.Assert;
import org.junit.Test;
Expand All @@ -46,6 +41,7 @@ public static ForgeArchive getDeployment()
ForgeArchive archive = ShrinkWrap
.create(ForgeArchive.class)
.addBeansXML()
.addClass(ValidationCommand.class)
.addAsAddonDependencies(
AddonDependencyEntry.create("org.jboss.forge.addon:ui"),
AddonDependencyEntry.create("org.jboss.forge.addon:bean-validation"),
Expand All @@ -55,32 +51,18 @@ public static ForgeArchive getDeployment()
}

@Inject
@WithAttributes(label = "Name", required = true)
@Size(min = 1, max = 5)
private UIInput<String> name;
UITestHarness testHarness;

@Test
public void testValidation()
public void testValidation() throws Exception
{
name.setValue("A very long string");
final UIContext uiContext = new AbstractUIContext()
try (CommandController controller = testHarness.createCommandController(ValidationCommand.class))
{
@Override
public <SELECTIONTYPE> UISelection<SELECTIONTYPE> getInitialSelection()
{
return Selections.emptySelection();
}
};
AbstractUIValidationContext validationContext = new AbstractUIValidationContext()
{
@Override
public UIContext getUIContext()
{
return uiContext;
}
};
name.validate(validationContext);
List<String> errors = validationContext.getErrors();
Assert.assertFalse("An error should have been captured", errors.isEmpty());
controller.initialize();
controller.setValueFor("name", "A Very Long String");
Assert.assertFalse("Controller should not be valid", controller.isValid());
List<UIMessage> messages = controller.validate();
Assert.assertFalse("An error should have been captured", messages.isEmpty());
}
}
}

0 comments on commit 8948b1e

Please sign in to comment.