From 2eb132c0b47ff9d97131701bf3cfbe6ddca75eb3 Mon Sep 17 00:00:00 2001 From: Scott Date: Wed, 9 Sep 2015 23:30:53 -0400 Subject: [PATCH] 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. --- .../ConfigurationStrategyName.java | 2 +- .../ConfigurationStrategyNameTests.java | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/configuration/ConfigurationStrategyName.java b/cas-client-core/src/main/java/org/jasig/cas/client/configuration/ConfigurationStrategyName.java index 2d3146f..b298d99 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/configuration/ConfigurationStrategyName.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/configuration/ConfigurationStrategyName.java @@ -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) clazz; } } catch (final ClassNotFoundException e) { diff --git a/cas-client-core/src/test/java/org/jasig/cas/client/configuration/ConfigurationStrategyNameTests.java b/cas-client-core/src/test/java/org/jasig/cas/client/configuration/ConfigurationStrategyNameTests.java index 5c2da1e..449ace5 100644 --- a/cas-client-core/src/test/java/org/jasig/cas/client/configuration/ConfigurationStrategyNameTests.java +++ b/cas-client-core/src/test/java/org/jasig/cas/client/configuration/ConfigurationStrategyNameTests.java @@ -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 filterClazz) { + + } + } }