60f7fc4a8a295ea8605dd530b04e5b2b8da1fc68
[nemo.git] / nemo-impl / src / test / java / org / opendaylight / nemo / user / tenantmanager / RegisterUserTest.java
1 /*
2  * Copyright (c) 2015 Huawei, 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 user.tenantmanager;
9
10 import junit.framework.TestCase;
11 import org.junit.Assert;
12 import org.junit.Before;
13 import org.junit.Test;
14
15 import java.util.HashMap;
16 import java.util.Map;
17
18 import org.opendaylight.nemo.user.tenantmanager.RegisterUser;
19 import org.opendaylight.nemo.user.tenantmanager.TenantManage;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserRoleName;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.RegisterUserInput;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.user.rev151010.user.roles.UserRole;
25 import static org.junit.Assert.*;
26 import static org.mockito.Mockito.*;
27 /**
28  * Created by zhangmeng on 2015/12/15.
29  */
30 public class RegisterUserTest extends TestCase {
31     private TenantManage tenantManage;
32     private RegisterUser registerUser;
33     @Before
34     public void setUp() throws Exception {
35         tenantManage = mock(TenantManage.class);
36
37         registerUser = new RegisterUser(tenantManage);
38     }
39
40     @Test
41     public void testRegisterUser() throws Exception {
42         RegisterUserInput input = mock(RegisterUserInput.class);
43         UserRoleName userRoleName = mock(UserRoleName.class);
44         UserRole userRole = mock(UserRole.class);
45         UserId userId = mock(UserId.class);
46         User user = mock(User.class);
47         Map<UserRoleName, UserRole> userRoles = new HashMap<UserRoleName, UserRole>();
48         Map<UserId, User> users = new HashMap<UserId, User>();
49
50         when(tenantManage.getUsers()).thenReturn(users);
51         when(tenantManage.getUserRoles()).thenReturn(userRoles);
52
53         //test if
54         Assert.assertTrue(userRoles.isEmpty());
55         Assert.assertTrue(registerUser.registerUser(input).equals("There are no roles be defined."));
56
57         //test else
58         userRoles.put(userRoleName, userRole);
59         when(input.getUserRole())
60                 .thenReturn(new UserRoleName("admin"))
61                 .thenReturn(userRoleName);
62         Assert.assertTrue(registerUser.registerUser(input).equals("The role is not defined in the data store."));
63         verify(input).getUserRole();
64         Assert.assertTrue(!userRoles.containsKey(new UserRoleName("admin")));
65         
66         users.put(userId,user);
67         when(input.getUserId())
68                 .thenReturn(userId)
69                 .thenReturn(new UserId("00001111-0000-0000-0000-000011112222"));
70
71         Assert.assertTrue(registerUser.registerUser(input).equals("The user has been registered."));
72
73         doNothing().when(tenantManage).addUser(any(RegisterUserInput.class));
74         Assert.assertTrue(registerUser.registerUser(input) == null);
75         verify(tenantManage).addUser(any(RegisterUserInput.class));
76
77
78
79
80     }
81 }