package net.formio.validation.constraints;
import org.junit.Test;
import junit.framework.Assert;
import net.formio.FormData;
import net.formio.FormMapping;
import net.formio.data.TestForms;
import net.formio.domain.Contact;
import net.formio.inmemory.MapParams;
/**
* Tests for {@link AnyNotEmpty}
* @author Petr Kalivoda
*
*/
public class AnyNotEmptyValidationTest {
@Test
public void testBothFilled() {
FormMapping<Contact> contactForm = TestForms.CONTACT_FORM;
FormData<Contact> contactData = newFormData(contactForm, "proper.email@example", "+420000000");
Assert.assertTrue("validation with both filled should yield true", contactData.isValid());
}
@Test
public void testEmailFilled() {
FormMapping<Contact> contactForm = TestForms.CONTACT_FORM;
FormData<Contact> contactData = newFormData(contactForm, "proper.email@example", null);
Assert.assertTrue("validation with only first filled should yield true", contactData.isValid());
}
@Test
public void testPhoneFilled() {
FormMapping<Contact> contactForm = TestForms.CONTACT_FORM;
FormData<Contact> contactData = newFormData(contactForm, null, "+420000000");
Assert.assertTrue("validation with only second filled should yield true", contactData.isValid());
}
@Test
public void testNoneFilled() {
FormMapping<Contact> contactForm = TestForms.CONTACT_FORM;
FormData<Contact> contactData = newFormData(contactForm, null, null);
Assert.assertFalse("validation with none filled should yield false", contactData.isValid());
}
public static FormData<Contact> newFormData(FormMapping<Contact> mapping, String email, String phone) {
return TestForms.CONTACT_FORM.bind(newContactFormParams(mapping.getConfig().getPathSeparator(), email, phone));
}
public static MapParams newContactFormParams(String pathSep, String email, String phone) {
final MapParams reqParams = new MapParams();
reqParams.put("contact" + pathSep + "email", email);
reqParams.put("contact" + pathSep + "phone", phone);
return reqParams;
}
}