aboutsummaryrefslogtreecommitdiffstats
path: root/epsdk-app-onap/src/test/java/org
diff options
context:
space:
mode:
authorIttay Stern <ittay.stern@att.com>2019-08-25 13:02:27 +0300
committerIttay Stern <ittay.stern@att.com>2019-08-25 13:59:16 +0300
commit9c4a3a6d1ff8f6d91f32209bfdb59539bc20b743 (patch)
tree01da9e6134416c9979c17d854a053ae14ee1f9c2 /epsdk-app-onap/src/test/java/org
parent87f850a6f3012aed165190bb861dcd0db8249dc6 (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.java56
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
+}