Checkstyle enforcer
[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 java.util.ArrayList;
15 import java.util.List;
16
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;
21
22 /*
23  * This test case includes tests for UserConfig and the extending class AuthorizationConfig
24  */
25 public class AuthorizationUserConfigTest {
26
27     @Test
28     public void AuthorizationConfigTest() {
29         AuthorizationConfig authConfig;
30         List<String> roles = new ArrayList<String>();
31
32         // test isValid
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());
40     }
41
42     @Test
43     public void UserConfigTest() {
44         UserConfig userConfig;
45         List<String> roles = new ArrayList<String>();
46
47         roles.add(UserLevel.SYSTEMADMIN.toString());
48         userConfig = new UserConfig(null, "cisco", roles);
49         assertFalse(userConfig.validate().isSuccess());
50
51         roles.clear();
52         roles.add("cisco");
53         userConfig = new UserConfig("uname", "", roles);
54         assertFalse(userConfig.validate().isSuccess());
55
56         roles.clear();
57         roles.add(UserLevel.NETWORKOPERATOR.toString());
58         userConfig = new UserConfig("uname", "ciscocisco", roles);
59         assertTrue(userConfig.validate().isSuccess());
60
61         // currentPassword mismatch
62         assertFalse(userConfig.update("Cisco", "cisco123", roles).isSuccess());
63
64         // Role change only
65         roles.clear();
66         roles.add(UserLevel.NETWORKADMIN.toString());
67         assertTrue(userConfig.update("ciscocisco", null, roles).isSuccess());
68
69         // Role change and same new password
70         roles.clear();
71         roles.add(UserLevel.NETWORKOPERATOR.toString());
72         assertTrue(userConfig.update("ciscocisco", "ciscocisco", roles)
73                 .isSuccess());
74
75         // New Password = null, No change in password
76         assertTrue(userConfig.getPassword().equals("ciscocisco"));
77
78         // Password changed successfully, no change in user role
79         assertTrue(userConfig.update("ciscocisco", "cisco123", roles)
80                 .isSuccess());
81         assertTrue(userConfig.getPassword().equals("cisco123"));
82         assertTrue(userConfig.getRoles().get(0).equals(
83                 UserLevel.NETWORKOPERATOR.toString()));
84
85         // Password not changed, role changed successfully
86         roles.clear();
87         roles.add(UserLevel.SYSTEMADMIN.toString());
88         assertTrue(userConfig.update("cisco123", "cisco123", roles)
89                 .isSuccess());
90         assertTrue(userConfig.getPassword().equals("cisco123"));
91         assertTrue(userConfig.getRoles().get(0)
92                 .equals(UserLevel.SYSTEMADMIN.toString()));
93
94         // Password and role changed successfully
95         assertTrue(userConfig.update("cisco123", "ciscocisco", roles)
96                 .isSuccess());
97         assertTrue(userConfig.getPassword().equals("ciscocisco"));
98         assertTrue(userConfig.getRoles().get(0)
99                 .equals(UserLevel.SYSTEMADMIN.toString()));
100
101         String username = userConfig.getUser();
102         assertTrue(username.equals("uname"));
103
104         // test authenticate
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));
109
110         // test equals()
111         roles.clear();
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);
117     }
118 }