package org.gbif.ipt.validation; import org.gbif.ipt.action.BaseAction; import org.gbif.ipt.config.AppConfig; import org.gbif.ipt.model.User; import org.gbif.ipt.service.admin.RegistrationManager; import org.gbif.ipt.struts2.SimpleTextProvider; import org.junit.Test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; public class UserValidatorTest { private static UserValidator USER_VALIDATOR = new UserValidator(); private static BaseAction BASE_ACTION = new BaseAction(mock(SimpleTextProvider.class), mock(AppConfig.class), mock( RegistrationManager.class)); @Test public void testEmail() { // good emails assertTrue(USER_VALIDATOR.isValidEmail("kbraak@gbif.org")); assertTrue(USER_VALIDATOR.isValidEmail("kyle.braak@gmail.com")); // emails in varying case? see https://code.google.com/p/gbif-providertoolkit/issues/detail?id=1013 assertTrue(USER_VALIDATOR.isValidEmail("JohnDoe@example.com")); assertTrue(USER_VALIDATOR.isValidEmail("johndoe@example.com")); // emails with .cat extension, see see https://code.google.com/p/gbif-providertoolkit/issues/detail?id=1010 assertTrue(USER_VALIDATOR.isValidEmail("katia@gov.cat")); // bad emails assertFalse(USER_VALIDATOR.isValidEmail(null)); assertFalse(USER_VALIDATOR.isValidEmail("")); assertFalse(USER_VALIDATOR.isValidEmail("JohnDoe")); assertFalse(USER_VALIDATOR.isValidEmail("John Doe@example.com")); assertFalse(USER_VALIDATOR.isValidEmail("JohnDoe.com")); } @Test public void testUser() { // good user User user = new User(); user.setEmail("jcuadra@gbif.org"); user.setFirstname("Jose"); user.setLastname("Cuadra"); user.setPassword("password"); user.setRole(User.Role.Admin); user.setLastLoginToNow(); assertTrue(USER_VALIDATOR.validate(BASE_ACTION, user)); // bad user - bad email user.setEmail("jcuadra @gbif.org"); assertFalse(USER_VALIDATOR.validate(BASE_ACTION, user)); // bad user - bad first name user.setEmail("jcuadra@gbif.org"); user.setFirstname(" "); assertFalse(USER_VALIDATOR.validate(BASE_ACTION, user)); // bad user - bad last name user.setFirstname("Jose"); user.setLastname(" "); assertFalse(USER_VALIDATOR.validate(BASE_ACTION, user)); // bad user - bad password user.setLastname("Cuadra"); user.setPassword("p"); assertFalse(USER_VALIDATOR.validate(BASE_ACTION, user)); } }