#612 Check if plugin is permission system within method itself

- Iterate over all values within the method
- Bug fix: change method to use pluginName field, and not name
This commit is contained in:
ljacqu 2016-06-04 22:40:30 +02:00
parent 2a4bb483a3
commit 4fe26f08d4
3 changed files with 58 additions and 14 deletions

View File

@ -199,12 +199,9 @@ public class PermissionsManager {
*/
public void onPluginEnable(String pluginName) {
// Check if any known permissions system is enabling
for (PermissionsSystemType permissionsSystemType : PermissionsSystemType.values()) {
if (permissionsSystemType.isPermissionSystem(pluginName)) {
if (PermissionsSystemType.isPermissionSystem(pluginName)) {
ConsoleLogger.info(pluginName + " plugin enabled, dynamically updating permissions hooks!");
setup();
break;
}
}
}
@ -215,12 +212,9 @@ public class PermissionsManager {
*/
public void onPluginDisable(String pluginName) {
// Check if any known permission system is being disabled
for (PermissionsSystemType permissionsSystemType : PermissionsSystemType.values()) {
if (permissionsSystemType.isPermissionSystem(pluginName)) {
if (PermissionsSystemType.isPermissionSystem(pluginName)) {
ConsoleLogger.info(pluginName + " plugin disabled, updating hooks!");
setup();
break;
}
}
}

View File

@ -90,7 +90,12 @@ public enum PermissionsSystemType {
* @param name The name of the plugin to check.
* @return If the plugin is a valid permissions system.
*/
public boolean isPermissionSystem(String name) {
return name.equals(pluginName);
public static boolean isPermissionSystem(String name) {
for (PermissionsSystemType permissionsSystemType : values()) {
if (permissionsSystemType.pluginName.equals(name)) {
return true;
}
}
return false;
}
}

View File

@ -0,0 +1,45 @@
package fr.xephi.authme.permission;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.assertThat;
/**
* Test for {@link PermissionsSystemType}.
*/
public class PermissionsSystemTypeTest {
@Test
public void shouldHaveDefinedAndUniqueNames() {
// given / when / then
List<String> names = new ArrayList<>(PermissionsSystemType.values().length);
List<String> pluginNames = new ArrayList<>(PermissionsSystemType.values().length);
for (PermissionsSystemType system : PermissionsSystemType.values()) {
assertThat("Name for enum entry '" + system + "' is not null",
system.getName(), not(nullValue()));
assertThat("Plugin name for enum entry '" + system + "' is not null",
system.getPluginName(), not(nullValue()));
assertThat("Only one enum entry has name '" + system.getName() + "'",
names, not(hasItem(system.getName())));
assertThat("Only one enum entry has plugin name '" + system.getPluginName() + "'",
pluginNames, not(hasItem(system.getPluginName())));
names.add(system.getName());
pluginNames.add(system.getPluginName());
}
}
@Test
public void shouldRecognizePermissionSystemType() {
assertThat(PermissionsSystemType.isPermissionSystem("bogus"), equalTo(false));
assertThat(PermissionsSystemType.isPermissionSystem("PermissionsBukkit"), equalTo(true));
}
}