/** * Parse a string representing the users (see {@link ServletPropertySet#USERS}. * * @param usersAsString the string representing the users * @return a list of {@link User} objects */ public static List<User> parseUsers(String usersAsString) { List<User> users = new ArrayList<User>(); if (usersAsString != null) { // The format to parse is "name1:pwd1:role11,...,role1N|name2:pwd2:role21,...,role2N|.." StringTokenizer userTokens = new StringTokenizer(usersAsString, "|"); while (userTokens.hasMoreTokens()) { users.add(parseUser(userTokens.nextToken())); } } return users; }
/** * Test user parsing empty field. */ public void testParseUserWithEmptyField() { try { User.parseUser(""); fail("Should have raised an exception here"); } catch (ContainerException expected) { assertEquals("User property has empty value.", expected.getMessage()); } }
/** * Test user parsing with a missing field. */ public void testParseUserWithMissingField() { try { User.parseUser("name:password:role:"); fail("Should have raised an exception here"); } catch (ContainerException expected) { assertEquals("Invalid format for [name:password:role:]", expected.getMessage()); } }
/** * Test user parsing with no roles. */ public void testParseUserWithNoRoles() { User expectedUser = new User(); expectedUser.setName("name"); expectedUser.setPassword("pwd"); User user = User.parseUser("name:pwd"); assertEquals(expectedUser, user); }
/** * Test user parsing. */ public void testParseUserWithWhitespace() { User expectedUser = new User(); expectedUser.setName("name"); expectedUser.setPassword("pwd"); expectedUser.addRole("role"); User user = User.parseUser("\n\t name:pwd:role"); assertEquals(expectedUser, user); }
/** * Test user parsing with empty password. */ public void testParseUserWithEmptyPassword() { User expectedUser = new User(); expectedUser.setName("name"); expectedUser.setPassword(""); expectedUser.addRole("role"); User user = User.parseUser("name::role"); assertEquals(expectedUser, user); }
/** * Test user parsing. */ public void testParseUser() { User expectedUser = new User(); expectedUser.setName("name"); expectedUser.setPassword("pwd"); expectedUser.addRole("role"); User user = User.parseUser("name:pwd:role"); assertEquals(expectedUser, user); }