X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fadsal%2Fusermanager%2Fapi%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fusermanager%2FAuthorizationUserConfigTest.java;fp=opendaylight%2Fadsal%2Fusermanager%2Fapi%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fusermanager%2FAuthorizationUserConfigTest.java;h=8fc7f07df1db2fc3283057c1f55caed85799d604;hb=42c32160bfd41de57189bb246fec5ffb48ed8e9e;hp=0000000000000000000000000000000000000000;hpb=edf5bfcee83c750853253ccfd991ba7000f5f65b;p=controller.git diff --git a/opendaylight/adsal/usermanager/api/src/test/java/org/opendaylight/controller/usermanager/AuthorizationUserConfigTest.java b/opendaylight/adsal/usermanager/api/src/test/java/org/opendaylight/controller/usermanager/AuthorizationUserConfigTest.java new file mode 100644 index 0000000000..8fc7f07df1 --- /dev/null +++ b/opendaylight/adsal/usermanager/api/src/test/java/org/opendaylight/controller/usermanager/AuthorizationUserConfigTest.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.usermanager; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; +import org.opendaylight.controller.sal.authorization.AuthResultEnum; +import org.opendaylight.controller.sal.authorization.UserLevel; +/* + * This test case includes tests for UserConfig and the extending class AuthorizationConfig + */ +public class AuthorizationUserConfigTest { + + @Test + public void authorizationConfigTest() { + AuthorizationConfig authConfig; + List roles = new ArrayList(); + + // test isValid + roles.add(UserLevel.SYSTEMADMIN.toString()); + authConfig = new AuthorizationConfig(null, roles); + assertFalse(authConfig.validate().isSuccess()); + authConfig = new AuthorizationConfig("admin", new ArrayList()); + assertFalse(authConfig.validate().isSuccess()); + authConfig = new AuthorizationConfig("admin", roles); + assertTrue(authConfig.validate().isSuccess()); + } + + @Test + public void userConfigTest() { + UserConfig userConfig; + List roles = new ArrayList(); + + roles.add(UserLevel.SYSTEMADMIN.toString()); + userConfig = new UserConfig(null, "cisco", roles); + assertFalse(userConfig.validate().isSuccess()); + + roles.clear(); + roles.add("cisco"); + userConfig = new UserConfig("uname", "", roles); + assertFalse(userConfig.validate().isSuccess()); + + roles.clear(); + roles.add(UserLevel.NETWORKOPERATOR.toString()); + userConfig = new UserConfig("uname", "ciscocisco", roles); + assertTrue(userConfig.validate().isSuccess()); + + // currentPassword mismatch + assertFalse(userConfig.update("Cisco", "cisco123", roles).isSuccess()); + + // Role change only + roles.clear(); + roles.add(UserLevel.NETWORKADMIN.toString()); + assertTrue(userConfig.update("ciscocisco", null, roles).isSuccess()); + + // Role change and same new password + roles.clear(); + roles.add(UserLevel.NETWORKOPERATOR.toString()); + assertTrue(userConfig.update("ciscocisco", "ciscocisco", roles) + .isSuccess()); + + // New Password = null, No change in password + assertTrue(userConfig.authenticate("ciscocisco").getStatus().equals(AuthResultEnum.AUTH_ACCEPT_LOC)); + + // Password changed successfully, no change in user role + assertTrue(userConfig.update("ciscocisco", "cisco123", roles) + .isSuccess()); + assertTrue(userConfig.authenticate("cisco123").getStatus().equals(AuthResultEnum.AUTH_ACCEPT_LOC)); + assertTrue(userConfig.getRoles().get(0).equals( + UserLevel.NETWORKOPERATOR.toString())); + + // Password not changed, role changed successfully + roles.clear(); + roles.add(UserLevel.SYSTEMADMIN.toString()); + assertTrue(userConfig.update("cisco123", "cisco123", roles) + .isSuccess()); + assertTrue(userConfig.authenticate("cisco123").getStatus().equals(AuthResultEnum.AUTH_ACCEPT_LOC)); + assertTrue(userConfig.getRoles().get(0) + .equals(UserLevel.SYSTEMADMIN.toString())); + + // Password and role changed successfully + assertTrue(userConfig.update("cisco123", "ciscocisco", roles) + .isSuccess()); + assertTrue(userConfig.authenticate("ciscocisco").getStatus().equals(AuthResultEnum.AUTH_ACCEPT_LOC)); + assertTrue(userConfig.getRoles().get(0) + .equals(UserLevel.SYSTEMADMIN.toString())); + + String username = userConfig.getUser(); + assertTrue(username.equals("uname")); + + // test authenticate + AuthResponse authresp = userConfig.authenticate("ciscocisco"); + assertTrue(authresp.getStatus().equals(AuthResultEnum.AUTH_ACCEPT_LOC)); + authresp = userConfig.authenticate("wrongPassword"); + assertTrue(authresp.getStatus().equals(AuthResultEnum.AUTH_REJECT_LOC)); + } + + @Test + public void userConfigPasswordTest() { + + String regex = UserConfig.PASSWORD_REGEX; + String password = null; + + // Good password + password = "aBc@eF#h9"; + assertTrue(password.matches(regex)); + password = "^aBc@eF#h9$88ad*o&"; + assertTrue(password.matches(regex)); + password = "_^aBc@\":eF#h;9$\\8|8ad*o&-(){}/,.>