Merge "- Added the username/password criteria in usermanager - Relaxed the criteria...
[controller.git] / opendaylight / usermanager / src / test / java / org / opendaylight / controller / usermanager / internal / AuthorizationUserConfigTest.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.controller.usermanager.internal;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertTrue;
13
14 import org.junit.Test;
15 import org.opendaylight.controller.sal.authorization.AuthResultEnum;
16 import org.opendaylight.controller.sal.authorization.UserLevel;
17 import org.opendaylight.controller.usermanager.AuthResponse;
18
19 /*
20  * This test case includes tests for UserConfig and the extending class AuthorizationConfig
21  */
22 public class AuthorizationUserConfigTest {
23
24     @Test
25     public void AuthorizationConfigTest() {
26         AuthorizationConfig authConfig;
27
28         // test isValid
29         authConfig = new AuthorizationConfig(null,
30                 UserLevel.SYSTEMADMIN.toString());
31         assertFalse(authConfig.validate().isSuccess());
32         authConfig = new AuthorizationConfig("admin", "");
33         assertFalse(authConfig.validate().isSuccess());
34         authConfig = new AuthorizationConfig("admin",
35                 UserLevel.SYSTEMADMIN.toString());
36         assertTrue(authConfig.validate().isSuccess());
37     }
38
39     @Test
40     public void UserConfigTest() {
41         UserConfig userConfig;
42
43         userConfig = new UserConfig(null, "cisco",
44                 UserLevel.NETWORKOPERATOR.toString());
45         assertFalse(userConfig.validate().isSuccess());
46
47         userConfig = new UserConfig("uname", "", "cisco");
48         assertFalse(userConfig.validate().isSuccess());
49
50         userConfig = new UserConfig("uname", "ciscocisco",
51                 UserLevel.NETWORKOPERATOR.toString());
52         assertTrue(userConfig.validate().isSuccess());
53
54         /* currentPassword mismatch */
55         assertFalse(userConfig.update("Cisco", "cisco123",
56                 UserLevel.NETWORKOPERATOR.toString()));
57
58         assertTrue(userConfig.update("ciscocisco", null,
59                 UserLevel.NETWORKOPERATOR.toString()));
60         /* New Password = null, No change in password */
61         assertTrue(userConfig.getPassword().equals("ciscocisco"));
62
63         /* Password changed successfully, no change in user role */
64         assertTrue(userConfig.update("ciscocisco", "cisco123",
65                 UserLevel.NETWORKOPERATOR.toString()));
66         assertTrue(userConfig.getPassword().equals("cisco123"));
67         assertTrue(userConfig.getRole().equals(
68                 UserLevel.NETWORKOPERATOR.toString()));
69
70         /* Password not changed, role changed successfully */
71         assertTrue(userConfig.update("cisco123", "cisco123",
72                 UserLevel.SYSTEMADMIN.toString()));
73         assertTrue(userConfig.getPassword().equals("cisco123"));
74         assertTrue(userConfig.getRole()
75                 .equals(UserLevel.SYSTEMADMIN.toString()));
76
77         /* Password and role changed successfully */
78         assertTrue(userConfig.update("cisco123", "ciscocisco",
79                 UserLevel.SYSTEMADMIN.toString()));
80         assertTrue(userConfig.getPassword().equals("ciscocisco"));
81         assertTrue(userConfig.getRole()
82                 .equals(UserLevel.SYSTEMADMIN.toString()));
83
84         String username = userConfig.getUser();
85         assertTrue(username.equals("uname"));
86
87         // test authenticate
88         AuthResponse authresp = userConfig.authenticate("ciscocisco");
89         assertTrue(authresp.getStatus().equals(AuthResultEnum.AUTH_ACCEPT_LOC));
90         authresp = userConfig.authenticate("wrongPassword");
91         assertTrue(authresp.getStatus().equals(AuthResultEnum.AUTH_REJECT_LOC));
92
93         // test equals()
94         userConfig = new UserConfig("uname", "ciscocisco",
95                 UserLevel.NETWORKOPERATOR.toString());
96         assertEquals(userConfig, userConfig);
97         UserConfig userConfig2 = new UserConfig("uname", "ciscocisco",
98                 UserLevel.NETWORKOPERATOR.toString());
99         assertEquals(userConfig, userConfig2);
100     }
101 }