package javango.forms.fields;
import java.util.HashMap;
import java.util.Map;
import com.google.inject.Injector;
import javango.forms.fields.BooleanField;
import javango.forms.fields.BoundField;
import javango.forms.fields.Field;
import javango.forms.tests.InjectedTestCaseBase;
import javango.forms.widgets.WidgetFactory;
import junit.framework.TestCase;
public class BooleanFieldTest extends InjectedTestCaseBase {
public void testRequired() throws Exception {
Field field = new BooleanField(injector.getInstance(WidgetFactory.class));
field.setName("fieldName");
Map<String, String> errors = new HashMap<String, String>();
field.clean(new String[]{""}, errors);
assertFalse(errors.isEmpty());
assertTrue(errors.containsKey(field.getName()));
assertEquals("Required", errors.get(field.getName()));
}
public void testNotRequired() throws Exception {
Field field = new BooleanField(injector.getInstance(WidgetFactory.class));
field.setName("fieldName");
field.setRequired(false);
Map<String, String> errors = new HashMap<String, String>();
field.clean(new String[]{""}, errors);
assertTrue(errors.isEmpty());
}
public void testInvalid() throws Exception {
Field field = new BooleanField(injector.getInstance(WidgetFactory.class));
field.setName("fieldName");
Map<String, String> errors = new HashMap<String, String>();
Boolean value = (Boolean)field.clean(new String []{"qwert"}, errors);
assertFalse(errors.isEmpty());
assertTrue(errors.containsKey("fieldName"));
assertEquals("Unknown value 'qwert'", errors.get("fieldName"));
}
public void testValidTrue() throws Exception {
Field field = new BooleanField(injector.getInstance(WidgetFactory.class));
field.setName("fieldName");
Map<String, String> errors = new HashMap<String, String>();
Boolean value = (Boolean)field.clean(new String[]{"true"}, errors);
assertTrue(errors.isEmpty());
assertEquals(Boolean.TRUE, value);
}
public void testValidFalse() throws Exception {
Field field = new BooleanField(injector.getInstance(WidgetFactory.class));
field.setName("fieldName");
Map<String, String> errors = new HashMap<String, String>();
Boolean value = (Boolean)field.clean(new String[]{"false"}, errors);
assertTrue(errors.isEmpty());
assertEquals(Boolean.FALSE, value);
}
}