Adding support for case option in localPart.

This will allow admin to set
accountSshUserName = ${mail.localPart.toUpperCase} or
accountSshUserName = ${mail.localPart.toLowerCase}
in gerrit.config under ldap.

Change-Id:I61f89ba0ed22325e678d276fefc95c72e431e450
This commit is contained in:
Bruce Zu
2011-08-01 16:26:54 +08:00
committed by Gustaf Lundh
parent f8d35d7312
commit 2135595f14
2 changed files with 228 additions and 16 deletions

View File

@@ -165,8 +165,210 @@ public class ParameterizedStringTest extends TestCase {
}
public void testUndefinedFunctionName() {
ParameterizedString p = new ParameterizedString("${a.anUndefinedMethod}");
ParameterizedString p =
new ParameterizedString(
"hi, ${userName.toUpperCase},your eamil address is '${email.toLowerCase.localPart}'.right?");
assertEquals(2, p.getParameterNames().size());
assertTrue(p.getParameterNames().contains("userName"));
assertTrue(p.getParameterNames().contains("email"));
final Map<String, String> a = new HashMap<String, String>();
a.put("userName", "firstName lastName");
a.put("email", "FIRSTNAME.LASTNAME@EXAMPLE.COM");
assertNotNull(p.bind(a));
assertEquals(2, p.bind(a).length);
assertEquals("FIRSTNAME LASTNAME", p.bind(a)[0]);
assertEquals("firstname.lastname", p.bind(a)[1]);
assertEquals("hi, FIRSTNAME LASTNAME,your eamil address is 'firstname.lastname'.right?", p.replace(a));
}
public void testReplaceToUpperCaseToLowerCase() {
final ParameterizedString p =
new ParameterizedString("${a.toUpperCase.toLowerCase}");
assertEquals(1, p.getParameterNames().size());
assertTrue(p.getParameterNames().contains("a.anUndefinedMethod"));
assertTrue(p.getParameterNames().contains("a"));
final Map<String, String> a = new HashMap<String, String>();
a.put("a", "FOO@EXAMPLE.COM");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("foo@example.com", p.bind(a)[0]);
assertEquals("foo@example.com", p.replace(a));
a.put("a", "foo@example.com");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("foo@example.com", p.bind(a)[0]);
assertEquals("foo@example.com", p.replace(a));
}
public void testReplaceToUpperCaseLocalName() {
final ParameterizedString p =
new ParameterizedString("${a.toUpperCase.localPart}");
assertEquals(1, p.getParameterNames().size());
assertTrue(p.getParameterNames().contains("a"));
final Map<String, String> a = new HashMap<String, String>();
a.put("a", "foo@example.com");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("FOO", p.bind(a)[0]);
assertEquals("FOO", p.replace(a));
a.put("a", "FOO@EXAMPLE.COM");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("FOO", p.bind(a)[0]);
assertEquals("FOO", p.replace(a));
}
public void testReplaceToUpperCaseAnUndefinedMethod() {
final ParameterizedString p =
new ParameterizedString("${a.toUpperCase.anUndefinedMethod}");
assertEquals(1, p.getParameterNames().size());
assertTrue(p.getParameterNames().contains("a"));
final Map<String, String> a = new HashMap<String, String>();
a.put("a", "foo@example.com");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("FOO@EXAMPLE.COM", p.bind(a)[0]);
assertEquals("FOO@EXAMPLE.COM", p.replace(a));
a.put("a", "FOO@EXAMPLE.COM");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("FOO@EXAMPLE.COM", p.bind(a)[0]);
assertEquals("FOO@EXAMPLE.COM", p.replace(a));
}
public void testReplaceLocalNameToUpperCase() {
final ParameterizedString p =
new ParameterizedString("${a.localPart.toUpperCase}");
assertEquals(1, p.getParameterNames().size());
assertTrue(p.getParameterNames().contains("a"));
final Map<String, String> a = new HashMap<String, String>();
a.put("a", "foo@example.com");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("FOO", p.bind(a)[0]);
assertEquals("FOO", p.replace(a));
a.put("a", "FOO@EXAMPLE.COM");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("FOO", p.bind(a)[0]);
assertEquals("FOO", p.replace(a));
}
public void testReplaceLocalNameToLowerCase() {
final ParameterizedString p =
new ParameterizedString("${a.localPart.toLowerCase}");
assertEquals(1, p.getParameterNames().size());
assertTrue(p.getParameterNames().contains("a"));
final Map<String, String> a = new HashMap<String, String>();
a.put("a", "FOO@EXAMPLE.COM");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("foo", p.bind(a)[0]);
assertEquals("foo", p.replace(a));
a.put("a", "foo@example.com");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("foo", p.bind(a)[0]);
assertEquals("foo", p.replace(a));
}
public void testReplaceLocalNameAnUndefinedMethod() {
final ParameterizedString p =
new ParameterizedString("${a.localPart.anUndefinedMethod}");
assertEquals(1, p.getParameterNames().size());
assertTrue(p.getParameterNames().contains("a"));
final Map<String, String> a = new HashMap<String, String>();
a.put("a", "FOO@EXAMPLE.COM");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("FOO", p.bind(a)[0]);
assertEquals("FOO", p.replace(a));
a.put("a", "foo@example.com");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("foo", p.bind(a)[0]);
assertEquals("foo", p.replace(a));
}
public void testReplaceToLowerCaseToUpperCase() {
final ParameterizedString p =
new ParameterizedString("${a.toLowerCase.toUpperCase}");
assertEquals(1, p.getParameterNames().size());
assertTrue(p.getParameterNames().contains("a"));
final Map<String, String> a = new HashMap<String, String>();
a.put("a", "FOO@EXAMPLE.COM");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("FOO@EXAMPLE.COM", p.bind(a)[0]);
assertEquals("FOO@EXAMPLE.COM", p.replace(a));
a.put("a", "foo@example.com");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("FOO@EXAMPLE.COM", p.bind(a)[0]);
assertEquals("FOO@EXAMPLE.COM", p.replace(a));
}
public void testReplaceToLowerCaseLocalName() {
final ParameterizedString p =
new ParameterizedString("${a.toLowerCase.localPart}");
assertEquals(1, p.getParameterNames().size());
assertTrue(p.getParameterNames().contains("a"));
final Map<String, String> a = new HashMap<String, String>();
a.put("a", "FOO@EXAMPLE.COM");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("foo", p.bind(a)[0]);
assertEquals("foo", p.replace(a));
a.put("a", "foo@example.com");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("foo", p.bind(a)[0]);
assertEquals("foo", p.replace(a));
}
public void testReplaceToLowerCaseAnUndefinedMethod() {
final ParameterizedString p =
new ParameterizedString("${a.toLowerCase.anUndefinedMethod}");
assertEquals(1, p.getParameterNames().size());
assertTrue(p.getParameterNames().contains("a"));
final Map<String, String> a = new HashMap<String, String>();
a.put("a", "foo@example.com");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("foo@example.com", p.bind(a)[0]);
assertEquals("foo@example.com", p.replace(a));
a.put("a", "FOO@EXAMPLE.COM");
assertNotNull(p.bind(a));
assertEquals(1, p.bind(a).length);
assertEquals("foo@example.com", p.bind(a)[0]);
assertEquals("foo@example.com", p.replace(a));
}
}