Modified some test files because of changed source files
[nemo.git] / nemo-impl / src / test / java / org / opendaylight / nemo / user / UserManagerTest.java
1 /*\r
2  * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.nemo.user;\r
9 \r
10 import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
11 import org.opendaylight.nemo.intent.IntentResolutionException;\r
12 import org.opendaylight.nemo.intent.IntentResolver;\r
13 import org.opendaylight.nemo.intent.computation.VNMappingException;\r
14 import org.opendaylight.nemo.user.advancedquery.AdvancedQuery;\r
15 import org.opendaylight.nemo.user.tenantmanager.AAA;\r
16 import org.opendaylight.nemo.user.tenantmanager.RegisterUser;\r
17 import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
18 import org.opendaylight.nemo.user.transactionmanager.TransactionBegin;\r
19 import org.opendaylight.nemo.user.transactionmanager.TransactionEnd;\r
20 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.LanguageIntent;\r
21 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;\r
22 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.ParseException;\r
23 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.SimpleCharStream;\r
24 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.NEMOparserTokenManager;\r
25 import org.opendaylight.nemo.user.vnspacemanager.structurestyle.deleteintent.DeleteIntent;\r
26 import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateIntent;\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.*;\r
28 import org.opendaylight.yangtools.yang.common.RpcResult;\r
29 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;\r
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.advanced.nemo.query.input.QueryCondition;\r
31 import java.util.concurrent.Future;\r
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
35 import static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.CommonRpcResult.ResultCode.Error;\r
36 import static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.CommonRpcResult.ResultCode.Ok;\r
37 import org.junit.Assert;\r
38 import org.junit.Before;\r
39 import org.junit.Test;\r
40 import java.util.List;\r
41 import java.util.*;\r
42 import java.util.Map;\r
43 import java.lang.reflect.Field;\r
44 import java.lang.reflect.Method;\r
45 import com.google.common.base.Function;\r
46 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOParse.NEMOparser;\r
47 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
48 import com.google.common.base.Optional;\r
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.user.rev151010.UserRoles;\r
50 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
51 import com.google.common.util.concurrent.CheckedFuture;\r
52 import com.google.common.util.concurrent.FutureCallback;\r
53 import com.google.common.util.concurrent.Futures;\r
54 import com.google.common.util.concurrent.ListenableFuture;\r
55 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
56 import static org.mockito.Mockito.*;\r
57 public class UserManagerTest{\r
58         private DataBroker dataBroker;\r
59     private LanguageIntent languageIntent;\r
60     private TenantManage tenantManage;\r
61         private IntentResolver intentResolver;\r
62         UserManager usermanager1;\r
63         @org.junit.Before\r
64         public  void setUp()throws Exception{\r
65         dataBroker=mock(DataBroker.class);\r
66     intentResolver=mock(IntentResolver.class);\r
67         tenantManage=mock(TenantManage.class);\r
68         \r
69     Class<NEMOparser> class1 = NEMOparser.class;\r
70    Field field = class1.getDeclaredField("jj_initialized_once");\r
71    field.setAccessible(true);\r
72    field.set(usermanager1,false);\r
73    \r
74    Class<SimpleCharStream> class2=SimpleCharStream.class;\r
75    Field field1=class2.getDeclaredField("inputStream");\r
76    field1.setAccessible(true);\r
77    field1.set(usermanager1,null);\r
78    \r
79    Class<NEMOparserTokenManager> class3=NEMOparserTokenManager.class;\r
80    Field field2=class3.getDeclaredField("input_stream");\r
81    field2.setAccessible(true);\r
82    field2.set(usermanager1,null);\r
83    usermanager1=new UserManager(dataBroker,intentResolver);   \r
84         }\r
85 \r
86         @org.junit.Test \r
87         public void advancedNemoQueryTest()throws Exception{\r
88                 \r
89                 AdvancedNemoQueryInput input =mock(AdvancedNemoQueryInput.class);\r
90         Map<UserId, User> result=new HashMap<UserId, User>();\r
91         Users users = mock(Users.class);\r
92         User user = mock(User.class);\r
93         UserId userId = mock(UserId.class);\r
94                 UserId userId1 = mock(UserId.class);\r
95             result.put(userId,user);\r
96         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
97         CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
98         Optional<Users> usersOpt = Optional.of(users);\r
99         List<User> userList = new ArrayList<User>();\r
100                 \r
101                 \r
102                 userList.add(user);\r
103                 \r
104                 when(input.getUserId()).thenReturn(userId1);\r
105         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
106         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
107         when(checkedFuture.get()).thenReturn(usersOpt);\r
108         when(users.getUser()).thenReturn(userList);\r
109         when(user.getUserId()).thenReturn(userId);\r
110                 AdvancedNemoQueryOutputBuilder outputBuilder = new AdvancedNemoQueryOutputBuilder();\r
111                 outputBuilder.setResultCode(Error).setMessage("The user is not exist.");\r
112         Assert.assertNotNull(usermanager1.advancedNemoQuery(input)); \r
113         } \r
114                 \r
115                 \r
116         @Test \r
117         public void beginTransactionTest()throws Exception{\r
118         IntentResolver intentResolver1=mock(IntentResolver.class);\r
119         BeginTransactionInput input=mock(BeginTransactionInput.class);\r
120             BeginTransactionOutputBuilder outputBuilder = new BeginTransactionOutputBuilder();\r
121              Map<UserId, User> result;\r
122         Users users = mock(Users.class);\r
123         User user = mock(User.class);\r
124         UserId userId = mock(UserId.class);\r
125                 UserId userId1 = mock(UserId.class);\r
126         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
127         CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
128         Optional<Users> usersOpt = Optional.of(users);\r
129         List<User> userList = new ArrayList<User>();\r
130                 \r
131                 \r
132                 userList.add(user);\r
133         \r
134             when(input.getUserId()).thenReturn(userId1);\r
135         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
136         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
137         when(checkedFuture.get()).thenReturn(usersOpt);\r
138         when(users.getUser()).thenReturn(userList);\r
139         when(user.getUserId()).thenReturn(userId);\r
140         Assert.assertNotNull(usermanager1.beginTransaction(input)); \r
141         }\r
142         @Test\r
143    public void  endTransactionTest() throws Exception{\r
144            usermanager1.transaction=false;\r
145            EndTransactionInput input=mock(EndTransactionInput.class);\r
146            Assert.assertNotNull(usermanager1.endTransaction(input)); \r
147            \r
148            \r
149            usermanager1.transaction=true;\r
150              Map<UserId, User> result;\r
151         Users users = mock(Users.class);\r
152         User user = mock(User.class);\r
153         UserId userId = mock(UserId.class);\r
154                 UserId userId1 = mock(UserId.class);\r
155         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
156         CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
157         Optional<Users> usersOpt = Optional.of(users);\r
158         List<User> userList = new ArrayList<User>();\r
159                 \r
160                 \r
161                 userList.add(user);\r
162         \r
163             when(input.getUserId()).thenReturn(userId1);\r
164         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
165         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
166         when(checkedFuture.get()).thenReturn(usersOpt);\r
167         when(users.getUser()).thenReturn(userList);\r
168         when(user.getUserId()).thenReturn(userId);\r
169            usermanager1.informresolver=false;\r
170            Assert.assertNotNull(usermanager1.endTransaction(input));   \r
171    }\r
172    @Test\r
173    public void languageStyleNemoRequestTest() throws Exception{\r
174         LanguageStyleNemoRequestInput input=mock(LanguageStyleNemoRequestInput.class);\r
175      Map<UserId, User> result;\r
176         Users users = mock(Users.class);\r
177         User user = mock(User.class);\r
178         UserId userId = mock(UserId.class);\r
179                 UserId userId1 = mock(UserId.class);\r
180         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
181         CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
182         Optional<Users> usersOpt = Optional.of(users);\r
183         List<User> userList = new ArrayList<User>();\r
184                 \r
185                 \r
186                 userList.add(user);\r
187         \r
188             when(input.getUserId()).thenReturn(userId1);\r
189         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
190         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
191         when(checkedFuture.get()).thenReturn(usersOpt);\r
192         when(users.getUser()).thenReturn(userList);\r
193         when(user.getUserId()).thenReturn(userId);\r
194                 Assert.assertNotNull(usermanager1.languageStyleNemoRequest(input));  \r
195    }\r
196    @Test \r
197    public void registerUserTest() throws Exception{\r
198          RegisterUserInput input=mock(RegisterUserInput.class); \r
199            Map<UserId, User> result=new HashMap<UserId, User>();\r
200         Users users = mock(Users.class);\r
201                 UserRoles userRoles = mock(UserRoles.class);\r
202         User user = mock(User.class);\r
203         UserId userId = mock(UserId.class);\r
204                 \r
205             result.put(userId,user);\r
206         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
207         CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
208         Optional<Users> usersOpt = Optional.of(users);\r
209         List<User> userList = new ArrayList<User>();\r
210                 Optional<UserRoles> userrolesOpt = Optional.of(userRoles);\r
211                 \r
212                 userList.add(user);\r
213                 \r
214                 when(input.getUserId()).thenReturn(userId).thenReturn(userId);\r
215         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction).thenReturn(readOnlyTransaction);\r
216         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture).thenReturn(checkedFuture);\r
217         when(checkedFuture.get()).thenReturn(userrolesOpt).thenReturn(usersOpt);\r
218         when(users.getUser()).thenReturn(userList);\r
219         when(user.getUserId()).thenReturn(userId);\r
220                 Assert.assertNotNull(usermanager1.registerUser(input)); \r
221                 }\r
222         @Test\r
223         public void structureStyleNemoDeleteTest() throws Exception{\r
224         StructureStyleNemoDeleteInput input=mock(StructureStyleNemoDeleteInput.class);\r
225      Map<UserId, User> result=new HashMap<UserId, User>();\r
226         Users users = mock(Users.class);\r
227         User user = mock(User.class);\r
228         UserId userId = mock(UserId.class);\r
229                 UserId userId1 = mock(UserId.class);\r
230             result.put(userId,user);\r
231         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
232         CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
233         Optional<Users> usersOpt = Optional.of(users);\r
234         List<User> userList = new ArrayList<User>();\r
235                 \r
236                 \r
237                 userList.add(user);\r
238                 \r
239                 when(input.getUserId()).thenReturn(userId1);\r
240         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
241         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
242         when(checkedFuture.get()).thenReturn(usersOpt);\r
243         when(users.getUser()).thenReturn(userList);\r
244         when(user.getUserId()).thenReturn(userId);\r
245                 AdvancedNemoQueryOutputBuilder outputBuilder = new AdvancedNemoQueryOutputBuilder();\r
246                 outputBuilder.setResultCode(Error).setMessage("The user is not exist.");\r
247         Assert.assertNotNull(usermanager1.structureStyleNemoDelete(input));     \r
248         }\r
249         public void structureStyleNemoUpdateTest() throws Exception{\r
250         StructureStyleNemoUpdateInput input=mock(StructureStyleNemoUpdateInput.class);\r
251              Map<UserId, User> result=new HashMap<UserId, User>();\r
252         Users users = mock(Users.class);\r
253         User user = mock(User.class);\r
254         UserId userId = mock(UserId.class);\r
255                 UserId userId1 = mock(UserId.class);\r
256             result.put(userId,user);\r
257         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
258         CheckedFuture checkedFuture = mock(CheckedFuture.class);\r
259         Optional<Users> usersOpt = Optional.of(users);\r
260         List<User> userList = new ArrayList<User>();\r
261                 \r
262                 \r
263                 userList.add(user);\r
264                 \r
265                 when(input.getUserId()).thenReturn(userId1);\r
266         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
267         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);\r
268         when(checkedFuture.get()).thenReturn(usersOpt);\r
269         when(users.getUser()).thenReturn(userList);\r
270         when(user.getUserId()).thenReturn(userId);\r
271                 AdvancedNemoQueryOutputBuilder outputBuilder = new AdvancedNemoQueryOutputBuilder();\r
272                 outputBuilder.setResultCode(Error).setMessage("The user is not exist.");\r
273         Assert.assertNotNull(usermanager1.structureStyleNemoUpdate(input));\r
274         }\r
275 }\r
276 \r