#472 Create recovery code/expiration columns and methods in data source
This commit is contained in:
@@ -126,6 +126,17 @@ public final class TestHelper {
|
||||
return logger;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set ConsoleLogger to use a new real logger.
|
||||
*
|
||||
* @return The real logger used by ConsoleLogger
|
||||
*/
|
||||
public static Logger setRealLogger() {
|
||||
Logger logger = Logger.getAnonymousLogger();
|
||||
ConsoleLogger.setLogger(logger);
|
||||
return logger;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that a class only has a hidden, zero-argument constructor, preventing the
|
||||
* instantiation of such classes (utility classes). Invokes the hidden constructor
|
||||
|
||||
@@ -382,4 +382,47 @@ public abstract class AbstractDataSourceIntegrationTest {
|
||||
assertThat(dataSource.getAllAuths(), empty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldSetRecoveryCode() {
|
||||
// given
|
||||
DataSource dataSource = getDataSource();
|
||||
String name = "Bobby";
|
||||
String code = "A123BC";
|
||||
|
||||
// when
|
||||
dataSource.setRecoveryCode(name, code, System.currentTimeMillis() + 100_000L);
|
||||
|
||||
// then
|
||||
assertThat(dataSource.getRecoveryCode(name), equalTo(code));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldRemoveRecoveryCode() {
|
||||
// given
|
||||
String name = "User";
|
||||
DataSource dataSource = getDataSource();
|
||||
dataSource.setRecoveryCode(name, "code", System.currentTimeMillis() + 20_000L);
|
||||
|
||||
// when
|
||||
dataSource.removeRecoveryCode(name);
|
||||
|
||||
// then
|
||||
assertThat(dataSource.getRecoveryCode(name), nullValue());
|
||||
assertThat(dataSource.getRecoveryCode("bobby"), nullValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldNotReturnRecoveryCodeIfExpired() {
|
||||
// given
|
||||
String name = "user";
|
||||
DataSource dataSource = getDataSource();
|
||||
dataSource.setRecoveryCode(name, "123456", System.currentTimeMillis() - 2_000L);
|
||||
|
||||
// when
|
||||
String code = dataSource.getRecoveryCode(name);
|
||||
|
||||
// then
|
||||
assertThat(code, nullValue());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public class MySqlIntegrationTest extends AbstractDataSourceIntegrationTest {
|
||||
});
|
||||
set(DatabaseSettings.MYSQL_DATABASE, "h2_test");
|
||||
set(DatabaseSettings.MYSQL_TABLE, "authme");
|
||||
TestHelper.setupLogger();
|
||||
TestHelper.setRealLogger();
|
||||
|
||||
Path sqlInitFile = TestHelper.getJarPath(TestHelper.PROJECT_ROOT + "datasource/sql-initialize.sql");
|
||||
sqlInitialize = new String(Files.readAllBytes(sqlInitFile));
|
||||
|
||||
@@ -56,7 +56,7 @@ public class SQLiteIntegrationTest extends AbstractDataSourceIntegrationTest {
|
||||
});
|
||||
set(DatabaseSettings.MYSQL_DATABASE, "sqlite-test");
|
||||
set(DatabaseSettings.MYSQL_TABLE, "authme");
|
||||
TestHelper.setupLogger();
|
||||
TestHelper.setRealLogger();
|
||||
|
||||
Path sqlInitFile = TestHelper.getJarPath(TestHelper.PROJECT_ROOT + "datasource/sql-initialize.sql");
|
||||
// Note ljacqu 20160221: It appears that we can only run one statement per Statement.execute() so we split
|
||||
|
||||
Reference in New Issue
Block a user