package com.vaadin.v7.tests.server.component.abstractfield;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import org.easymock.EasyMock;
import org.junit.Test;
import com.vaadin.v7.data.Validator;
import com.vaadin.v7.ui.AbstractField;
public class AbsFieldValidatorsTest {
AbstractField<Object> field = new AbstractField<Object>() {
@Override
public Class getType() {
return Object.class;
}
};
Validator validator = EasyMock.createMock(Validator.class);
Validator validator2 = EasyMock.createMock(Validator.class);
@Test
public void testAddValidator() {
assertNotNull(field.getValidators());
assertEquals(0, field.getValidators().size());
field.addValidator(validator);
assertEquals(1, field.getValidators().size());
assertTrue(field.getValidators().contains(validator));
field.addValidator(validator2);
assertEquals(2, field.getValidators().size());
assertTrue(field.getValidators().contains(validator));
assertTrue(field.getValidators().contains(validator2));
}
@Test
public void testRemoveValidator() {
field.addValidator(validator);
field.addValidator(validator2);
field.removeValidator(validator);
assertNotNull(field.getValidators());
assertEquals(1, field.getValidators().size());
assertFalse(field.getValidators().contains(validator));
assertTrue(field.getValidators().contains(validator2));
field.removeValidator(validator2);
assertNotNull(field.getValidators());
assertEquals(0, field.getValidators().size());
assertFalse(field.getValidators().contains(validator));
assertFalse(field.getValidators().contains(validator2));
}
@Test
public void testRemoveAllValidators() {
field.addValidator(validator);
field.addValidator(validator2);
field.removeAllValidators();
assertNotNull(field.getValidators());
assertEquals(0, field.getValidators().size());
assertFalse(field.getValidators().contains(validator));
assertFalse(field.getValidators().contains(validator2));
}
@Test
public void nonImmediateFieldWithValidator() {
field.setImmediate(false);
field.addValidator(validator);
assertFalse("field should be non-immediate because explicitly set",
field.isImmediate());
}
}