PasswordGenerator tests

- StringBuffer replaced with a StringBuilder
- tests added

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
This commit is contained in:
Laszlo Hornyak 2013-10-10 22:01:06 +02:00
parent b76e501d26
commit 47dd1c1e95
2 changed files with 40 additions and 1 deletions

View File

@ -79,7 +79,7 @@ public class PasswordGenerator {
}
public static String rot13(final String password) {
final StringBuffer newPassword = new StringBuffer("");
final StringBuilder newPassword = new StringBuilder(password.length());
for (int i = 0; i < password.length(); i++) {
char c = password.charAt(i);

View File

@ -0,0 +1,39 @@
package com.cloud.utils;
import org.junit.Assert;
import org.junit.Test;
public class PasswordGeneratorTest {
@Test
public void generateRandomPassword() {
// actual length is requested length + 3
Assert.assertTrue(PasswordGenerator.generateRandomPassword(0).length() == 3);
Assert.assertTrue(PasswordGenerator.generateRandomPassword(1).length() == 4);
String password = PasswordGenerator.generateRandomPassword(0);
// TODO: this might give more help to bruteforcing than desired
// the actual behavior is that the first character is a random lowercase
// char
Assert.assertTrue(Character.isLowerCase(password.charAt(0)));
// the second character is a random upper case char
Assert.assertTrue(Character.isUpperCase(password.charAt(1)));
// and the third is a digit
Assert.assertTrue(Character.isDigit(password.charAt(2)));
}
@Test
public void rot13() {
// only letters are handled, numbers are unchanged
Assert.assertEquals("1234", PasswordGenerator.rot13("1234"));
// letters are moved by +-13 characters
Assert.assertEquals("nop", PasswordGenerator.rot13("abc"));
// the transformation it is reversable
Assert.assertEquals("abc", PasswordGenerator.rot13("nop"));
// which means for any string
Assert.assertEquals("abcdefghijklmnooprstuvxyzuv1234?",
PasswordGenerator.rot13(PasswordGenerator
.rot13("abcdefghijklmnooprstuvxyzuv1234?")));
// same for capital letters
Assert.assertEquals("ABC", PasswordGenerator.rot13("NOP"));
Assert.assertEquals("NOP", PasswordGenerator.rot13("ABC"));
}
}