### Question:
UserPasswordEqualityMatchingRule extends AbstractPasswordEqualityMatchingRuleImpl { @Override protected ConditionResult valuesMatch(ByteSequence attributeValue, ByteSequence assertionValue) { String[] userPWComponents; try { userPWComponents = UserPasswordSyntax.decodeUserPassword(attributeValue.toString()); } catch (Exception e) { logger.traceException(e); return ConditionResult.FALSE; } PasswordStorageScheme<?> storageScheme = getPasswordStorageScheme(userPWComponents[0]); if (storageScheme == null) { return ConditionResult.FALSE; } return ConditionResult.valueOf( storageScheme.passwordMatches(assertionValue, ByteString.valueOfUtf8(userPWComponents[1]))); }    }### Answer:
@Test(dataProvider= "valuesMatch") public void testValuesMatch(String value1, String value2, Boolean result) throws Exception { MatchingRule rule = getRule(); ByteString normalizedValue1 = rule.normalizeAttributeValue(ByteString.valueOfUtf8(value1)); Assertion assertion = rule.getAssertion(ByteString.valueOfUtf8(value2)); ConditionResult liveResult = assertion.matches(normalizedValue1); assertEquals(liveResult, ConditionResult.valueOf(result)); }