/* See LICENSE for licensing and NOTICE for copyright. */ package org.ldaptive.auth.ext; import org.testng.AssertJUnit; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; /** * Unit test for {@link EDirectoryAccountState}. * * @author Middleware Services */ public class EDirectoryAccountStateTest { /** * EDirectory test data. * * @return error messages */ @DataProvider(name = "errors") public Object[][] createTestParams() { return new Object[][] { new Object[] { "LDAP: error code 49 - NDS error: failed authentication (-669)", EDirectoryAccountState.Error.FAILED_AUTHENTICATION, }, new Object[] { "LDAP: error code 49 - NDS error: password expired (-223)", EDirectoryAccountState.Error.PASSWORD_EXPIRED, }, new Object[] { "LDAP: error code 49 - NDS error: bad password (-222)", EDirectoryAccountState.Error.BAD_PASSWORD, }, new Object[] { "LDAP: error code 49 - NDS error: log account expired (-220)", EDirectoryAccountState.Error.ACCOUNT_EXPIRED, }, new Object[] { "LDAP: error code 49 - NDS error: " + "maximum logins exceeded or Q stn not server (-217)", EDirectoryAccountState.Error.MAXIMUM_LOGINS_EXCEEDED, }, new Object[] { "LDAP: error code 49 - NDS error: bad login time or Q halted (-218)", EDirectoryAccountState.Error.LOGIN_TIME_LIMITED, }, new Object[] { "LDAP: error code 49 - NDS error: login lockout (-197)", EDirectoryAccountState.Error.LOGIN_LOCKOUT, }, }; } /** * Tests message parsing. * * @param message error message * @param err corresponding error enum * * @throws Exception On test failure. */ @Test(groups = {"auth-ext"}, dataProvider = "errors") public void parseMessage(final String message, final EDirectoryAccountState.Error err) throws Exception { AssertJUnit.assertEquals(err, EDirectoryAccountState.Error.parse(message)); } }