Issue #131 - ConfigurationStrategyName does not Properly Resolve Custom classes

Problem: The assignable check was reversed, always resulting in a false return value.
Solution: Add test to confirm failure and then swap check.  Unit tests pass.
This commit is contained in:
Scott 2015-09-09 23:30:53 -04:00
parent 6f7fe61780
commit 2eb132c0b4
2 changed files with 22 additions and 1 deletions

View File

@ -62,7 +62,7 @@ public enum ConfigurationStrategyName {
try {
final Class<?> clazz = Class.forName(value);
if (clazz.isAssignableFrom(ConfigurationStrategy.class)) {
if (ConfigurationStrategy.class.isAssignableFrom(clazz)) {
return (Class<? extends ConfigurationStrategy>) clazz;
}
} catch (final ClassNotFoundException e) {

View File

@ -20,6 +20,9 @@ package org.jasig.cas.client.configuration;
import org.junit.Test;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import static org.junit.Assert.*;
public final class ConfigurationStrategyNameTests {
@ -33,4 +36,22 @@ public final class ConfigurationStrategyNameTests {
assertEquals(LegacyConfigurationStrategyImpl.class, ConfigurationStrategyName.resolveToConfigurationStrategy(ConfigurationStrategyName.DEFAULT.name()));
assertEquals(LegacyConfigurationStrategyImpl.class, ConfigurationStrategyName.resolveToConfigurationStrategy("bleh!"));
}
@Test
public void resolveToClass() {
assertEquals(TestClass.class, ConfigurationStrategyName.resolveToConfigurationStrategy(TestClass.class.getName()));
}
private class TestClass extends BaseConfigurationStrategy {
@Override
protected String get(ConfigurationKey configurationKey) {
return null;
}
public void init(FilterConfig filterConfig, Class<? extends Filter> filterClazz) {
}
}
}