2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.usermanager.internal;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertTrue;
14 import java.util.ArrayList;
15 import java.util.List;
17 import org.junit.Test;
18 import org.opendaylight.controller.sal.authorization.AuthResultEnum;
19 import org.opendaylight.controller.sal.authorization.UserLevel;
20 import org.opendaylight.controller.usermanager.AuthResponse;
23 * This test case includes tests for UserConfig and the extending class AuthorizationConfig
25 public class AuthorizationUserConfigTest {
28 public void AuthorizationConfigTest() {
29 AuthorizationConfig authConfig;
30 List<String> roles = new ArrayList<String>();
33 roles.add(UserLevel.SYSTEMADMIN.toString());
34 authConfig = new AuthorizationConfig(null, roles);
35 assertFalse(authConfig.validate().isSuccess());
36 authConfig = new AuthorizationConfig("admin", new ArrayList<String>());
37 assertFalse(authConfig.validate().isSuccess());
38 authConfig = new AuthorizationConfig("admin", roles);
39 assertTrue(authConfig.validate().isSuccess());
43 public void UserConfigTest() {
44 UserConfig userConfig;
45 List<String> roles = new ArrayList<String>();
47 roles.add(UserLevel.SYSTEMADMIN.toString());
48 userConfig = new UserConfig(null, "cisco", roles);
49 assertFalse(userConfig.validate().isSuccess());
53 userConfig = new UserConfig("uname", "", roles);
54 assertFalse(userConfig.validate().isSuccess());
57 roles.add(UserLevel.NETWORKOPERATOR.toString());
58 userConfig = new UserConfig("uname", "ciscocisco", roles);
59 assertTrue(userConfig.validate().isSuccess());
61 // currentPassword mismatch
62 assertFalse(userConfig.update("Cisco", "cisco123", roles).isSuccess());
66 roles.add(UserLevel.NETWORKADMIN.toString());
67 assertTrue(userConfig.update("ciscocisco", null, roles).isSuccess());
69 // Role change and same new password
71 roles.add(UserLevel.NETWORKOPERATOR.toString());
72 assertTrue(userConfig.update("ciscocisco", "ciscocisco", roles)
75 // New Password = null, No change in password
76 assertTrue(userConfig.getPassword().equals("ciscocisco"));
78 // Password changed successfully, no change in user role
79 assertTrue(userConfig.update("ciscocisco", "cisco123", roles)
81 assertTrue(userConfig.getPassword().equals("cisco123"));
82 assertTrue(userConfig.getRoles().get(0).equals(
83 UserLevel.NETWORKOPERATOR.toString()));
85 // Password not changed, role changed successfully
87 roles.add(UserLevel.SYSTEMADMIN.toString());
88 assertTrue(userConfig.update("cisco123", "cisco123", roles)
90 assertTrue(userConfig.getPassword().equals("cisco123"));
91 assertTrue(userConfig.getRoles().get(0)
92 .equals(UserLevel.SYSTEMADMIN.toString()));
94 // Password and role changed successfully
95 assertTrue(userConfig.update("cisco123", "ciscocisco", roles)
97 assertTrue(userConfig.getPassword().equals("ciscocisco"));
98 assertTrue(userConfig.getRoles().get(0)
99 .equals(UserLevel.SYSTEMADMIN.toString()));
101 String username = userConfig.getUser();
102 assertTrue(username.equals("uname"));
105 AuthResponse authresp = userConfig.authenticate("ciscocisco");
106 assertTrue(authresp.getStatus().equals(AuthResultEnum.AUTH_ACCEPT_LOC));
107 authresp = userConfig.authenticate("wrongPassword");
108 assertTrue(authresp.getStatus().equals(AuthResultEnum.AUTH_REJECT_LOC));
112 roles.add(UserLevel.NETWORKOPERATOR.toString());
113 userConfig = new UserConfig("uname", "ciscocisco", roles);
114 assertEquals(userConfig, userConfig);
115 UserConfig userConfig2 = new UserConfig("uname", "ciscocisco", roles);
116 assertEquals(userConfig, userConfig2);