Fix Eclipse compilation errors and warnings
[nemo.git] / nemo-impl / src / test / java / org / opendaylight / nemo / user / tenantmanager / TenantManageTest.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 import static org.mockito.Matchers.any;
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.LinkedList;
23 import java.util.List;
24
25 import junit.framework.TestCase;
26
27 import org.junit.Assert;
28 import org.junit.Before;
29 import org.junit.Test;
30 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
31 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
32 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
33 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.RegisterUserInput;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.user.rev151010.user.roles.UserRole;
38 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
39
40 import com.google.common.util.concurrent.CheckedFuture;
41 /**
42  * Created by zhangmeng on 2015/11/20.
43  */
44 public class TenantManageTest extends TestCase {
45     private TenantManage tenantManage;
46     private DataBroker dataBroker;
47     private List<UserRole> userRoleList;
48     private List<User> usersList ;
49     private User user;
50     @Before
51     public void setUp() throws Exception {
52         userRoleList = new LinkedList<UserRole>();
53         usersList = new LinkedList<User>();
54         user = mock(User.class);
55
56         dataBroker = mock(DataBroker.class);
57         tenantManage = new TenantManage(dataBroker);
58     }
59
60     @Test
61     public void testGetUserRoleList() throws Exception {
62         Assert.assertNotNull(userRoleList);
63         userRoleList = tenantManage.getUserRoleList();
64         Assert.assertNotEquals(new LinkedList<UserRole>(),userRoleList);
65     }
66
67     @Test
68     public void testGetUsersList() throws Exception {
69         Assert.assertNotNull(usersList);
70         usersList = tenantManage.getUsersList();
71         Assert.assertNotEquals(new LinkedList<User>(),usersList);
72     }
73
74     @Test
75     public void testGetUser() throws Exception {
76         user = tenantManage.getUser();
77         Assert.assertNotEquals(mock(User.class),user);
78     }
79
80     @Test
81     public void testFetchUserRoles() throws Exception {
82         //ListenableFuture<Optional<UserRoles>> userRolesFuture = mock(ListenableFuture.class);
83         CheckedFuture userRolesFuture = mock(CheckedFuture.class);
84         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
85 //      when(dataBroker.newReadOnlyTransaction().read(any(LogicalDatastoreType.class),
86 //      any(InstanceIdentifier.class))).thenReturn(userRolesFuture);
87         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
88         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(userRolesFuture);
89         tenantManage.fetchUserRoles();
90         verify(dataBroker).newReadOnlyTransaction();
91         verify(readOnlyTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
92         Assert.assertNotNull(tenantManage);
93     }
94
95     @Test
96     public void testFetchUsers() throws Exception {
97         CheckedFuture usersFuture = mock(CheckedFuture.class);
98         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
99
100         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
101         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(usersFuture);
102         tenantManage.fetchUsers();
103         verify(dataBroker).newReadOnlyTransaction();
104         verify(readOnlyTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
105         Assert.assertNotNull(tenantManage);
106     }
107
108     @Test
109     public void testFetchVNSpace() throws Exception {
110         CheckedFuture usersFuture = mock(CheckedFuture.class);
111         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
112
113         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
114         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(usersFuture);
115         tenantManage.fetchVNSpace(mock(UserId.class));
116         verify(dataBroker).newReadOnlyTransaction();
117         verify(readOnlyTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
118         Assert.assertNotNull(tenantManage);
119     }
120
121     @Test // As a parameter registerUserInput has no data , so the test case just test a small part
122     public void testAddUser() throws Exception {
123         RegisterUserInput registerUserInput = mock(RegisterUserInput.class);
124         WriteTransaction writeTransaction = mock(WriteTransaction.class);
125
126         when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
127         when(registerUserInput.getUserId()).thenReturn(null);
128         tenantManage.addUser(registerUserInput);
129
130         CheckedFuture f = mock(CheckedFuture.class);
131         when(registerUserInput.getUserId()).thenReturn(mock(UserId.class));
132         when(writeTransaction.submit()).thenReturn(f);
133         tenantManage.addUser(registerUserInput);
134
135         verify(dataBroker,times(2)).newWriteOnlyTransaction();
136         verify(registerUserInput,times(4)).getUserId();
137         Assert.assertNotNull(tenantManage);
138     }
139 }