Update injector version and move shutdown logic to separate classes

This commit is contained in:
ljacqu
2016-08-20 21:46:24 +02:00
parent 14900d84fa
commit 289ce7740f
6 changed files with 216 additions and 122 deletions
@@ -80,7 +80,7 @@ public class PasswordSecurityTest {
return null;
}
}).when(pluginManager).callEvent(any(Event.class));
injector = new InjectorBuilder().addDefaultHandlers("!! impossible package !!").create();
injector = new InjectorBuilder().addDefaultHandlers("fr.xephi.authme").create();
injector.register(Settings.class, settings);
injector.register(DataSource.class, dataSource);
injector.register(PluginManager.class, pluginManager);
@@ -98,7 +98,7 @@ public class PasswordSecurityTest {
given(dataSource.getPassword(playerName)).willReturn(password);
given(method.comparePassword(clearTextPass, password, playerLowerCase)).willReturn(true);
initSettings(HashAlgorithm.BCRYPT, false);
PasswordSecurity security = injector.newInstance(PasswordSecurity.class);
PasswordSecurity security = newPasswordSecurity();
// when
boolean result = security.comparePassword(clearTextPass, playerName);
@@ -121,7 +121,7 @@ public class PasswordSecurityTest {
given(dataSource.getPassword(playerName)).willReturn(password);
given(method.comparePassword(clearTextPass, password, playerLowerCase)).willReturn(false);
initSettings(HashAlgorithm.CUSTOM, false);
PasswordSecurity security = injector.newInstance(PasswordSecurity.class);
PasswordSecurity security = newPasswordSecurity();
// when
boolean result = security.comparePassword(clearTextPass, playerName);
@@ -141,7 +141,7 @@ public class PasswordSecurityTest {
given(dataSource.getPassword(playerName)).willReturn(null);
initSettings(HashAlgorithm.MD5, false);
PasswordSecurity security = injector.newInstance(PasswordSecurity.class);
PasswordSecurity security = newPasswordSecurity();
// when
boolean result = security.comparePassword(clearTextPass, playerName);
@@ -169,7 +169,7 @@ public class PasswordSecurityTest {
given(method.comparePassword(clearTextPass, password, playerLowerCase)).willReturn(false);
given(method.computeHash(clearTextPass, playerLowerCase)).willReturn(newPassword);
initSettings(HashAlgorithm.MD5, true);
PasswordSecurity security = injector.newInstance(PasswordSecurity.class);
PasswordSecurity security = newPasswordSecurity();
// when
boolean result = security.comparePassword(clearTextPass, playerName);
@@ -194,7 +194,7 @@ public class PasswordSecurityTest {
given(dataSource.getPassword(playerName)).willReturn(password);
given(method.comparePassword(clearTextPass, password, playerName)).willReturn(false);
initSettings(HashAlgorithm.MD5, true);
PasswordSecurity security = injector.newInstance(PasswordSecurity.class);
PasswordSecurity security = newPasswordSecurity();
// when
boolean result = security.comparePassword(clearTextPass, playerName);
@@ -213,7 +213,7 @@ public class PasswordSecurityTest {
HashedPassword hashedPassword = new HashedPassword("$T$est#Hash", "__someSalt__");
given(method.computeHash(password, usernameLowerCase)).willReturn(hashedPassword);
initSettings(HashAlgorithm.JOOMLA, true);
PasswordSecurity security = injector.newInstance(PasswordSecurity.class);
PasswordSecurity security = newPasswordSecurity();
// when
HashedPassword result = security.computeHash(password, username);
@@ -236,7 +236,7 @@ public class PasswordSecurityTest {
given(method.computeHash(password, username)).willReturn(hashedPassword);
given(method.hasSeparateSalt()).willReturn(true);
initSettings(HashAlgorithm.XAUTH, false);
PasswordSecurity security = injector.newInstance(PasswordSecurity.class);
PasswordSecurity security = newPasswordSecurity();
// when
boolean result = security.comparePassword(password, hashedPassword, username);
@@ -252,7 +252,7 @@ public class PasswordSecurityTest {
public void shouldReloadSettings() {
// given
initSettings(HashAlgorithm.BCRYPT, false);
PasswordSecurity passwordSecurity = injector.newInstance(PasswordSecurity.class);
PasswordSecurity passwordSecurity = newPasswordSecurity();
given(settings.getProperty(SecuritySettings.PASSWORD_HASH)).willReturn(HashAlgorithm.MD5);
given(settings.getProperty(SecuritySettings.SUPPORT_OLD_PASSWORD_HASH)).willReturn(true);
@@ -266,6 +266,16 @@ public class PasswordSecurityTest {
equalTo((Object) Boolean.TRUE));
}
private PasswordSecurity newPasswordSecurity() {
// Use this method to make sure we have all dependents of PasswordSecurity already registered as mocks
PasswordSecurity passwordSecurity = injector.createIfHasDependencies(PasswordSecurity.class);
if (passwordSecurity == null) {
throw new IllegalStateException("Cannot create PasswordSecurity directly! "
+ "Did you forget to provide a dependency as mock?");
}
return passwordSecurity;
}
private void initSettings(HashAlgorithm algorithm, boolean supportOldPassword) {
given(settings.getProperty(SecuritySettings.PASSWORD_HASH)).willReturn(algorithm);
given(settings.getProperty(SecuritySettings.SUPPORT_OLD_PASSWORD_HASH)).willReturn(supportOldPassword);