diff options
author | Ittay Stern <ittay.stern@att.com> | 2019-08-25 13:02:27 +0300 |
---|---|---|
committer | Ittay Stern <ittay.stern@att.com> | 2019-08-25 13:59:16 +0300 |
commit | 9c4a3a6d1ff8f6d91f32209bfdb59539bc20b743 (patch) | |
tree | 01da9e6134416c9979c17d854a053ae14ee1f9c2 /epsdk-app-onap/src/test/java/org | |
parent | 87f850a6f3012aed165190bb861dcd0db8249dc6 (diff) |
Allow plugging-in any provided LoginStrategy
Support dynamic loading of provided implementations of PORTAL SDK's
`org.onap.portalsdk.core.auth.LoginStrategy` interface.
VID will load the class defined by `login.strategy.classname`
configuration parameter. Default will keep current ONAP's dev login.
Change-Id: I956a1f3376455211398769f3193703129b779871
Issue-ID: VID-594
Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'epsdk-app-onap/src/test/java/org')
-rw-r--r-- | epsdk-app-onap/src/test/java/org/onap/portalapp/conf/ExternalAppConfigTest.java | 56 |
1 files changed, 44 insertions, 12 deletions
diff --git a/epsdk-app-onap/src/test/java/org/onap/portalapp/conf/ExternalAppConfigTest.java b/epsdk-app-onap/src/test/java/org/onap/portalapp/conf/ExternalAppConfigTest.java index 1bdf46325..f06526860 100644 --- a/epsdk-app-onap/src/test/java/org/onap/portalapp/conf/ExternalAppConfigTest.java +++ b/epsdk-app-onap/src/test/java/org/onap/portalapp/conf/ExternalAppConfigTest.java @@ -37,18 +37,23 @@ */ package org.onap.portalapp.conf; +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.junit.Assert; import org.junit.Test; +import org.onap.portalapp.login.LoginStrategyImpl; import org.onap.portalapp.scheduler.RegistryAdapter; import org.onap.portalsdk.core.auth.LoginStrategy; +import org.onap.portalsdk.core.onboarding.exception.PortalAPIException; import org.onap.portalsdk.core.service.DataAccessService; -import org.springframework.jdbc.datasource.init.DataSourceInitializer; -import org.springframework.jdbc.datasource.init.DatabasePopulator; -import org.springframework.scheduling.quartz.SchedulerFactoryBean; +import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ViewResolver; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; public class ExternalAppConfigTest { @@ -112,12 +117,39 @@ public class ExternalAppConfigTest { } @Test - public void testLoginStrategy() throws Exception { - ExternalAppConfig testSubject; - LoginStrategy result; + public void loginStrategy_givenEmptyString_yieldDefault() throws Exception { + assertThat(new ExternalAppConfig().loginStrategy(""), + is(instanceOf(LoginStrategyImpl.class))); + } - // default test - testSubject = createTestSubject(); - result = testSubject.loginStrategy(); + @Test + public void loginStrategy_givenNullString_yieldDefault() throws Exception { + assertThat(new ExternalAppConfig().loginStrategy(null), + is(instanceOf(LoginStrategyImpl.class))); + } + + public static class DummyLoginStrategy extends LoginStrategy { + @Override + public ModelAndView doLogin(HttpServletRequest request, HttpServletResponse response) { + return null; + } + + @Override + public String getUserId(HttpServletRequest request) { + return null; + } + } + + @Test + public void loginStrategy_givenClassname_yieldClassInstance() throws Exception { + assertThat( + new ExternalAppConfig().loginStrategy("org.onap.portalapp.conf.ExternalAppConfigTest$DummyLoginStrategy"), + is(instanceOf(DummyLoginStrategy.class))); + } + + @Test(expected = ClassNotFoundException.class) + public void loginStrategy_givenMissingClassname_throwsException() throws Exception { + new ExternalAppConfig().loginStrategy("no.real.classname"); + Assert.fail("should throw"); } -}
\ No newline at end of file +} |