Refactor and fix TenantManage for repeated queries
[nemo.git] / nemo-impl / src / test / java / org / opendaylight / nemo / user / tenantmanager / RegisterUserTest.java
1 /*
2
3 * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
4
5 *
6
7 * This program and the accompanying materials are made available under the
8
9 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
10
11 * and is available at http://www.eclipse.org/legal/epl-v10.html
12
13 */
14 package org.opendaylight.nemo.user.tenantmanager;
15
16
17 import static org.mockito.Mockito.mock;
18 import static org.mockito.Mockito.times;
19 import static org.mockito.Mockito.verify;
20 import static org.mockito.Mockito.when;
21
22 import java.util.HashMap;
23
24 import junit.framework.TestCase;
25
26 import org.junit.Assert;
27 import org.junit.Before;
28 import org.junit.Test;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserRoleName;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.RegisterUserInput;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.user.rev151010.user.roles.UserRole;
34 /**
35  * Created by zhangmeng on 2015/11/20.
36  */
37 public class RegisterUserTest extends TestCase {
38     private RegisterUser registerUser;
39     private TenantManage tenantManage;
40     private RegisterUserInput input;
41     @Override
42     @Before
43     public void setUp() throws Exception {
44         tenantManage = mock(TenantManage.class);
45         registerUser = new RegisterUser(tenantManage);
46
47         input = mock(RegisterUserInput.class);
48     }
49
50     @Test
51     public void testRegisterUser() throws Exception {
52
53         //no data test
54         when(tenantManage.getUserRoles()).thenReturn(null);//return nothing
55         when(tenantManage.getUsers()).thenReturn(null);
56         registerUser.registerUser(input);
57
58         //data exists . and test other branch
59         when(tenantManage.getUserRoles()).thenReturn(new HashMap<UserRoleName, UserRole>());//return nothing
60         when(tenantManage.getUsers()).thenReturn(new HashMap<UserId, User>());
61         when(input.getUserRole()).thenReturn(mock(UserRoleName.class));
62         registerUser.registerUser(input);
63
64         verify(tenantManage,times(2)).getUserRoles();
65         verify(tenantManage,times(2)).getUsers();
66         Assert.assertNotNull(tenantManage);
67         Assert.assertNotNull(registerUser);
68     }
69 }