You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BeanValidatorTest.java 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.vaadin.data.validator;
  2. import java.util.Calendar;
  3. import java.util.Locale;
  4. import org.junit.After;
  5. import org.junit.Test;
  6. import com.vaadin.tests.data.bean.Address;
  7. import com.vaadin.tests.data.bean.BeanToValidate;
  8. import com.vaadin.ui.UI;
  9. public class BeanValidatorTest extends ValidatorTestBase {
  10. @Test
  11. public void testFirstNameNullFails() {
  12. assertFails(null, "may not be null", validator("firstname"));
  13. }
  14. @Test
  15. public void testFirstNameTooShortFails() {
  16. assertFails("x", "size must be between 3 and 16",
  17. validator("firstname"));
  18. }
  19. @Test
  20. public void testFirstNameLongEnoughPasses() {
  21. assertPasses("Magi", validator("firstname"));
  22. }
  23. @Test
  24. public void testAgeTooYoungFails() {
  25. assertFails(14, "Must be 18 or above", validator("age"));
  26. }
  27. @Test
  28. public void testDateOfBirthNullPasses() {
  29. assertPasses(null, validator("dateOfBirth"));
  30. }
  31. @Test
  32. public void testDateOfBirthInTheFutureFails() {
  33. Calendar year3k = Calendar.getInstance();
  34. year3k.set(3000, 0, 1);
  35. assertFails(year3k, "must be in the past", validator("dateOfBirth"));
  36. }
  37. @Test
  38. public void testAddressesEmptyArrayPasses() {
  39. Address[] noAddresses = {};
  40. assertPasses(noAddresses, validator("addresses"));
  41. }
  42. @Test
  43. public void testAddressesNullFails() {
  44. assertFails(null, "may not be null", validator("addresses"));
  45. }
  46. @Test
  47. public void testInvalidDecimalsFailsInFrench() {
  48. setLocale(Locale.FRENCH);
  49. BeanValidator v = validator("decimals");
  50. assertFails("1234.567", "valeur numérique hors limite "
  51. + "(<3 chiffres>.<2 chiffres> attendu)", v);
  52. }
  53. @Test
  54. public void testAddressNestedPropertyInvalidPostalCodeFails() {
  55. assertFails(100_000, "must be less than or equal to 99999",
  56. validator("address.postalCode"));
  57. }
  58. @Test
  59. public void testNullValuePasses() {
  60. assertPasses(null, validator("nickname"));
  61. }
  62. @After
  63. public void tearDown() {
  64. UI.setCurrent(null);
  65. }
  66. private BeanValidator validator(String propertyName) {
  67. return new BeanValidator(BeanToValidate.class, propertyName);
  68. }
  69. }