blob: a4a7f0e4760faa9fbb90e7020f438330d445a3d0 [file] [log] [blame]
Bharat saraswalf53b29a2016-09-27 15:35:15 +05301/*
2 * Copyright 2016-present Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package org.onosproject.yms.app.ysr;
18
19import org.junit.Rule;
20import org.junit.Test;
21import org.junit.rules.ExpectedException;
22import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network1.rev20151208.IetfNetwork1;
23import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network1.rev20151208.IetfNetwork1OpParam;
24import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network1.rev20151208.IetfNetwork1Service;
25import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network2.rev20151208.IetfNetwork2Service;
26import org.onosproject.yangutils.datamodel.YangNode;
27import org.onosproject.yangutils.datamodel.YangSchemaNode;
28
29import java.io.IOException;
30
31import static org.hamcrest.MatcherAssert.assertThat;
32import static org.hamcrest.core.Is.is;
33
34/**
35 * Unit test case for default schema registry.
36 */
37public class DefaultYangSchemaRegistryTest {
38
39 private static final String SERVICE_NAME_1 =
40 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
41 ".network1.rev20151208.IetfNetwork1Service";
42 private static final String SCHEMA_NAME_1 = "ietf-network1";
43 private static final String EVENT_NAME_1 =
44 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
45 ".network1.rev20151208.ietfnetwork1.IetfNetwork1Event";
46 private static final String INTERFACE_NAME_1 =
47 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
48 ".network1.rev20151208.IetfNetwork1";
49 private static final String OP_PARAM_NAME_1 =
50 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
51 ".network1.rev20151208.IetfNetwork1OpParam";
52
53 private static final String SERVICE_NAME_2 =
54 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
55 ".network2.rev20151208.IetfNetwork2Service";
56 private static final String SCHEMA_NAME_2 = "ietf-network2";
57 private static final String EVENT_NAME_2 =
58 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
59 ".network2.rev20151208.ietfnetwork2.IetfNetwork2Event";
60 private static final String INTERFACE_NAME_2 =
61 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
62 ".network2.rev20151208.IetfNetwork2";
63 private static final String OP_PARAM_NAME_2 =
64 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
65 ".network2.rev20151208.IetfNetwork2OpParam";
66
67 private static final String SERVICE_NAME_3 =
68 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
69 ".network3.rev20151208.IetfNetwork3Service";
70 private static final String SCHEMA_NAME_3 = "ietf-network3";
71 private static final String EVENT_NAME_3 =
72 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
73 ".network3.rev20151208.ietfnetwork3.IetfNetwork3Event";
74 private static final String INTERFACE_NAME_3 =
75 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
76 ".network3.rev20151208.IetfNetwork3";
77 private static final String OP_PARAM_NAME_3 =
78 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
79 ".network3.rev20151208.IetfNetwork3OpParam";
80
81 private static final String SCHEMA_NAME_4 = "ietf-network4";
82 private static final String SERVICE_NAME_REV_14 =
83 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
84 ".network4.rev20141208.IetfNetwork4Service";
85 private static final String EVENT_NAME_REV_14 =
86 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
87 ".network4.rev20141208.ietfnetwork4.IetfNetwork4Event";
88 private static final String INTERFACE_NAME_REV_14 =
89 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
90 ".network4.rev20141208.IetfNetwork4";
91 private static final String OP_PARAM_NAME_REV_14 =
92 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
93 ".network4.rev20141208.IetfNetwork4OpParam";
94
95 private static final String SERVICE_NAME_REV_15 =
96 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
97 ".network4.rev20151208.IetfNetwork4Service";
98 private static final String EVENT_NAME_REV_15 =
99 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
100 ".network4.rev20151208.ietfnetwork4.IetfNetwork4Event";
101 private static final String INTERFACE_NAME_REV_15 =
102 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
103 ".network4.rev20151208.IetfNetwork4";
104 private static final String OP_PARAM_NAME_REV_15 =
105 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
106 ".network4.rev20151208.IetfNetwork4OpParam";
107
108 private static final String SERVICE_NAME_REV_16 =
109 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
110 ".network4.rev20161208.IetfNetwork4Service";
111
112 private static final String EVENT_NAME_REV_16 =
113 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
114 ".network4.rev20161208.ietfnetwork4.IetfNetwork4Event";
115 private static final String INTERFACE_NAME_REV_16 =
116 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
117 ".network4.rev20161208.IetfNetwork4";
118 private static final String OP_PARAM_NAME_REV_16 =
119 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
120 ".network4.rev20161208.IetfNetwork4OpParam";
121
122 private static final String SERVICE_NAME_REV_17 =
123 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
124 ".network4.rev20171208.IetfNetwork4Service";
125 private static final String EVENT_NAME_REV_17 =
126 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
127 ".network4.rev20171208.ietfnetwork4.IetfNetwork4Event";
128 private static final String INTERFACE_NAME_REV_17 =
129 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
130 ".network4.rev20171208.IetfNetwork4";
131 private static final String OP_PARAM_NAME_REV_17 =
132 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
133 ".network4.rev20171208.IetfNetwork4OpParam";
134
135 private static final String SERVICE_NAME_NO_REV =
136 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
137 ".network4.IetfNetwork4Service";
138 private static final String EVENT_NAME_NO_REV =
139 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
140 ".network4.ietfnetwork4.IetfNetwork4Event";
141 private static final String INTERFACE_NAME_NO_REV =
142 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
143 ".network4.IetfNetwork4";
144 private static final String OP_PARAM_NAME_NO_REV =
145 "org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf" +
146 ".network4.IetfNetwork4OpParam";
147
148 private static final String DATE = "2014-00-08";
149 private static final String SCHEMA_NAME_WITH_DATE =
150 "ietf-network4@2014-00-08";
151
152 private static final String UN_REG_SCHEMA_NAME = "ietf-routing";
153 private static final String UN_REG_INTERFACE_NAME = "IetfRouting";
154 private static final String UN_REG_OP_PARAM_NAME = "IetfRoutingOpParam";
155 private static final String UN_REG_SERVICE_NAME = "IetfRoutingService";
156 private static final String UN_REG_EVENT_NAME = "IetfRoutingEvent";
157
158 private final TestYangSchemaNodeProvider testYangSchemaNodeProvider =
159 new TestYangSchemaNodeProvider();
160 @Rule
161 public ExpectedException thrown = ExpectedException.none();
162
163 /**
164 * Unit test case in which schema node should be present.
165 *
166 * @throws IOException when fails to do IO operation
167 */
168 @Test
169 public void testForGetSchemaNode()
170 throws IOException {
171
172 testYangSchemaNodeProvider.processSchemaRegistry(null);
173
174 DefaultYangSchemaRegistry registry =
175 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
176
177 YangSchemaNode yangNode =
178 registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_1);
179 assertThat(true, is(SCHEMA_NAME_1.equals(yangNode.getName())));
180
181 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_1);
182 assertThat(true, is(SCHEMA_NAME_1.equals(yangNode.getName())));
183
184 yangNode =
185 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
186 INTERFACE_NAME_1);
187 assertThat(true, is(SCHEMA_NAME_1.equals(yangNode.getName())));
188
189 yangNode =
190 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
191 OP_PARAM_NAME_1);
192 assertThat(true, is(SCHEMA_NAME_1.equals(yangNode.getName())));
193
194 yangNode = registry.getRootYangSchemaNodeForNotification(EVENT_NAME_1);
195 assertThat(true, is(SCHEMA_NAME_1.equals(yangNode.getName())));
196
197 //As we have not registered an application this object should be null.
198 Object object = registry.getRegisteredApplication(yangNode);
199 assertThat(true, is(object == null));
200 testYangSchemaNodeProvider.unregisterService(SERVICE_NAME_1);
201
202 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_1);
203 assertThat(true, is(yangNode == null));
204
205 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_1);
206 assertThat(true, is(yangNode == null));
207
208 yangNode =
209 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
210 INTERFACE_NAME_1);
211 assertThat(true, is(yangNode == null));
212
213 yangNode =
214 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
215 OP_PARAM_NAME_1);
216 assertThat(true, is(yangNode == null));
217
218 yangNode = registry.getRootYangSchemaNodeForNotification(EVENT_NAME_1);
219 assertThat(true, is(yangNode == null));
220
221 //As we have not registered an application this object should be null.
222 object = registry.getRegisteredApplication(yangNode);
223 assertThat(true, is(object == null));
224
225 //With second service.
226 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_2);
227 assertThat(true, is(SCHEMA_NAME_2.equals(yangNode.getName())));
228
229 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_2);
230 assertThat(true, is(SCHEMA_NAME_2.equals(yangNode.getName())));
231
232 yangNode =
233 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
234 INTERFACE_NAME_2);
235 assertThat(true, is(SCHEMA_NAME_2.equals(yangNode.getName())));
236
237 yangNode =
238 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
239 OP_PARAM_NAME_2);
240 assertThat(true, is(SCHEMA_NAME_2.equals(yangNode.getName())));
241
242 yangNode = registry.getRootYangSchemaNodeForNotification(EVENT_NAME_2);
243 assertThat(true, is(SCHEMA_NAME_2.equals(yangNode.getName())));
244
245 //As we have not registered an application this object should be null.
246 object = registry.getRegisteredApplication(yangNode);
247 assertThat(true, is(object == null));
248
249 testYangSchemaNodeProvider.unregisterService(SERVICE_NAME_2);
250
251 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_2);
252 assertThat(true, is(yangNode == null));
253
254 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_2);
255 assertThat(true, is(yangNode == null));
256
257 yangNode =
258 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
259 INTERFACE_NAME_2);
260 assertThat(true, is(yangNode == null));
261
262 yangNode =
263 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
264 OP_PARAM_NAME_2);
265 assertThat(true, is(yangNode == null));
266
267 yangNode = registry.getRootYangSchemaNodeForNotification(EVENT_NAME_2);
268 assertThat(true, is(yangNode == null));
269
270 //As we have not registered an application this object should be null.
271 object = registry.getRegisteredApplication(yangNode);
272 assertThat(true, is(object == null));
273
274 //With third service.
275 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_3);
276 assertThat(true, is(SCHEMA_NAME_3.equals(yangNode.getName())));
277
278 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_3);
279 assertThat(true, is(SCHEMA_NAME_3.equals(yangNode.getName())));
280
281 yangNode =
282 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
283 INTERFACE_NAME_3);
284 assertThat(true, is(SCHEMA_NAME_3.equals(yangNode.getName())));
285
286 yangNode = registry.getRootYangSchemaNodeForNotification(EVENT_NAME_3);
287 assertThat(true, is(yangNode == null));
288
289 yangNode =
290 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
291 OP_PARAM_NAME_3);
292 assertThat(true, is(SCHEMA_NAME_3.equals(yangNode.getName())));
293
294 //As we have not registered an application this object should be null.
295 object = registry.getRegisteredApplication(yangNode);
296 assertThat(true, is(object == null));
297
298 testYangSchemaNodeProvider.unregisterService(SERVICE_NAME_3);
299
300 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_3);
301 assertThat(true, is(yangNode == null));
302
303 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_3);
304 assertThat(true, is(yangNode == null));
305
306 yangNode =
307 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
308 INTERFACE_NAME_3);
309 assertThat(true, is(yangNode == null));
310
311 yangNode =
312 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
313 OP_PARAM_NAME_3);
314 assertThat(true, is(yangNode == null));
315
316 yangNode = registry.getRootYangSchemaNodeForNotification(EVENT_NAME_3);
317 assertThat(true, is(yangNode == null));
318
319 //As we have not registered an application this object should be null.
320 object = registry.getRegisteredApplication(yangNode);
321 assertThat(true, is(object == null));
322 }
323
324 /**
325 * Unit test case in which schema node should not be present.
326 *
327 * @throws IOException when fails to do IO operation
328 */
329 @Test
330 public void testForDoNotGetSchemaNode()
331 throws IOException {
332
333 DefaultYangSchemaRegistry registry =
334 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
335
336 // here all nodes should be null as we have not done any registration
337 // for this application.
338 YangSchemaNode yangNode =
339 registry.getYangSchemaNodeUsingAppName(UN_REG_SERVICE_NAME);
340 assertThat(true, is(yangNode == null));
341
342 yangNode = registry.getYangSchemaNodeUsingSchemaName(UN_REG_SCHEMA_NAME);
343 assertThat(true, is(yangNode == null));
344
345 yangNode =
346 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
347 UN_REG_INTERFACE_NAME);
348 assertThat(true, is(yangNode == null));
349
350 yangNode =
351 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
352 UN_REG_OP_PARAM_NAME);
353 assertThat(true, is(yangNode == null));
354
355 yangNode = registry.getRootYangSchemaNodeForNotification(
356 UN_REG_EVENT_NAME);
357 assertThat(true, is(yangNode == null));
358
359 //As we have not registered an application this object should be null.
360 Object object = registry.getRegisteredApplication(yangNode);
361 assertThat(true, is(object == null));
362
363 }
364
365 /**
366 * Unit test case in which schema node should be present with multi
367 * revisions.
368 *
369 * @throws IOException when fails to do IO operation
370 */
371 @Test
372 public void testForGetSchemaNodeWhenNoRevision()
373 throws IOException {
374
375 testYangSchemaNodeProvider.processSchemaRegistry(null);
376 DefaultYangSchemaRegistry registry =
377 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
378
379 //Service with rev.
380 YangSchemaNode yangNode =
381 registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_REV_15);
382 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
383
384 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
385 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
386
387 yangNode =
388 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
389 INTERFACE_NAME_REV_15);
390 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
391
392 yangNode =
393 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
394 OP_PARAM_NAME_REV_15);
395 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
396
397 yangNode = registry.getRootYangSchemaNodeForNotification(
398 EVENT_NAME_REV_15);
399 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
400
401 //As we have not registered an application this object should be null.
402 Object object = registry.getRegisteredApplication(yangNode);
403 assertThat(true, is(object == null));
404 testYangSchemaNodeProvider.unregisterService(SERVICE_NAME_REV_15);
405
406 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_REV_15);
407 assertThat(true, is(yangNode == null));
408
409 //Here the yangNode should be the node which does not have revision.
410 // asset should pass with false.
411 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
412 assertThat(true, is(((YangNode) yangNode).getRevision() != null));
413
414 //Service no revision.
415 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_NO_REV);
416 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
417
418 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
419 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
420
421 yangNode =
422 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
423 INTERFACE_NAME_NO_REV);
424 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
425
426 yangNode =
427 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
428 OP_PARAM_NAME_NO_REV);
429 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
430
431 yangNode = registry.getRootYangSchemaNodeForNotification(EVENT_NAME_NO_REV);
432 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
433
434 //As we have not registered an application this object should be null.
435 object = registry.getRegisteredApplication(yangNode);
436 assertThat(true, is(object == null));
437 testYangSchemaNodeProvider.unregisterService(SERVICE_NAME_NO_REV);
438
439 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_NO_REV);
440 assertThat(true, is(yangNode == null));
441
442 //Here the yangNode should be the node which have different revision.
443 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
444 assertThat(true, is(((YangNode) yangNode).getRevision() != null));
445 }
446
447 /**
448 * Unit test case in which schema node should be present with multi
449 * revisions.
450 *
451 * @throws IOException when fails to do IO operation
452 */
453 @Test
454 public void testForGetSchemaNodeWhenMultiRevision()
455 throws IOException {
456
457 testYangSchemaNodeProvider.processSchemaRegistry(null);
458 DefaultYangSchemaRegistry registry =
459 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
460
461 //Service with rev.
462 YangSchemaNode yangNode =
463 registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_REV_15);
464 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
465
466 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
467 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
468
469 yangNode =
470 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
471 INTERFACE_NAME_REV_15);
472 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
473
474 yangNode =
475 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
476 OP_PARAM_NAME_REV_15);
477 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
478
479 yangNode = registry.getRootYangSchemaNodeForNotification(
480 EVENT_NAME_REV_15);
481 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
482
483 //As we have not registered an application this object should be null.
484 Object object = registry.getRegisteredApplication(yangNode);
485 assertThat(true, is(object == null));
486 testYangSchemaNodeProvider.unregisterService(SERVICE_NAME_REV_15);
487
488 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_REV_15);
489 assertThat(true, is(yangNode == null));
490
491 //Here the yangNode should be the node which does not have revision.
492 // asset should pass with false.
493 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
494 assertThat(true, is(((YangNode) yangNode).getRevision() != null));
495
496 //Service with different revision.
497 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_REV_16);
498 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
499
500 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
501 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
502
503 yangNode =
504 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
505 INTERFACE_NAME_REV_16);
506 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
507
508 yangNode =
509 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
510 OP_PARAM_NAME_REV_16);
511 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
512
513 yangNode = registry.getRootYangSchemaNodeForNotification(EVENT_NAME_REV_16);
514 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
515
516 //As we have not registered an application this object should be null.
517 object = registry.getRegisteredApplication(yangNode);
518 assertThat(true, is(object == null));
519 testYangSchemaNodeProvider.unregisterService(SERVICE_NAME_REV_16);
520
521 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_REV_16);
522 assertThat(true, is(yangNode == null));
523
524 //Here the yangNode should be the node which have different revision.
525 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
526 assertThat(true, is(((YangNode) yangNode).getRevision() != null));
527
528 //Service with different revision.
529 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_REV_17);
530 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
531
532 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
533 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
534
535 yangNode =
536 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
537 INTERFACE_NAME_REV_17);
538 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
539
540 yangNode =
541 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
542 OP_PARAM_NAME_REV_17);
543 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
544
545 yangNode = registry.getRootYangSchemaNodeForNotification(
546 EVENT_NAME_REV_17);
547 assertThat(true, is(yangNode == null));
548
549 //As we have not registered an application this object should be null.
550 object = registry.getRegisteredApplication(yangNode);
551 assertThat(true, is(object == null));
552 testYangSchemaNodeProvider.unregisterService(SERVICE_NAME_REV_17);
553
554 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_REV_17);
555 assertThat(true, is(yangNode == null));
556
557 //Here the yangNode should be the node which have different revision.
558 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
559 assertThat(true, is(((YangNode) yangNode).getRevision() == null));
560
561 //Service with different revision.
562 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_REV_14);
563 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
564
565 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
566 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
567
568 yangNode =
569 registry.getYangSchemaNodeUsingGeneratedRootNodeInterfaceFileName(
570 INTERFACE_NAME_REV_14);
571 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
572
573 yangNode =
574 registry.getYangSchemaNodeUsingGeneratedRootNodeOpPramFileName(
575 OP_PARAM_NAME_REV_14);
576 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
577
578 yangNode = registry.getRootYangSchemaNodeForNotification(
579 EVENT_NAME_REV_14);
580 assertThat(true, is(SCHEMA_NAME_4.equals(yangNode.getName())));
581
582 //As we have not registered an application this object should be null.
583 object = registry.getRegisteredApplication(yangNode);
584 assertThat(true, is(object == null));
585 testYangSchemaNodeProvider.unregisterService(SERVICE_NAME_REV_14);
586
587 yangNode = registry.getYangSchemaNodeUsingAppName(SERVICE_NAME_REV_14);
588 assertThat(true, is(yangNode == null));
589
590 //Here the yangNode should be the node which does not have revision.
591 // asset should pass with false.
592 yangNode = registry.getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_4);
593 assertThat(true, is(yangNode != null));
594
595 }
596
597 /**
598 * Unit test case should generate exceptions.
599 */
600 @Test
601 public void testRegistration() {
602 thrown.expect(RuntimeException.class);
603 testYangSchemaNodeProvider.processSchemaRegistry(null);
604 testYangSchemaNodeProvider.processRegistrationOfApp();
605 }
606
607 /**
608 * Unit test case should not generate any exceptions and should
609 * return specific revision node.
610 */
611 @Test
612 public void testGetWithSpecificRevision() {
613 testYangSchemaNodeProvider.processSchemaRegistry(null);
614 YangSchemaNode schemaNode = testYangSchemaNodeProvider
615 .getDefaultYangSchemaRegistry()
616 .getYangSchemaNodeUsingSchemaName(SCHEMA_NAME_WITH_DATE);
617
618 assertThat(true, is(schemaNode.getName().equals(SCHEMA_NAME_4)));
619 String date = testYangSchemaNodeProvider
620 .getDefaultYangSchemaRegistry()
621 .getDateInStringFormat(schemaNode);
622 assertThat(true, is(date.equals(DATE)));
623 }
624
625 /**
626 * Unit test case should not generate any exceptions
627 * verify notification should be checked for registration.
628 */
629 @Test
630 public void testNotification() {
631 testYangSchemaNodeProvider.processSchemaRegistry(null);
632 boolean isRegWithNotification =
633 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry()
634 .verifyNotificationObject(IetfNetwork1Service.class);
635 assertThat(true, is(isRegWithNotification));
636 isRegWithNotification = testYangSchemaNodeProvider
637 .getDefaultYangSchemaRegistry()
638 .verifyNotificationObject(IetfNetwork1.class);
639 assertThat(false, is(isRegWithNotification));
640 isRegWithNotification = testYangSchemaNodeProvider
641 .getDefaultYangSchemaRegistry()
642 .verifyNotificationObject(IetfNetwork1OpParam.class);
643 assertThat(false, is(isRegWithNotification));
644 }
645
646 /**
647 * Unit test case should not generate any exceptions.
648 */
649 @Test
650 public void testNotificationRegistrationInYnh() {
651 testYangSchemaNodeProvider.processSchemaRegistry(null);
652 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry()
653 .verifyNotificationObject(IetfNetwork1Service.class);
654 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry()
655 .verifyNotificationObject(IetfNetwork1.class);
656 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry()
657 .verifyNotificationObject(IetfNetwork1OpParam.class);
658
659 boolean isRegWithNotification = testYangSchemaNodeProvider
660 .getDefaultYangSchemaRegistry()
661 .verifyNotificationObject(IetfNetwork2Service.class);
662
663 //Register should work.
664 assertThat(true, is(isRegWithNotification));
665 isRegWithNotification = testYangSchemaNodeProvider
666 .getDefaultYangSchemaRegistry()
667 .verifyNotificationObject(IetfNetwork2Service.class);
668
669 //Re register should not happen
670 assertThat(false, is(isRegWithNotification));
671 }
672
673}
674
675