blob: dea58771a6a0eac8ab9f9cec9d5d3efe4936398c [file] [log] [blame]
Shankara-Huaweid5823ab2016-11-22 10:14:52 +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.ych;
18
19import org.junit.Test;
20import org.onosproject.yang.gen.v1.ych.combined.rev20160524.CombinedOpParam;
21import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.AsNum;
22import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.Attributes;
23import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.DefaultAttributes;
24import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.Metric;
25import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.PathId;
26import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.Aigp;
27import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.BgpParameters;
28import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.DefaultAigp;
29import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.DefaultBgpParameters;
30import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.DefaultLocalPref;
31import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.DefaultMultiExitDisc;
32import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.DefaultOrigin;
33import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.DefaultUnrecognizedAttributes;
34import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.LocalPref;
35import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.MultiExitDisc;
36import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.Origin;
37import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.UnrecognizedAttributes;
38import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.aigp.AigpTlv;
39import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.aigp.DefaultAigpTlv;
40import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.bgpparameters.DefaultOptionalCapabilities;
41import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.bgpparameters.OptionalCapabilities;
42import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.bgpparameters.optionalcapabilities.Cparameters;
43import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.bgpparameters.optionalcapabilities.DefaultCparameters;
44import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.bgpparameters.optionalcapabilities.cparameters.As4BytesCapability;
45import org.onosproject.yang.gen.v1.ych.combined.rev20160524.combined.attributes.bgpparameters.optionalcapabilities.cparameters.DefaultAs4BytesCapability;
46import org.onosproject.yang.gen.v1.ych.empty.container.rev20160524.EmptyContainerOpParam;
47import org.onosproject.yang.gen.v1.ych.empty.container.rev20160524.emptycontainer.EmptyContainer;
Shankara-Huaweid5823ab2016-11-22 10:14:52 +053048import org.onosproject.yang.gen.v1.ydt.customs.supervisor.rev20160524.CustomssupervisorOpParam;
Shankara-Huaweid5823ab2016-11-22 10:14:52 +053049import org.onosproject.yang.gen.v1.ydt.material.supervisor.rev20160524.MaterialsupervisorOpParam;
50import org.onosproject.yang.gen.v1.ydt.material.supervisor.rev20160524.materialsupervisor.DefaultSupervisor;
51import org.onosproject.yang.gen.v1.ydt.material.supervisor.rev20160524.materialsupervisor.Supervisor;
52import org.onosproject.yang.gen.v1.ydt.merchandiser.supervisor.rev20160524.MerchandisersupervisorOpParam;
53import org.onosproject.yang.gen.v1.ydt.root.rev20160524.LogisticsManagerOpParam;
Shankara-Huaweid5823ab2016-11-22 10:14:52 +053054import org.onosproject.yang.gen.v1.ydt.trading.supervisor.rev20160524.TradingsupervisorOpParam;
Shankara-Huaweid5823ab2016-11-22 10:14:52 +053055import org.onosproject.yms.app.ych.defaultcodecs.YangCodecRegistry;
56import org.onosproject.yms.app.ysr.DefaultYangSchemaRegistry;
57import org.onosproject.yms.app.ysr.TestYangSchemaNodeProvider;
58import org.onosproject.yms.ych.YangCompositeEncoding;
59
60import java.io.BufferedReader;
61import java.io.FileReader;
62import java.io.IOException;
63import java.util.ArrayList;
64import java.util.HashMap;
65import java.util.Iterator;
66import java.util.List;
67import java.util.Map;
68
69import static org.junit.Assert.assertEquals;
70import static org.junit.Assert.assertNull;
Shankara-Huaweid5823ab2016-11-22 10:14:52 +053071import static org.onosproject.yms.ych.YangProtocolEncodingFormat.XML;
Shankara-Huaweid5823ab2016-11-22 10:14:52 +053072import static org.onosproject.yms.ydt.YmsOperationType.QUERY_CONFIG_REQUEST;
73import static org.onosproject.yms.ydt.YmsOperationType.QUERY_REQUEST;
74
75/**
76 * Unit test case for default codec handler.
77 */
78public class DefaultYangCodecHandlerTest {
79 private TestYangSchemaNodeProvider testYangSchemaNodeProvider =
80 new TestYangSchemaNodeProvider();
81 private static final String AM_XML = "Incorrect XML generated: ";
82 private static final String AM_OBJ = "Incorrect object generated: ";
83 private static final String EMPTY_CONTAINER = "EmptyContainerOpParam";
84 private static final String LOGISTIC_MOD = "LogisticsManagerOpParam";
85 private static final String MERCHA_MOD = "MerchandisersupervisorOpParam";
86
87 /**
88 * Returns the xml string for customssupervisor module.
89 *
90 * @return the xml string for customssupervisor module
91 */
92 private static String customsXml() {
93 return "<filter xmlns=\"ydt.filter-type\" type=\"subtree\">" +
Vidyashree Rama9f34bad2016-12-08 18:07:08 +053094 "<supervisor xmlns=\"ydt.customs-supervisor\">" +
95 "Customssupervisor</supervisor>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +053096 "</filter>";
97 }
98
99 /**
100 * Returns the xml string for merchandisersupervisor module.
101 *
102 * @return the xml string for merchandisersupervisor module
103 */
104 private static String merchandXml() {
105 return "<config xmlns=\"ydt.root\">" +
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530106 "<supervisor xmlns=\"ydt.Merchandiser-supervisor\">" +
107 "Merchandisersupervisor</supervisor>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530108 "</config>";
109 }
110
111 /**
112 * Returns the xml string for tradingsupervisor module.
113 *
114 * @return the xml string for tradingsupervisor module
115 */
116 private static String tradingXml() {
117 return "<config xmlns=\"ydt.root\">" +
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530118 "<supervisor xmlns=\"ydt.trading-supervisor\">" +
119 "Tradingsupervisor</supervisor>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530120 "</config>";
121 }
122
123 /**
124 * Returns the xml string for customssupervisor module.
125 *
126 * @return the xml string for customssupervisor module
127 */
128 private static String customsCompositeXml() {
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530129 return "<filter xmlns=\"ydt.filter-type\">" +
130 "<supervisor xmlns=\"ydt.customs-supervisor\">" +
131 "Customssupervisor</supervisor></filter>";
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530132 }
133
134 /**
135 * Returns the xml string for customssupervisor module with filter-type.
136 *
137 * @return the xml string for customssupervisor module with filter-type
138 */
139 private static String customsEmptyXml() {
140 return "<filter xmlns=\"ydt.filter-type\" type=\"subtree\">" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530141 "</filter>";
142 }
143
144 /**
145 * Returns the xml string for materialsupervisor module.
146 *
147 * @return the xml string for materialsupervisor module
148 */
149 private static String materialXml() {
150 return "<filter xmlns=\"ydt.filter-type\" type=\"subtree\">" +
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530151 "<supervisor xmlns=\"ydt.material-supervisor\">" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530152 "<name>abc1</name><departmentId>xyz1</departmentId>" +
153 "</supervisor>" +
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530154 "<supervisor xmlns=\"ydt.material-supervisor\"" +
155 "><name>abc2</name><departmentId>xyz2</departmentId>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530156 "</supervisor>" +
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530157 "<supervisor xmlns=\"ydt.material-supervisor\"" +
158 "><name>abc3</name><departmentId>xyz3</departmentId>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530159 "</supervisor>" +
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530160 "<supervisor xmlns=\"ydt.material-supervisor\"" +
161 "><name>abc4</name><departmentId>xyz4</departmentId>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530162 "</supervisor>" +
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530163 "<supervisor xmlns=\"ydt.material-supervisor\"" +
164 "><name>abc5</name><departmentId>xyz5</departmentId>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530165 "</supervisor>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530166 "</filter>";
167 }
168
169 /**
170 * Returns the xml string for EmptyContainer module.
171 *
172 * @return the xml string for EmptyContainer module
173 */
174 private static String containerEmptyXml() {
175 return "<filter xmlns=\"ydt.filter-type\" type=\"subtree\">" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530176 "</filter>";
177 }
178
179 /**
180 * Returns the xml string for Combined module.
181 *
182 * @return the xml string for Combined module
183 */
184 private static String listTestXml() {
185 return "<filter xmlns=\"ydt.filter-type\" type=\"subtree\">" +
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530186 "<attributes xmlns=\"ych:combined\">" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530187 "<origin><value>123</value></origin>" +
188 "<multi-exit-disc><med>456</med></multi-exit-disc>" +
189 "<local-pref><pref>23</pref></local-pref>" +
190 "<aigp><aigp-tlv><metric>456</metric></aigp-tlv></aigp>" +
191 "<unrecognized-attributes><partial>false</partial>" +
192 "<transitive>false</transitive><type>1</type>" +
193 "<value>QUJD</value></unrecognized-attributes>" +
194 "<unrecognized-attributes><partial>true</partial>" +
195 "<transitive>true</transitive><type>2</type>" +
196 "<value>QUJD</value></unrecognized-attributes>" +
197 "<unrecognized-attributes><partial>true</partial>" +
198 "<transitive>false</transitive><type>3</type>" +
199 "<value>QUJD</value></unrecognized-attributes>" +
200 "<unrecognized-attributes><partial>false</partial>" +
201 "<transitive>true</transitive><type>4</type>" +
202 "<value>QUJD</value></unrecognized-attributes>" +
203 "<bgp-parameters><optional-capabilities><c-parameters>" +
204 "<as4-bytes-capability><as-number>11</as-number>" +
205 "</as4-bytes-capability></c-parameters>" +
206 "</optional-capabilities><optional-capabilities>" +
207 "<c-parameters><as4-bytes-capability>" +
208 "<as-number>22</as-number></as4-bytes-capability>" +
209 "</c-parameters></optional-capabilities>" +
210 "<optional-capabilities><c-parameters><as4-bytes-capability>" +
211 "<as-number>33</as-number></as4-bytes-capability>" +
212 "</c-parameters></optional-capabilities></bgp-parameters>" +
213 "<bgp-parameters><optional-capabilities><c-parameters>" +
214 "<as4-bytes-capability><as-number>11</as-number>" +
215 "</as4-bytes-capability></c-parameters>" +
216 "</optional-capabilities><optional-capabilities>" +
217 "<c-parameters><as4-bytes-capability>" +
218 "<as-number>22</as-number></as4-bytes-capability>" +
219 "</c-parameters></optional-capabilities>" +
220 "<optional-capabilities><c-parameters><as4-bytes-capability>" +
221 "<as-number>33</as-number></as4-bytes-capability>" +
222 "</c-parameters></optional-capabilities>" +
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530223 "</bgp-parameters></attributes></filter>";
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530224 }
225
226 /**
227 * Returns the xml string for ych-purchasingsupervisor module.
228 *
229 * @return the xml string for ych-purchasingsupervisor module
230 */
231 private static String purchaseXml() {
232 return "<filter xmlns=\"ydt.filter-type\" type=\"subtree\">" +
233 "<ych-purchasingsupervisor xmlns=\"ych.purchasing-supervisor\">" +
234 "<ych-purchasing-supervisor operation=\"create\">" +
235 "<ych-purchasing-specialist>purchasingSpecialist" +
236 "</ych-purchasing-specialist>" +
237 "<ych-purchasing-support>support</ych-purchasing-support>" +
238 "</ych-purchasing-supervisor>" +
239 "</ych-purchasingsupervisor>" +
240 "</filter>";
241 }
242
243 /**
244 * Returns the xml string for employeeid module.
245 *
246 * @return the xml string for employeeid module
247 */
248 private static String emplyIdXml() {
249 return "<config xmlns=\"ydt.root\">" +
250 "<employeeid xmlns=\"ydt.employee-id\">" +
251 "<employeeid>Employ1</employeeid>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530252 "<employeeid>Employ2</employeeid>" +
sonu guptaeff184b2016-11-24 12:43:49 +0530253 "<employeeid>Employ3</employeeid>" +
254 "<employeeid>Employ4</employeeid>" +
255 "<employeeid>Employ5</employeeid>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530256 "</employeeid>" +
257 "</config>";
258 }
259
260 /**
261 * Returns the xml string for warehousesupervisor module.
262 *
263 * @return the xml string for warehousesupervisor module
264 */
265 private static String wareHseXml() {
266 return "<config xmlns=\"ydt.root\">" +
267 "<warehousesupervisor xmlns=\"ydt.warehouse-supervisor\">" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530268 "<supervisor>supervisor1</supervisor>" +
269 "<supervisor>supervisor2</supervisor>" +
270 "<supervisor>supervisor3</supervisor>" +
sonu guptaeff184b2016-11-24 12:43:49 +0530271 "<supervisor>supervisor4</supervisor>" +
272 "<supervisor>supervisor5</supervisor>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530273 "</warehousesupervisor>" +
274 "</config>";
275 }
276
277 /**
278 * Returns the xml string for more than one module.
279 *
280 * @return the xml string for more than one module
281 */
282 private static String multiModuleXml() {
283 return "<config xmlns=\"ydt.root\">" +
284 "<customssupervisor xmlns=\"ydt.customs-supervisor\">" +
285 "<supervisor>Customssupervisor</supervisor>" +
286 "</customssupervisor>" +
287 "<merchandisersupervisor xmlns=\"ydt.Merchandiser-supervisor\">" +
288 "<supervisor>Merchandisersupervisor</supervisor>" +
289 "</merchandisersupervisor>" +
290 "<materialsupervisor xmlns=\"ydt.material-supervisor\">" +
291 "<supervisor>" +
292 "<name>abc1</name>" +
293 "<departmentId>xyz1</departmentId>" +
294 "</supervisor>" +
295 "<supervisor>" +
296 "<name>abc2</name>" +
297 "<departmentId>xyz2</departmentId>" +
298 "</supervisor>" +
299 "<supervisor>" +
300 "<name>abc3</name>" +
301 "<departmentId>xyz3</departmentId>" +
302 "</supervisor>" +
303 "<supervisor>" +
304 "<name>abc4</name>" +
305 "<departmentId>xyz4</departmentId>" +
306 "</supervisor>" +
307 "<supervisor>" +
308 "<name>abc5</name>" +
309 "<departmentId>xyz5</departmentId>" +
310 "</supervisor>" +
311 "</materialsupervisor>" +
312 "<ych-purchasingsupervisor xmlns=\"ych.purchasing-supervisor\">" +
313 "<ych-purchasing-supervisor>" +
314 "<ych-purchasing-specialist>purchasingSpecialist" +
315 "</ych-purchasing-specialist>" +
316 "<ych-purchasing-support>support</ych-purchasing-support>" +
317 "</ych-purchasing-supervisor>" +
318 "</ych-purchasingsupervisor>" +
319 "<warehousesupervisor xmlns=\"ydt.warehouse-supervisor\">" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530320 "<supervisor>supervisor1</supervisor>" +
321 "<supervisor>supervisor2</supervisor>" +
322 "<supervisor>supervisor3</supervisor>" +
sonu guptaeff184b2016-11-24 12:43:49 +0530323 "<supervisor>supervisor4</supervisor>" +
324 "<supervisor>supervisor5</supervisor>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530325 "</warehousesupervisor>" +
326 "<tradingsupervisor xmlns=\"ydt.trading-supervisor\">" +
327 "<supervisor>Tradingsupervisor</supervisor>" +
328 "</tradingsupervisor>" +
329 "<employeeid xmlns=\"ydt.employee-id\">" +
330 "<employeeid>Employ1</employeeid>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530331 "<employeeid>Employ2</employeeid>" +
sonu guptaeff184b2016-11-24 12:43:49 +0530332 "<employeeid>Employ3</employeeid>" +
333 "<employeeid>Employ4</employeeid>" +
334 "<employeeid>Employ5</employeeid>" +
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530335 "</employeeid>" +
336 "</config>";
337 }
338
339 /**
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530340 * Returns the xml string for more than one module.
341 *
342 * @return the xml string for more than one module
343 */
344 private String multipleAppxml() {
345 return "<filter xmlns=\"ydt.filter-type\" type=\"subtree\"><supervisor" +
346 " xmlns=\"ydt.customs-supervisor\">Customssupervisor" +
347 "</supervisor><supervisor xmlns=\"ydt.material-supervisor\"" +
348 "><name>abc1</name><departmentId>xyz1</departmentId" +
349 "></supervisor><supervisor xmlns=\"ydt.material-supervisor\">" +
350 "<name>abc2</name><departmentId>xyz2</departmentId>" +
351 "</supervisor><supervisor xmlns=\"ydt" +
352 ".material-supervisor\"><name>abc3</name><departmentId>xyz3" +
353 "</departmentId></supervisor><supervisor xmlns=\"ydt" +
354 ".material-supervisor\"><name>abc4</name><departmentId>xyz4" +
355 "</departmentId></supervisor><supervisor xmlns=\"ydt" +
356 ".material-supervisor\"><name>abc5</name><departmentId>xyz5" +
357 "</departmentId></supervisor></filter>";
358 }
359
360 /**
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530361 * Unit test case in which verifying xml string for module object with leaf
362 * for composite encode.
363 */
364 @Test
365 public void proceessCodecHandlerForCompositeEnc() {
366 testYangSchemaNodeProvider.processSchemaRegistry(null);
367 DefaultYangSchemaRegistry schemaRegistry = testYangSchemaNodeProvider
368 .getDefaultYangSchemaRegistry();
369
370 // Creating the object
371 Object object = CustomssupervisorOpParam.builder()
372 .supervisor("Customssupervisor").build();
373
374 // Get the xml string and compare
375 Map<String, String> tagAttr = new HashMap<String, String>();
376 tagAttr.put("type", "subtree");
377
378 YangCodecRegistry.initializeDefaultCodec();
379 DefaultYangCodecHandler defaultYangCodecHandler =
380 new DefaultYangCodecHandler(schemaRegistry);
381 YangCompositeEncoding xml =
382 defaultYangCodecHandler
383 .encodeCompositeOperation("filter", "ydt.filter-type",
384 object, XML, null);
385
386 assertNull("customs-super: resource id not null",
387 xml.getResourceIdentifier());
388 assertEquals(AM_XML + "customs-super: comp res info",
389 customsCompositeXml(), xml.getResourceInformation());
390
391 // Creating the object
392 object = MerchandisersupervisorOpParam.builder()
393 .supervisor("Merchandisersupervisor").build();
394
395 // Get the xml string and compare
396 xml = defaultYangCodecHandler.encodeCompositeOperation("config",
397 "ydt.root",
398 object, XML,
399 null);
400 assertNull("merch-super: res id not null", xml.getResourceIdentifier());
401 assertEquals(AM_XML + "merch-super: comp res info",
402 merchandXml(), xml.getResourceInformation());
403
404 // Creating the object
405 object = TradingsupervisorOpParam.builder()
406 .supervisor("Tradingsupervisor").build();
407
408 // Get the xml string and compare
409 xml = defaultYangCodecHandler
410 .encodeCompositeOperation("config", "ydt.root", object, XML,
411 null);
412 assertNull("trading-super: res id not null",
413 xml.getResourceIdentifier());
414 assertEquals(AM_XML + "trading-super: comp res info",
415 tradingXml(), xml.getResourceInformation());
416 }
417
418 /**
419 * Unit test case in which verifying xml string for module object with leaf.
420 */
421 @Test
422 public void proceessCodecHandlerForLeaf() {
423 testYangSchemaNodeProvider.processSchemaRegistry(null);
424 DefaultYangSchemaRegistry schemaRegistry = testYangSchemaNodeProvider
425 .getDefaultYangSchemaRegistry();
426 List<Object> yangModuleList = new ArrayList<>();
427
428 // Creating the object
429 Object object = CustomssupervisorOpParam.builder()
430 .supervisor("Customssupervisor").build();
431 yangModuleList.add(object);
432
433 // Get the xml string and compare
434 Map<String, String> tagAttr = new HashMap<String, String>();
435 tagAttr.put("type", "subtree");
436
437 YangCodecRegistry.initializeDefaultCodec();
438 DefaultYangCodecHandler defaultYangCodecHandler =
439 new DefaultYangCodecHandler(schemaRegistry);
440 String xml =
441 defaultYangCodecHandler.encodeOperation("filter",
442 "ydt.filter-type",
443 tagAttr, yangModuleList,
444 XML, null);
445
446 assertEquals(AM_XML + "customs-super: leaf info", customsXml(), xml);
447
448 // Creating the object
449 object = MerchandisersupervisorOpParam.builder()
450 .supervisor("Merchandisersupervisor").build();
451 yangModuleList.clear();
452 yangModuleList.add(object);
453
454 // Get the xml string and compare
455 xml = defaultYangCodecHandler.encodeOperation("config", "ydt.root",
456 null, yangModuleList,
457 XML, null);
458 assertEquals(AM_XML + "merchandiser-super: leaf info", merchandXml(),
459 xml);
460
461 // Creating the object
462 object = TradingsupervisorOpParam.builder()
463 .supervisor("Tradingsupervisor").build();
464 yangModuleList.clear();
465 yangModuleList.add(object);
466
467 // Get the xml string and compare
468 xml = defaultYangCodecHandler.encodeOperation("config", "ydt.root",
469 null, yangModuleList,
470 XML, null);
471 assertEquals(AM_XML + "trading-super: leaf info", tradingXml(), xml);
472 }
473
474 /**
475 * Unit test case in which verifying xml string for module object with
476 * empty leaf.
477 */
478 @Test
479 public void proceessCodecHandlerForEmptyLeaf() {
480 testYangSchemaNodeProvider.processSchemaRegistry(null);
481 DefaultYangSchemaRegistry schemaRegistry = testYangSchemaNodeProvider
482 .getDefaultYangSchemaRegistry();
483 List<Object> yangModuleList = new ArrayList<>();
484
485 // Creating the object
486 Object object = CustomssupervisorOpParam.builder().supervisor("")
487 .build();
488 yangModuleList.add(object);
489
490 // Get the xml string and compare
491 Map<String, String> tagAttr = new HashMap<String, String>();
492 tagAttr.put("type", "subtree");
493
494 YangCodecRegistry.initializeDefaultCodec();
495 DefaultYangCodecHandler codecHandler =
496 new DefaultYangCodecHandler(schemaRegistry);
497 String xml = codecHandler.encodeOperation("filter", "ydt.filter-type",
498 tagAttr, yangModuleList,
499 XML, null);
500
501 assertEquals(AM_XML + "customs-super: leaf is not empty",
502 customsEmptyXml(), xml);
503 }
504
505 /**
Vidyashree Rama9f34bad2016-12-08 18:07:08 +0530506 * Unit test case in which verifying xml string for more than one module
507 * object.
508 */
509 @Test
510 public void proceessCodecHandlerForMultipleApp() {
511 testYangSchemaNodeProvider.processSchemaRegistry(null);
512 DefaultYangSchemaRegistry schemaRegistry = testYangSchemaNodeProvider
513 .getDefaultYangSchemaRegistry();
514 List<Object> yangModuleList = new ArrayList<>();
515
516 // Creating the object
517 Object object = CustomssupervisorOpParam.builder()
518 .supervisor("Customssupervisor").build();
519 yangModuleList.add(object);
520
521 // Creating the object
522 Supervisor supervisor1 = new DefaultSupervisor.SupervisorBuilder()
523 .name("abc1").departmentId("xyz1").build();
524 Supervisor supervisor2 = new DefaultSupervisor.SupervisorBuilder()
525 .name("abc2").departmentId("xyz2").build();
526 Supervisor supervisor3 = new DefaultSupervisor.SupervisorBuilder()
527 .name("abc3").departmentId("xyz3").build();
528 Supervisor supervisor4 = new DefaultSupervisor.SupervisorBuilder()
529 .name("abc4").departmentId("xyz4").build();
530 Supervisor supervisor5 = new DefaultSupervisor.SupervisorBuilder()
531 .name("abc5").departmentId("xyz5").build();
532
533 Object object1 = MaterialsupervisorOpParam.builder()
534 .addToSupervisor(supervisor1)
535 .addToSupervisor(supervisor2)
536 .addToSupervisor(supervisor3)
537 .addToSupervisor(supervisor4)
538 .addToSupervisor(supervisor5).build();
539 yangModuleList.add(object1);
540
541 // Get the xml string and compare
542 Map<String, String> tagAttr = new HashMap<String, String>();
543 tagAttr.put("type", "subtree");
544
545 YangCodecRegistry.initializeDefaultCodec();
546 DefaultYangCodecHandler codecHandler =
547 new DefaultYangCodecHandler(schemaRegistry);
548 String xml = codecHandler.encodeOperation("filter", "ydt.filter-type",
549 tagAttr, yangModuleList,
550 XML, null);
551
552 assertEquals(AM_XML + "for multiple applications",
553 multipleAppxml(), xml);
554 }
555
556 /**
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530557 * Unit test case in which verifying xml string for module object with list.
558 */
559 @Test
560 public void proceessCodecHandlerForList() {
561 testYangSchemaNodeProvider.processSchemaRegistry(null);
562 DefaultYangSchemaRegistry schemaRegistry =
563 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
564 List<Object> yangModuleList = new ArrayList<>();
565
566 // Creating the object
567 Supervisor supervisor1 = new DefaultSupervisor.SupervisorBuilder()
568 .name("abc1").departmentId("xyz1").build();
569 Supervisor supervisor2 = new DefaultSupervisor.SupervisorBuilder()
570 .name("abc2").departmentId("xyz2").build();
571 Supervisor supervisor3 = new DefaultSupervisor.SupervisorBuilder()
572 .name("abc3").departmentId("xyz3").build();
573 Supervisor supervisor4 = new DefaultSupervisor.SupervisorBuilder()
574 .name("abc4").departmentId("xyz4").build();
575 Supervisor supervisor5 = new DefaultSupervisor.SupervisorBuilder()
576 .name("abc5").departmentId("xyz5").build();
577
578 Object object = MaterialsupervisorOpParam.builder()
579 .addToSupervisor(supervisor1)
580 .addToSupervisor(supervisor2)
581 .addToSupervisor(supervisor3)
582 .addToSupervisor(supervisor4)
583 .addToSupervisor(supervisor5).build();
584
585 yangModuleList.add(object);
586
587 // Get the xml string and compare
588 Map<String, String> tagAttr = new HashMap<String, String>();
589 tagAttr.put("type", "subtree");
590
591 YangCodecRegistry.initializeDefaultCodec();
592 DefaultYangCodecHandler codecHandler =
593 new DefaultYangCodecHandler(schemaRegistry);
594 String xml = codecHandler.encodeOperation("filter", "ydt.filter-type",
595 tagAttr, yangModuleList,
596 XML, null);
597 assertEquals(AM_XML + "material-super: list info", materialXml(), xml);
598 }
599
600 /**
601 * Unit test case in which verifying xml string for module object with
602 * empty container.
603 */
604 @Test
605 public void proceessCodecHandlerForEmptyContainer() {
606 testYangSchemaNodeProvider.processSchemaRegistry(null);
607 DefaultYangSchemaRegistry schemaRegistry =
608 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
609 List<Object> yangModuleList = new ArrayList<>();
610
611 // Creating the object
612 EmptyContainer emptyContainer = EmptyContainerOpParam.builder()
613 .emptyContainer();
614 Object object = EmptyContainerOpParam.builder()
615 .emptyContainer(emptyContainer).build();
616
617 yangModuleList.add(object);
618
619 // Get the xml string and compare
620 Map<String, String> tagAttr = new HashMap<String, String>();
621 tagAttr.put("type", "subtree");
622
623 YangCodecRegistry.initializeDefaultCodec();
624 DefaultYangCodecHandler codecHandler =
625 new DefaultYangCodecHandler(schemaRegistry);
626 String xml = codecHandler.encodeOperation("filter", "ydt.filter-type",
627 tagAttr, yangModuleList,
628 XML, null);
629 assertEquals(AM_XML + "empty-contain: container is not empty",
630 containerEmptyXml(), xml);
631 }
632
633 /**
634 * Unit test case in which verifying xml string for module object with list
635 * inside list.
636 */
637 @Test
638 public void proceessCodecHandlerForListInsideList() {
639 testYangSchemaNodeProvider.processSchemaRegistry(null);
640 DefaultYangSchemaRegistry schemaRegistry =
641 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
642 List<Object> yangModuleList = new ArrayList<>();
643
644 // Creating the object
645 PathId pathId = new PathId(123);
646 Origin origin = new DefaultOrigin.OriginBuilder().value(pathId)
647 .build();
648 MultiExitDisc multiExitDisc = new DefaultMultiExitDisc
649 .MultiExitDiscBuilder().med(456).build();
650 LocalPref localPref = new DefaultLocalPref.LocalPrefBuilder()
651 .pref(23).build();
652 Metric metric = new Metric(456);
653 AigpTlv aigpTlv = new DefaultAigpTlv.AigpTlvBuilder().metric(metric)
654 .build();
655 Aigp aigp = new DefaultAigp.AigpBuilder().aigpTlv(aigpTlv).build();
656
657 UnrecognizedAttributes unrecognizedAttributes1 =
658 new DefaultUnrecognizedAttributes
659 .UnrecognizedAttributesBuilder()
660 .partial(false).transitive(false).type((short) 1)
661 .value("ABC".getBytes()).build();
662
663 UnrecognizedAttributes unrecognizedAttributes2 =
664 new DefaultUnrecognizedAttributes
665 .UnrecognizedAttributesBuilder()
666 .partial(true).transitive(true).type((short) 2)
667 .value("ABC".getBytes())
668 .build();
669
670 UnrecognizedAttributes unrecognizedAttributes3 =
671 new DefaultUnrecognizedAttributes
672 .UnrecognizedAttributesBuilder()
673 .partial(true).transitive(false).type((short) 3)
674 .value("ABC".getBytes())
675 .build();
676
677 UnrecognizedAttributes unrecognizedAttributes4 =
678 new DefaultUnrecognizedAttributes
679 .UnrecognizedAttributesBuilder()
680 .partial(false).transitive(true).type((short) 4)
681 .value("ABC".getBytes()).build();
682
683 AsNum asNum1 = new AsNum(11);
684 As4BytesCapability as4BytesCapability1 =
685 new DefaultAs4BytesCapability.As4BytesCapabilityBuilder()
686 .asNumber(asNum1).build();
687 Cparameters cparameters1 = new DefaultCparameters.CparametersBuilder()
688 .as4BytesCapability(as4BytesCapability1)
689 .build();
690 OptionalCapabilities optionalCapabilities1 =
691 new DefaultOptionalCapabilities.OptionalCapabilitiesBuilder()
692 .cParameters(cparameters1).build();
693
694 AsNum asNum2 = new AsNum(22);
695 As4BytesCapability as4BytesCapability2 =
696 new DefaultAs4BytesCapability.As4BytesCapabilityBuilder()
697 .asNumber(asNum2).build();
698 Cparameters cparameters2 = new DefaultCparameters.CparametersBuilder()
699 .as4BytesCapability(as4BytesCapability2)
700 .build();
701 OptionalCapabilities optionalCapabilities2 =
702 new DefaultOptionalCapabilities.OptionalCapabilitiesBuilder()
703 .cParameters(cparameters2).build();
704
705 AsNum asNum3 = new AsNum(33);
706 As4BytesCapability as4BytesCapability3 =
707 new DefaultAs4BytesCapability.As4BytesCapabilityBuilder()
708 .asNumber(asNum3).build();
709 Cparameters cparameters3 = new DefaultCparameters.CparametersBuilder()
710 .as4BytesCapability(as4BytesCapability3)
711 .build();
712 OptionalCapabilities optionalCapabilities3 =
713 new DefaultOptionalCapabilities.OptionalCapabilitiesBuilder()
714 .cParameters(cparameters3).build();
715
716 BgpParameters bgpParameters1 =
717 new DefaultBgpParameters.BgpParametersBuilder()
718 .addToOptionalCapabilities(optionalCapabilities1)
719 .addToOptionalCapabilities(optionalCapabilities2)
720 .addToOptionalCapabilities(optionalCapabilities3)
721 .build();
722
723 AsNum asNum4 = new AsNum(11);
724 As4BytesCapability as4BytesCapability4 = new DefaultAs4BytesCapability
725 .As4BytesCapabilityBuilder()
726 .asNumber(asNum4).build();
727 Cparameters cparameters4 = new DefaultCparameters.CparametersBuilder()
728 .as4BytesCapability(as4BytesCapability4)
729 .build();
730 OptionalCapabilities optionalCapabilities4 =
731 new DefaultOptionalCapabilities.OptionalCapabilitiesBuilder()
732 .cParameters(cparameters4).build();
733
734 AsNum asNum5 = new AsNum(22);
735 As4BytesCapability as4BytesCapability5 =
736 new DefaultAs4BytesCapability.As4BytesCapabilityBuilder()
737 .asNumber(asNum5).build();
738 Cparameters cparameters5 =
739 new DefaultCparameters.CparametersBuilder()
740 .as4BytesCapability(as4BytesCapability5)
741 .build();
742 OptionalCapabilities optionalCapabilities5 =
743 new DefaultOptionalCapabilities.OptionalCapabilitiesBuilder()
744 .cParameters(cparameters5).build();
745
746 AsNum asNum6 = new AsNum(33);
747 As4BytesCapability as4BytesCapability6 =
748 new DefaultAs4BytesCapability.As4BytesCapabilityBuilder()
749 .asNumber(asNum6).build();
750 Cparameters cparameters6 =
751 new DefaultCparameters.CparametersBuilder()
752 .as4BytesCapability(as4BytesCapability6)
753 .build();
754 OptionalCapabilities optionalCapabilities6 =
755 new DefaultOptionalCapabilities.OptionalCapabilitiesBuilder()
756 .cParameters(cparameters6).build();
757
758 BgpParameters bgpParameters2 =
759 new DefaultBgpParameters.BgpParametersBuilder()
760 .addToOptionalCapabilities(optionalCapabilities4)
761 .addToOptionalCapabilities(optionalCapabilities5)
762 .addToOptionalCapabilities(optionalCapabilities6)
763 .build();
764
765 Attributes attributes = new DefaultAttributes.AttributesBuilder()
766 .origin(origin)
767 .multiExitDisc(multiExitDisc)
768 .localPref(localPref)
769 .aigp(aigp)
770 .addToUnrecognizedAttributes(unrecognizedAttributes1)
771 .addToUnrecognizedAttributes(unrecognizedAttributes2)
772 .addToUnrecognizedAttributes(unrecognizedAttributes3)
773 .addToUnrecognizedAttributes(unrecognizedAttributes4)
774 .addToBgpParameters(bgpParameters1)
775 .addToBgpParameters(bgpParameters2).build();
776 Object object = CombinedOpParam.builder().attributes(attributes)
777 .build();
778
779 yangModuleList.add(object);
780
781 // Get the xml string and compare
782 Map<String, String> tagAttr = new HashMap<String, String>();
783 tagAttr.put("type", "subtree");
784
785 YangCodecRegistry.initializeDefaultCodec();
786 DefaultYangCodecHandler codecHandler =
787 new DefaultYangCodecHandler(schemaRegistry);
788 String xml = codecHandler.encodeOperation("filter", "ydt.filter-type",
789 tagAttr, yangModuleList,
790 XML, null);
791 assertEquals(AM_XML + "combined: list info", listTestXml(), xml);
792 }
793
sonu guptaeff184b2016-11-24 12:43:49 +0530794 //TODO negative scenario will be handled later
795// /**
796// * Unit test case in which verifying xml string for module object with
797// * container.
798// */
799// @Test
800// public void proceessCodecHandlerForContainer() {
801// testYangSchemaNodeProvider.processSchemaRegistry(null);
802// DefaultYangSchemaRegistry schemaRegistry =
803// testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
804// List<Object> yangModuleList = new ArrayList<>();
805//
806// // Creating the object
807// YchPurchasingSupervisor supervisor =
808// new DefaultYchPurchasingSupervisor
809// .YchPurchasingSupervisorBuilder()
810// .ychPurchasingSpecialist("purchasingSpecialist")
811// .ychPurchasingSupport("support")
812// .yangYchPurchasingSupervisorOpType(CREATE).build();
813// Object object = YchPurchasingsupervisorOpParam.builder()
814// .ychPurchasingSupervisor(supervisor).build();
815// yangModuleList.add(object);
816//
817// // Get the xml string and compare
818// Map<String, String> tagAttr = new HashMap<String, String>();
819// tagAttr.put("type", "subtree");
820//
821// YangCodecRegistry.initializeDefaultCodec();
822// DefaultYangCodecHandler codecHandler =
823// new DefaultYangCodecHandler(schemaRegistry);
824// String xml = codecHandler.encodeOperation("filter", "ydt.filter-type",
825// tagAttr, yangModuleList,
826// XML, null);
827// assertEquals(AM_XML + "puchas-super: container info", purchaseXml(),
828// xml);
829// }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530830
sonu guptaeff184b2016-11-24 12:43:49 +0530831// /**
832// * Unit test case in which verifying xml string for module object with
833// * leaf list.
834// */
835// @Test
836// public void proceessCodecHandlerForLeafList() {
837// testYangSchemaNodeProvider.processSchemaRegistry(null);
838// DefaultYangSchemaRegistry schemaRegistry =
839// testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
840// List<Object> yangModuleList = new ArrayList<>();
841//
842// // Creating the object
843// EmployeeidOpParam.EmployeeidBuilder employeeidBuilder =
844// EmployeeidOpParam.builder();
845// employeeidBuilder.addToEmployeeid("Employ1");
846// employeeidBuilder.addToEmployeeid("Employ2");
847// employeeidBuilder.addToEmployeeid("Employ3");
848// employeeidBuilder.addToEmployeeid("Employ4");
849// employeeidBuilder.addToEmployeeid("Employ5");
850//
851// Object object = employeeidBuilder.build();
852// yangModuleList.add(object);
853//
854// // Get the xml string and compare
855// YangCodecRegistry.initializeDefaultCodec();
856// DefaultYangCodecHandler codecHandler =
857// new DefaultYangCodecHandler(schemaRegistry);
858// String xml = codecHandler.encodeOperation("config", "ydt.root", null,
859// yangModuleList, XML, null);
860// assertEquals(AM_XML + "employ-id: leaf-list info", emplyIdXml(), xml);
861// WarehousesupervisorOpParam.WarehousesupervisorBuilder warehsebldr =
862// WarehousesupervisorOpParam.builder();
863// warehsebldr.addToSupervisor("supervisor1");
864// warehsebldr.addToSupervisor("supervisor2");
865// warehsebldr.addToSupervisor("supervisor3");
866// warehsebldr.addToSupervisor("supervisor4");
867// warehsebldr.addToSupervisor("supervisor5");
868//
869// object = warehsebldr.build();
870// yangModuleList.clear();
871// yangModuleList.add(object);
872//
873//
874// // Get the xml string and compare
875// xml = codecHandler.encodeOperation("config", "ydt.root", null,
876// yangModuleList, XML, null);
877//
878// assertEquals(AM_XML + "warehouse-super: leaf-list info", wareHseXml(),
879// xml);
880// }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530881
sonu guptaeff184b2016-11-24 12:43:49 +0530882// /**
883// * Unit test case in which verifying xml string for multiple module object.
884// */
885// @Test
886// public void proceessCodecHandlerForMultipleModule() {
887// testYangSchemaNodeProvider.processSchemaRegistry(null);
888// DefaultYangSchemaRegistry schemaRegistry =
889// testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
890//
891// List<Object> yangModuleList = new ArrayList<>();
892// YangCodecRegistry.initializeDefaultCodec();
893// DefaultYangCodecHandler codecHandler =
894// new DefaultYangCodecHandler(schemaRegistry);
895//
896// // Creating the object for customssupervisor module
897// Object object = CustomssupervisorOpParam.builder()
898// .supervisor("Customssupervisor").build();
899// yangModuleList.add(object);
900//
901// // Creating the object for merchandisersupervisor module
902// object = MerchandisersupervisorOpParam.builder()
903// .supervisor("Merchandisersupervisor").build();
904// yangModuleList.add(object);
905//
906// // Creating the object for materialsupervisor module
907// Supervisor supervisor1 = new DefaultSupervisor.SupervisorBuilder()
908// .name("abc1").departmentId("xyz1").build();
909// Supervisor supervisor2 = new DefaultSupervisor.SupervisorBuilder()
910// .name("abc2").departmentId("xyz2").build();
911// Supervisor supervisor3 = new DefaultSupervisor.SupervisorBuilder()
912// .name("abc3").departmentId("xyz3").build();
913// Supervisor supervisor4 = new DefaultSupervisor.SupervisorBuilder()
914// .name("abc4").departmentId("xyz4").build();
915// Supervisor supervisor5 = new DefaultSupervisor.SupervisorBuilder()
916// .name("abc5").departmentId("xyz5").build();
917//
918// object = MaterialsupervisorOpParam.builder()
919// .addToSupervisor(supervisor1)
920// .addToSupervisor(supervisor2)
921// .addToSupervisor(supervisor3)
922// .addToSupervisor(supervisor4)
923// .addToSupervisor(supervisor5).build();
924//
925// yangModuleList.add(object);
926//
927// // Creating the object for YchPurchasingsupervisor module
928// YchPurchasingSupervisor purSupervisor =
929// new DefaultYchPurchasingSupervisor
930// .YchPurchasingSupervisorBuilder()
931// .ychPurchasingSpecialist("purchasingSpecialist")
932// .ychPurchasingSupport("support").build();
933// object = YchPurchasingsupervisorOpParam.builder()
934// .ychPurchasingSupervisor(purSupervisor).build();
935// yangModuleList.add(object);
936//
937// // Creating the object for warehousesupervisor module
938// WarehousesupervisorOpParam.WarehousesupervisorBuilder warehsebldr =
939// WarehousesupervisorOpParam.builder();
940// warehsebldr.addToSupervisor("supervisor1");
941// warehsebldr.addToSupervisor("supervisor2");
942// warehsebldr.addToSupervisor("supervisor3");
943// warehsebldr.addToSupervisor("supervisor4");
944// warehsebldr.addToSupervisor("supervisor5");
945//
946// object = warehsebldr.build();
947// yangModuleList.add(object);
948//
949// // Creating the object for tradingsupervisor module
950// object = TradingsupervisorOpParam.builder()
951// .supervisor("Tradingsupervisor").build();
952// yangModuleList.add(object);
953//
954// List<String> employeeid = EmployeeidOpParam.builder().employeeid();
955// if (employeeid == null) {
956// employeeid = new ArrayList<>();
957// }
958// employeeid.add("Employ1");
959// employeeid.add("Employ2");
960// employeeid.add("Employ3");
961// employeeid.add("Employ4");
962// employeeid.add("Employ5");
963//
964// // Creating the object for employeeid module
965// object = EmployeeidOpParam.builder().employeeid(employeeid).build();
966// yangModuleList.add(object);
967//
968// // Get the xml string and compare
969// String xml = codecHandler.encodeOperation("config", "ydt.root", null,
970// yangModuleList, XML, null);
971// assertEquals(AM_XML + "multiple: module info", multiModuleXml(), xml);
972// }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530973
974 /**
975 * Unit test case in which verifying object for xml string with config as
976 * root name and empty container.
977 */
978 @Test
979 public void proceessCodecDecodeFunctionForEmptyContainer() {
980 String path = "src/test/resources/ychTestResourceFiles/getconfigemptycontainer.xml";
981 StringBuilder sb = new StringBuilder();
982 String sCurrentLine;
983 testYangSchemaNodeProvider.processSchemaRegistry(null);
984 DefaultYangSchemaRegistry schemaRegistry =
985 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
986
987 YangCodecRegistry.initializeDefaultCodec();
988 DefaultYangCodecHandler defaultYangCodecHandler =
989 new DefaultYangCodecHandler(schemaRegistry);
990
991 try (BufferedReader br = new BufferedReader(new FileReader(path))) {
992
993 while ((sCurrentLine = br.readLine()) != null) {
994 sb.append(sCurrentLine);
995 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530996 } catch (IOException e) {
997 e.printStackTrace();
998 }
999
1000 // Verify the received object list
1001 List<Object> objectList =
1002 defaultYangCodecHandler.decode(sb.toString(),
1003 XML, QUERY_CONFIG_REQUEST);
1004 Iterator<Object> iterator = objectList.iterator();
1005 while (iterator.hasNext()) {
1006 Object object = iterator.next();
1007 if (object.getClass().getSimpleName()
1008 .equals(EMPTY_CONTAINER)) {
1009 EmptyContainerOpParam emptyContainerOpParam =
1010 (EmptyContainerOpParam) object;
1011 assertNull(AM_OBJ + "empty-container: container value is not" +
sonu guptaeff184b2016-11-24 12:43:49 +05301012 "null",
1013 emptyContainerOpParam.emptyContainer());
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301014 } else {
1015 assertEquals(AM_OBJ, EMPTY_CONTAINER, object
1016 .getClass().getSimpleName());
1017 }
1018 }
1019 }
1020
1021
1022 /**
1023 * Unit test case in which verifying object for xml string with config as
1024 * root name and multiple module.
1025 */
1026 @Test
1027 public void proceessCodecDecodeFunctionForListInsideList() {
1028 String path = "src/test/resources/ychTestResourceFiles/combinedrootname.xml";
1029 StringBuilder sb = new StringBuilder();
1030 String sCurrentLine;
1031 testYangSchemaNodeProvider.processSchemaRegistry(null);
1032 DefaultYangSchemaRegistry schemaRegistry =
1033 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
1034
1035 YangCodecRegistry.initializeDefaultCodec();
1036 DefaultYangCodecHandler defaultYangCodecHandler =
1037 new DefaultYangCodecHandler(schemaRegistry);
1038
1039 try (BufferedReader br = new BufferedReader(new FileReader(path))) {
1040
1041 while ((sCurrentLine = br.readLine()) != null) {
1042 sb.append(sCurrentLine);
1043 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301044 } catch (IOException e) {
1045 e.printStackTrace();
1046 }
1047
1048 // TODO YOB and YTB need to do some changes for binary
1049 // Verify the received object list
1050 /*objectList = defaultYangCodecHandler.decode(sb.toString(),
1051 XML_ENCODING,
1052 EDIT_CONFIG_REQUEST);
1053 Iterator<Object> iterator = objectList.iterator();
1054 while (iterator.hasNext()) {
1055 Object object = iterator.next();
1056 if (object.getClass().getSimpleName().equals("CombinedOpParam")) {
1057 CombinedOpParam combinedOpParam = (CombinedOpParam) object;
1058
1059 PathId pathId = new PathId(123);
1060 Origin origin = new DefaultOrigin.OriginBuilder()
1061 .value(pathId).build();
1062 assertTrue(combinedOpParam.attributes().origin()
1063 .equals(origin));
1064
1065 MultiExitDisc multiExitDisc = new DefaultMultiExitDisc
1066 .MultiExitDiscBuilder().med(456).build();
1067 assertTrue(combinedOpParam.attributes().multiExitDisc()
1068 .equals(multiExitDisc));
1069
1070 LocalPref localPref = new DefaultLocalPref.LocalPrefBuilder()
1071 .pref(23).build();
1072 assertTrue(combinedOpParam.attributes().localPref()
1073 .equals(localPref));
1074
1075 Metric metric = new Metric(456);
1076 AigpTlv aigpTlv = new DefaultAigpTlv.AigpTlvBuilder()
1077 .metric(metric).build();
1078 Aigp aigp = new DefaultAigp.AigpBuilder().aigpTlv(aigpTlv)
1079 .build();
1080 assertTrue(combinedOpParam.attributes().aigp().equals(aigp));
1081
1082 UnrecognizedAttributes unrecognizedAttributes1 =
1083 new DefaultUnrecognizedAttributes
1084 .UnrecognizedAttributesBuilder()
1085 .partial(false).transitive(false).type((short) 1)
1086 .value("ABC".getBytes()).build();
1087
1088 UnrecognizedAttributes unrecognizedAttributes2 =
1089 new DefaultUnrecognizedAttributes
1090 .UnrecognizedAttributesBuilder()
1091 .partial(true).transitive(true).type((short) 2)
1092 .value("BCA".getBytes()).build();
1093
1094 UnrecognizedAttributes unrecognizedAttributes3 =
1095 new DefaultUnrecognizedAttributes
1096 .UnrecognizedAttributesBuilder()
1097 .partial(true).transitive(false).type((short) 3)
1098 .value("CAB".getBytes()).build();
1099
1100 UnrecognizedAttributes unrecognizedAttributes4 =
1101 new DefaultUnrecognizedAttributes
1102 .UnrecognizedAttributesBuilder()
1103 .partial(false).transitive(true).type((short) 4)
1104 .value("111".getBytes()).build();
1105
1106 AsNum asNum1 = new AsNum(11);
1107 As4BytesCapability as4BytesCapability1 =
1108 new DefaultAs4BytesCapability
1109 .As4BytesCapabilityBuilder()
1110 .asNumber(asNum1).build();
1111 Cparameters cparameters1 = new DefaultCparameters
1112 .CparametersBuilder()
1113 .as4BytesCapability(as4BytesCapability1)
1114 .build();
1115 OptionalCapabilities optionalCapabilities1 =
1116 new DefaultOptionalCapabilities
1117 .OptionalCapabilitiesBuilder()
1118 .cParameters(cparameters1).build();
1119
1120 AsNum asNum2 = new AsNum(22);
1121 As4BytesCapability as4BytesCapability2 =
1122 new DefaultAs4BytesCapability
1123 .As4BytesCapabilityBuilder()
1124 .asNumber(asNum2).build();
1125 Cparameters cparameters2 = new DefaultCparameters
1126 .CparametersBuilder()
1127 .as4BytesCapability(as4BytesCapability2)
1128 .build();
1129 OptionalCapabilities optionalCapabilities2 =
1130 new DefaultOptionalCapabilities
1131 .OptionalCapabilitiesBuilder()
1132 .cParameters(cparameters2).build();
1133
1134 AsNum asNum3 = new AsNum(33);
1135 As4BytesCapability as4BytesCapability3 =
1136 new DefaultAs4BytesCapability
1137 .As4BytesCapabilityBuilder()
1138 .asNumber(asNum3).build();
1139 Cparameters cparameters3 =
1140 new DefaultCparameters.CparametersBuilder()
1141 .as4BytesCapability(as4BytesCapability3)
1142 .build();
1143 OptionalCapabilities optionalCapabilities3 =
1144 new DefaultOptionalCapabilities
1145 .OptionalCapabilitiesBuilder()
1146 .cParameters(cparameters3).build();
1147
1148 BgpParameters bgpParameters1 =
1149 new DefaultBgpParameters.BgpParametersBuilder()
1150 .addToOptionalCapabilities(optionalCapabilities1)
1151 .addToOptionalCapabilities(optionalCapabilities2)
1152 .addToOptionalCapabilities(optionalCapabilities3)
1153 .build();
1154
1155 AsNum asNum4 = new AsNum(11);
1156 As4BytesCapability as4BytesCapability4 =
1157 new DefaultAs4BytesCapability
1158 .As4BytesCapabilityBuilder()
1159 .asNumber(asNum4).build();
1160 Cparameters cparameters4 =
1161 new DefaultCparameters.CparametersBuilder()
1162 .as4BytesCapability(as4BytesCapability4)
1163 .build();
1164 OptionalCapabilities optionalCapabilities4 =
1165 new DefaultOptionalCapabilities
1166 .OptionalCapabilitiesBuilder()
1167 .cParameters(cparameters4).build();
1168
1169 AsNum asNum5 = new AsNum(22);
1170 As4BytesCapability as4BytesCapability5 =
1171 new DefaultAs4BytesCapability
1172 .As4BytesCapabilityBuilder()
1173 .asNumber(asNum5).build();
1174 Cparameters cparameters5 =
1175 new DefaultCparameters.CparametersBuilder()
1176 .as4BytesCapability(as4BytesCapability5)
1177 .build();
1178 OptionalCapabilities optionalCapabilities5 =
1179 new DefaultOptionalCapabilities
1180 .OptionalCapabilitiesBuilder()
1181 .cParameters(cparameters5).build();
1182
1183 AsNum asNum6 = new AsNum(33);
1184 As4BytesCapability as4BytesCapability6 =
1185 new DefaultAs4BytesCapability
1186 .As4BytesCapabilityBuilder()
1187 .asNumber(asNum6).build();
1188 Cparameters cparameters6 =
1189 new DefaultCparameters.CparametersBuilder()
1190 .as4BytesCapability(as4BytesCapability6)
1191 .build();
1192 OptionalCapabilities optionalCapabilities6 =
1193 new DefaultOptionalCapabilities
1194 .OptionalCapabilitiesBuilder()
1195 .cParameters(cparameters6).build();
1196
1197 BgpParameters bgpParameters2 =
1198 new DefaultBgpParameters.BgpParametersBuilder()
1199 .addToOptionalCapabilities(optionalCapabilities4)
1200 .addToOptionalCapabilities(optionalCapabilities5)
1201 .addToOptionalCapabilities(optionalCapabilities6)
1202 .build();
1203
1204 Attributes attributes =
1205 new DefaultAttributes.AttributesBuilder()
1206 .origin(origin)
1207 .multiExitDisc(multiExitDisc)
1208 .localPref(localPref)
1209 .aigp(aigp)
1210 .addToUnrecognizedAttributes(unrecognizedAttributes1)
1211 .addToUnrecognizedAttributes(unrecognizedAttributes2)
1212 .addToUnrecognizedAttributes(unrecognizedAttributes3)
1213 .addToUnrecognizedAttributes(unrecognizedAttributes4)
1214 .addToBgpParameters(bgpParameters1)
1215 .addToBgpParameters(bgpParameters2).build();
1216 } else {
1217 assertTrue(false);
1218 }
1219 }*/
1220 }
1221
sonu guptaeff184b2016-11-24 12:43:49 +05301222// /**
1223// * Unit test case in which verifying object for xml string with config as root name and
1224// * operation type.
1225// */
1226// @Test
1227// public void proceessCodecDecodeFunctionForOperTypeTest() {
1228// String path = "src/test/resources/ychTestResourceFiles/configrootnameOperationType.xml";
1229// testYangSchemaNodeProvider.processSchemaRegistry(null);
1230// DefaultYangSchemaRegistry schemaRegistry =
1231// testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
1232//
1233// YangCodecRegistry.initializeDefaultCodec();
1234// DefaultYangCodecHandler defaultYangCodecHandler =
1235// new DefaultYangCodecHandler(schemaRegistry);
1236//
1237// StringBuilder sb = new StringBuilder();
1238// String sCurrentLine;
1239//
1240// try (BufferedReader br = new BufferedReader(new FileReader(path))) {
1241//
1242// while ((sCurrentLine = br.readLine()) != null) {
1243// sb.append(sCurrentLine);
1244// }
1245//
1246// } catch (IOException e) {
1247// e.printStackTrace();
1248// }
1249//
1250// // Verify the received object list
1251// List<Object> objectList =
1252// defaultYangCodecHandler.decode(sb.toString(),
1253// XML, EDIT_CONFIG_REQUEST);
1254// Iterator<Object> iterator = objectList.iterator();
1255// while (iterator.hasNext()) {
1256// Object object = iterator.next();
1257// if (object.getClass().getSimpleName()
1258// .equals(LOGISTIC_MOD)) {
1259// LogisticsManagerOpParam logistics =
1260// (LogisticsManagerOpParam) object;
1261// DefaultPurchasingSupervisor purchasingSupervisor =
1262// (DefaultPurchasingSupervisor) logistics
1263// .purchasingSupervisor();
1264//
1265// assertEquals(AM_OBJ + "purchase-super: operation type", DELETE,
1266// purchasingSupervisor.yangPurchasingSupervisorOpType());
1267// assertEquals(AM_OBJ + "customs-super: leaf value", "abc",
1268// logistics.customsSupervisor());
1269// assertEquals(AM_OBJ + "purchase-spec: leaf value", "bcd",
1270// logistics.purchasingSupervisor()
1271// .purchasingSpecialist());
1272// assertEquals(AM_OBJ + "purchase-support: leaf value",
1273// "cde", logistics.purchasingSupervisor()
1274// .support());
1275//
1276// } else if (object.getClass().getSimpleName()
1277// .equals(MERCHA_MOD)) {
1278// MerchandisersupervisorOpParam merchandisersupervisorOpParam =
1279// (MerchandisersupervisorOpParam) object;
1280// assertEquals(AM_OBJ + "merchandiser-super: leaf value",
1281// "abc", merchandisersupervisorOpParam.supervisor());
1282// } else {
1283// assertEquals(AM_OBJ, LOGISTIC_MOD, object
1284// .getClass().getSimpleName());
1285// assertEquals(AM_OBJ, MERCHA_MOD, object
1286// .getClass().getSimpleName());
1287// }
1288// }
1289// }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301290
1291 /**
1292 * Validate the leaf value for purchasing specialist.
1293 *
1294 * @param objectList object list
1295 */
1296 private void processPurchasingSpecObj(List<Object> objectList) {
1297 Iterator<Object> iterator = objectList.iterator();
1298 while (iterator.hasNext()) {
1299 Object object = iterator.next();
1300 if (object.getClass().getSimpleName()
1301 .equals("LogisticsManagerOpParam")) {
1302 LogisticsManagerOpParam logisticsManagerOpParam =
1303 (LogisticsManagerOpParam) object;
1304 assertEquals(AM_OBJ + "purchasing-spec: leaf value", "bcd",
1305 logisticsManagerOpParam.purchasingSupervisor()
1306 .purchasingSpecialist());
1307 } else {
1308 assertEquals(AM_OBJ, "LogisticsManagerOpParam", object
1309 .getClass().getSimpleName());
1310 }
1311 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301312 }
1313
1314 /**
1315 * Validate the leaf value for merchandiser supervisor.
1316 *
1317 * @param objectList object list
1318 */
1319 private void processMerchandiserObj(List<Object> objectList) {
1320 Iterator<Object> iterator = objectList.iterator();
1321 while (iterator.hasNext()) {
1322 Object object = iterator.next();
1323 if (object.getClass().getSimpleName()
1324 .equals(MERCHA_MOD)) {
1325 MerchandisersupervisorOpParam merchandisersupervisorOpParam =
1326 (MerchandisersupervisorOpParam) object;
1327 assertEquals(AM_OBJ + "merchandiser-super: leaf value", "abc",
1328 merchandisersupervisorOpParam.supervisor());
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301329 } else {
1330 assertEquals(AM_OBJ, MERCHA_MOD, object
1331 .getClass().getSimpleName());
1332 }
1333 }
1334 }
1335
1336 /**
1337 * Unit test case in which verifying object for xml string with get and
1338 * filter as root name.
1339 */
1340 @Test
1341 public void proceessCodecDecodeFunctionForGet() {
1342 String path = "src/test/resources/ychTestResourceFiles/getrootname.xml";
1343 testYangSchemaNodeProvider.processSchemaRegistry(null);
1344 DefaultYangSchemaRegistry schemaRegistry =
1345 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
1346
1347 YangCodecRegistry.initializeDefaultCodec();
1348 DefaultYangCodecHandler defaultYangCodecHandler =
1349 new DefaultYangCodecHandler(schemaRegistry);
1350
1351 StringBuilder sb = new StringBuilder();
1352 String sCurrentLine;
1353
1354 try (BufferedReader br = new BufferedReader(new FileReader(path))) {
1355
1356 while ((sCurrentLine = br.readLine()) != null) {
1357 sb.append(sCurrentLine);
1358 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301359 } catch (IOException e) {
1360 e.printStackTrace();
1361 }
1362
1363 // Verify the received object list
1364 List<Object> objectList =
1365 defaultYangCodecHandler.decode(sb.toString(),
1366 XML, QUERY_REQUEST);
1367 processPurchasingSpecObj(objectList);
1368 }
1369
1370 /**
1371 * Unit test case in which verifying object for xml string with get-config
1372 * and filter as root name.
1373 */
1374 @Test
1375 public void proceessCodecDecodeFunctionForGetConfig() {
1376 String path = "src/test/resources/ychTestResourceFiles/getconfigrootname.xml";
1377 testYangSchemaNodeProvider.processSchemaRegistry(null);
1378 DefaultYangSchemaRegistry schemaRegistry =
1379 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
1380
1381 YangCodecRegistry.initializeDefaultCodec();
1382 DefaultYangCodecHandler defaultYangCodecHandler =
1383 new DefaultYangCodecHandler(schemaRegistry);
1384
1385 StringBuilder sb = new StringBuilder();
1386 String sCurrentLine;
1387
1388 try (BufferedReader br = new BufferedReader(new FileReader(path))) {
1389
1390 while ((sCurrentLine = br.readLine()) != null) {
1391 sb.append(sCurrentLine);
1392 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301393 } catch (IOException e) {
1394 e.printStackTrace();
1395 }
1396
1397 // Verify the received object list
1398 List<Object> objectList = defaultYangCodecHandler.decode(
1399 sb.toString(),
1400 XML, QUERY_CONFIG_REQUEST);
1401 processMerchandiserObj(objectList);
1402 }
1403
1404 /**
1405 * Unit test case in which verifying object for xml string with data as
1406 * root name.
1407 */
1408 @Test
1409 public void proceessCodecDecodeFunctionForGetData() {
1410 String path = "src/test/resources/ychTestResourceFiles/getReply.xml";
1411 testYangSchemaNodeProvider.processSchemaRegistry(null);
1412 DefaultYangSchemaRegistry schemaRegistry =
1413 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
1414
1415 YangCodecRegistry.initializeDefaultCodec();
1416 DefaultYangCodecHandler defaultYangCodecHandler =
1417 new DefaultYangCodecHandler(schemaRegistry);
1418
1419 StringBuilder sb = new StringBuilder();
1420 String sCurrentLine;
1421
1422 try (BufferedReader br = new BufferedReader(new FileReader(path))) {
1423
1424 while ((sCurrentLine = br.readLine()) != null) {
1425 sb.append(sCurrentLine);
1426 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301427 } catch (IOException e) {
1428 e.printStackTrace();
1429 }
1430
1431 // Verify the received object list
1432 List<Object> objectList = defaultYangCodecHandler.decode(
1433 sb.toString(),
1434 XML, QUERY_CONFIG_REQUEST);
1435 processPurchasingSpecObj(objectList);
1436 }
1437
1438 /**
1439 * Unit test case in which verifying object for xml string with rpc-reply
1440 * and data as root name .
1441 */
1442 @Test
1443 public void proceessCodecDecodeFunctionForGetConfigData() {
1444 String path = "src/test/resources/ychTestResourceFiles/getconfigReply.xml";
1445 testYangSchemaNodeProvider.processSchemaRegistry(null);
1446 DefaultYangSchemaRegistry schemaRegistry =
1447 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
1448
1449 YangCodecRegistry.initializeDefaultCodec();
1450 DefaultYangCodecHandler defaultYangCodecHandler =
1451 new DefaultYangCodecHandler(schemaRegistry);
1452
1453 StringBuilder sb = new StringBuilder();
1454 String sCurrentLine;
1455
1456 try (BufferedReader br = new BufferedReader(new FileReader(path))) {
1457
1458 while ((sCurrentLine = br.readLine()) != null) {
1459 sb.append(sCurrentLine);
1460 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301461 } catch (IOException e) {
1462 e.printStackTrace();
1463 }
1464
1465 // Verify the received object list
1466 List<Object> objectList = defaultYangCodecHandler.decode(sb.toString(),
1467 XML, null);
1468 processMerchandiserObj(objectList);
1469 }
1470}