@Test public void testParseRequiredFlag() throws IOException, JDOMException { final StringBuffer configXml = new StringBuffer(); configXml.append("<config>"); configXml.append(" <user-fields>"); configXml.append(" <first-name required='true' />"); configXml.append(" <initials required='false' />"); configXml.append(" <birthday/>"); configXml.append(" </user-fields>"); configXml.append("</config>"); final Element configEl = JDOMUtil.parseDocument(configXml.toString()).getRootElement(); final UserStoreConfig config = UserStoreConfigParser.parse(configEl); final Collection<UserStoreUserFieldConfig> allUserFieldConfigs = config.getUserFieldConfigs(); for (final UserStoreUserFieldConfig userFieldConfig : allUserFieldConfigs) { if (userFieldConfig.getType().getName().equals("first-name")) { assertEquals(true, userFieldConfig.isRequired()); } else if (userFieldConfig.getType().getName().equals("initials")) { assertEquals(false, userFieldConfig.isRequired()); } else if (userFieldConfig.getType().getName().equals("birthday")) { assertEquals(false, userFieldConfig.isRequired()); } } }
@Test public void testAllParseUserFieldTypes() throws IOException, JDOMException { final StringBuffer configXml = new StringBuffer(); configXml.append("<config>"); configXml.append(" <user-fields>"); for (final UserFieldType type : UserFieldType.values()) { configXml.append(" <" + type.getName() + "/>"); } configXml.append(" </user-fields>"); configXml.append("</config>"); final Element configEl = JDOMUtil.parseDocument(configXml.toString()).getRootElement(); final UserStoreConfig config = UserStoreConfigParser.parse(configEl); assertNotNull(config); assertNotNull(config.getUserFieldConfigs()); assertEquals(UserFieldType.values().length, config.getUserFieldConfigs().size()); /* Verify unique types */ final Set<UserFieldType> userFields = new HashSet<UserFieldType>(); for (final UserStoreUserFieldConfig userFieldConfig : config.getUserFieldConfigs()) { userFields.add(userFieldConfig.getType()); } assertEquals(UserFieldType.values().length, userFields.size()); }
@Test public void testParseNull() throws IOException, JDOMException { final Element configEl = null; final UserStoreConfig config = UserStoreConfigParser.parse(configEl); assertNotNull(config); assertNotNull(config.getUserFieldConfigs()); }
@Test public void testParseMissingUserElement() throws IOException, JDOMException { final StringBuffer configXml = new StringBuffer(); configXml.append("<config>"); configXml.append("</config>"); final Element configEl = JDOMUtil.parseDocument(configXml.toString()).getRootElement(); try { UserStoreConfigParser.parse(configEl); fail("An exception should have been thrown."); } catch (Exception ex) { assertEquals(InvalidUserStoreConfigException.class.getName(), ex.getClass().getName()); } }
@Test public void testParseIllegalUserFieldAttributeValue_Required() throws IOException, JDOMException { final StringBuffer configXml = new StringBuffer(); configXml.append("<config>"); configXml.append(" <user-fields>"); configXml.append(" <prefix required=\"fisk\"/>"); configXml.append(" </user-fields>"); configXml.append("</config>"); final Element configEl = JDOMUtil.parseDocument(configXml.toString()).getRootElement(); try { UserStoreConfigParser.parse(configEl); fail("An exception should have been thrown."); } catch (Exception ex) { assertEquals(InvalidUserStoreConfigException.class.getName(), ex.getClass().getName()); } }
@Test public void testParseIllegalUserFieldAttributePresent_Name() throws IOException, JDOMException { final StringBuffer configXml = new StringBuffer(); configXml.append("<config>"); configXml.append(" <user-fields>"); configXml.append(" <prefix name=\"fisk\"/>"); configXml.append(" </user-fields>"); configXml.append("</config>"); final Element configEl = JDOMUtil.parseDocument(configXml.toString()).getRootElement(); try { UserStoreConfigParser.parse(configEl); fail("An exception should have been thrown."); } catch (Exception ex) { assertTrue(ex instanceof InvalidUserStoreConfigException); } }
@Test public void testParseIsoFlag() throws IOException, JDOMException { final StringBuffer configXml = new StringBuffer(); configXml.append("<config>"); configXml.append(" <user-fields>"); configXml.append(" <address iso='true' />"); configXml.append(" </user-fields>"); configXml.append("</config>"); final Element configEl = JDOMUtil.parseDocument(configXml.toString()).getRootElement(); final UserStoreConfig config = UserStoreConfigParser.parse(configEl); final Collection<UserStoreUserFieldConfig> allUserFieldConfigs = config.getUserFieldConfigs(); for (final UserStoreUserFieldConfig userFieldConfig : allUserFieldConfigs) { if (userFieldConfig.getType().getName().equals("address")) { assertEquals(true, userFieldConfig.useIso()); } } }