package com.quemb.qmbform;
import com.quemb.qmbform.annotation.FormValidator;
import com.quemb.qmbform.annotation.validators.EmailValidator;
import com.quemb.qmbform.descriptor.RowDescriptor;
import com.quemb.qmbform.descriptor.RowValidationError;
import com.quemb.qmbform.descriptor.Value;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
/**
* Created by pmaccamp on 9/14/2015.
*/
// @Config(constants = BuildConfig.class)
// @RunWith(RobolectricTestRunner.class)
public class ValidationTest {
@Before
public void setUp() {
}
@Test
public void isValidRow() {
RowDescriptor rowDescriptor = RowDescriptor.newInstance("valid",
RowDescriptor.FormRowDescriptorTypeEmail,
"Email Test",
new Value<String>("test@yahoo.com"));
rowDescriptor.addValidator(new EmailValidator());
//Add true dummy validator to test multiple validation
rowDescriptor.addValidator(new FormValidator() {
@Override
public RowValidationError validate(RowDescriptor descriptor) {
return descriptor.getValueData().equals("test@yahoo.com") ?
null : new RowValidationError(descriptor, R.string.test_error);
}
});
assertThat(rowDescriptor.isValid(), is(true));
}
@Test
public void isInvalidRow() {
RowDescriptor rowDescriptor = RowDescriptor.newInstance("valid",
RowDescriptor.FormRowDescriptorTypeEmail,
"Email Test",
new Value<String>("notavalidemail"));
//Add true dummy validator to test multiple validation
rowDescriptor.addValidator(new FormValidator() {
@Override
public RowValidationError validate(RowDescriptor descriptor) {
return descriptor.getValueData().equals("notavalidemail") ?
null : new RowValidationError(descriptor, R.string.test_error);
}
});
rowDescriptor.addValidator(new EmailValidator());
assertThat(rowDescriptor.isValid(), is(false));
}
@After
public void tearDown() {
}
}