1 package club.wpia.gigi.passwords;
3 import static org.hamcrest.CoreMatchers.*;
4 import static org.junit.Assert.*;
8 import club.wpia.gigi.GigiApiException;
9 import club.wpia.gigi.passwords.DelegatingPasswordChecker;
10 import club.wpia.gigi.passwords.PasswordChecker;
12 public class TestDelegatingPasswordChecker {
15 public void testNoCheckers() {
16 DelegatingPasswordChecker checker = new DelegatingPasswordChecker(new PasswordChecker[0]);
18 assertNull(checker.checkPassword("", new String[0], ""));
22 public void testOneChecker() {
23 DelegatingPasswordChecker checker = new DelegatingPasswordChecker(new PasswordChecker[] {
24 new PasswordChecker() {
26 public GigiApiException checkPassword(String password, String[] nameParts, String email) {
27 return password.isEmpty() ?
28 new GigiApiException("empty password") :
34 assertNull(checker.checkPassword("a strong password", new String[0], ""));
36 GigiApiException exception = checker.checkPassword("", new String[0], "");
37 assertNotNull(exception);
38 assertEquals("empty password", exception.getMessage());
42 public void testTwoCheckers() {
43 DelegatingPasswordChecker checker = new DelegatingPasswordChecker(new PasswordChecker[] {
44 new PasswordChecker() {
46 public GigiApiException checkPassword(String password, String[] nameParts, String email) {
47 return password.equals(email) ?
48 new GigiApiException("password = email") :
52 new PasswordChecker() {
54 public GigiApiException checkPassword(String password, String[] nameParts, String email) {
55 return password.equals("12345") ?
56 new GigiApiException("12345 is a bad password") :
62 assertNull(checker.checkPassword("a strong password", new String[0], "email"));
64 GigiApiException exception1 = checker.checkPassword("email", new String[0], "email");
65 assertNotNull(exception1);
66 assertEquals("password = email", exception1.getMessage());
68 GigiApiException exception2 = checker.checkPassword("12345", new String[0], "email");
69 assertNotNull(exception2);
70 assertEquals("12345 is a bad password", exception2.getMessage());
72 GigiApiException exception3 = checker.checkPassword("12345", new String[0], "12345");
73 assertNotNull(exception3);
74 assertThat(exception3.getMessage(), containsString("password = email"));
75 assertThat(exception3.getMessage(), containsString("12345 is a bad password"));