blob: 7cb5a9caeb0dce9263d7637d21a40d5523bd2445 [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
Shankara-Huaweid5823ab2016-11-22 10:14:52 +0530976 * root name and multiple module.
977 */
978 @Test
979 public void proceessCodecDecodeFunctionForListInsideList() {
980 String path = "src/test/resources/ychTestResourceFiles/combinedrootname.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 // TODO YOB and YTB need to do some changes for binary
1001 // Verify the received object list
1002 /*objectList = defaultYangCodecHandler.decode(sb.toString(),
1003 XML_ENCODING,
1004 EDIT_CONFIG_REQUEST);
1005 Iterator<Object> iterator = objectList.iterator();
1006 while (iterator.hasNext()) {
1007 Object object = iterator.next();
1008 if (object.getClass().getSimpleName().equals("CombinedOpParam")) {
1009 CombinedOpParam combinedOpParam = (CombinedOpParam) object;
1010
1011 PathId pathId = new PathId(123);
1012 Origin origin = new DefaultOrigin.OriginBuilder()
1013 .value(pathId).build();
1014 assertTrue(combinedOpParam.attributes().origin()
1015 .equals(origin));
1016
1017 MultiExitDisc multiExitDisc = new DefaultMultiExitDisc
1018 .MultiExitDiscBuilder().med(456).build();
1019 assertTrue(combinedOpParam.attributes().multiExitDisc()
1020 .equals(multiExitDisc));
1021
1022 LocalPref localPref = new DefaultLocalPref.LocalPrefBuilder()
1023 .pref(23).build();
1024 assertTrue(combinedOpParam.attributes().localPref()
1025 .equals(localPref));
1026
1027 Metric metric = new Metric(456);
1028 AigpTlv aigpTlv = new DefaultAigpTlv.AigpTlvBuilder()
1029 .metric(metric).build();
1030 Aigp aigp = new DefaultAigp.AigpBuilder().aigpTlv(aigpTlv)
1031 .build();
1032 assertTrue(combinedOpParam.attributes().aigp().equals(aigp));
1033
1034 UnrecognizedAttributes unrecognizedAttributes1 =
1035 new DefaultUnrecognizedAttributes
1036 .UnrecognizedAttributesBuilder()
1037 .partial(false).transitive(false).type((short) 1)
1038 .value("ABC".getBytes()).build();
1039
1040 UnrecognizedAttributes unrecognizedAttributes2 =
1041 new DefaultUnrecognizedAttributes
1042 .UnrecognizedAttributesBuilder()
1043 .partial(true).transitive(true).type((short) 2)
1044 .value("BCA".getBytes()).build();
1045
1046 UnrecognizedAttributes unrecognizedAttributes3 =
1047 new DefaultUnrecognizedAttributes
1048 .UnrecognizedAttributesBuilder()
1049 .partial(true).transitive(false).type((short) 3)
1050 .value("CAB".getBytes()).build();
1051
1052 UnrecognizedAttributes unrecognizedAttributes4 =
1053 new DefaultUnrecognizedAttributes
1054 .UnrecognizedAttributesBuilder()
1055 .partial(false).transitive(true).type((short) 4)
1056 .value("111".getBytes()).build();
1057
1058 AsNum asNum1 = new AsNum(11);
1059 As4BytesCapability as4BytesCapability1 =
1060 new DefaultAs4BytesCapability
1061 .As4BytesCapabilityBuilder()
1062 .asNumber(asNum1).build();
1063 Cparameters cparameters1 = new DefaultCparameters
1064 .CparametersBuilder()
1065 .as4BytesCapability(as4BytesCapability1)
1066 .build();
1067 OptionalCapabilities optionalCapabilities1 =
1068 new DefaultOptionalCapabilities
1069 .OptionalCapabilitiesBuilder()
1070 .cParameters(cparameters1).build();
1071
1072 AsNum asNum2 = new AsNum(22);
1073 As4BytesCapability as4BytesCapability2 =
1074 new DefaultAs4BytesCapability
1075 .As4BytesCapabilityBuilder()
1076 .asNumber(asNum2).build();
1077 Cparameters cparameters2 = new DefaultCparameters
1078 .CparametersBuilder()
1079 .as4BytesCapability(as4BytesCapability2)
1080 .build();
1081 OptionalCapabilities optionalCapabilities2 =
1082 new DefaultOptionalCapabilities
1083 .OptionalCapabilitiesBuilder()
1084 .cParameters(cparameters2).build();
1085
1086 AsNum asNum3 = new AsNum(33);
1087 As4BytesCapability as4BytesCapability3 =
1088 new DefaultAs4BytesCapability
1089 .As4BytesCapabilityBuilder()
1090 .asNumber(asNum3).build();
1091 Cparameters cparameters3 =
1092 new DefaultCparameters.CparametersBuilder()
1093 .as4BytesCapability(as4BytesCapability3)
1094 .build();
1095 OptionalCapabilities optionalCapabilities3 =
1096 new DefaultOptionalCapabilities
1097 .OptionalCapabilitiesBuilder()
1098 .cParameters(cparameters3).build();
1099
1100 BgpParameters bgpParameters1 =
1101 new DefaultBgpParameters.BgpParametersBuilder()
1102 .addToOptionalCapabilities(optionalCapabilities1)
1103 .addToOptionalCapabilities(optionalCapabilities2)
1104 .addToOptionalCapabilities(optionalCapabilities3)
1105 .build();
1106
1107 AsNum asNum4 = new AsNum(11);
1108 As4BytesCapability as4BytesCapability4 =
1109 new DefaultAs4BytesCapability
1110 .As4BytesCapabilityBuilder()
1111 .asNumber(asNum4).build();
1112 Cparameters cparameters4 =
1113 new DefaultCparameters.CparametersBuilder()
1114 .as4BytesCapability(as4BytesCapability4)
1115 .build();
1116 OptionalCapabilities optionalCapabilities4 =
1117 new DefaultOptionalCapabilities
1118 .OptionalCapabilitiesBuilder()
1119 .cParameters(cparameters4).build();
1120
1121 AsNum asNum5 = new AsNum(22);
1122 As4BytesCapability as4BytesCapability5 =
1123 new DefaultAs4BytesCapability
1124 .As4BytesCapabilityBuilder()
1125 .asNumber(asNum5).build();
1126 Cparameters cparameters5 =
1127 new DefaultCparameters.CparametersBuilder()
1128 .as4BytesCapability(as4BytesCapability5)
1129 .build();
1130 OptionalCapabilities optionalCapabilities5 =
1131 new DefaultOptionalCapabilities
1132 .OptionalCapabilitiesBuilder()
1133 .cParameters(cparameters5).build();
1134
1135 AsNum asNum6 = new AsNum(33);
1136 As4BytesCapability as4BytesCapability6 =
1137 new DefaultAs4BytesCapability
1138 .As4BytesCapabilityBuilder()
1139 .asNumber(asNum6).build();
1140 Cparameters cparameters6 =
1141 new DefaultCparameters.CparametersBuilder()
1142 .as4BytesCapability(as4BytesCapability6)
1143 .build();
1144 OptionalCapabilities optionalCapabilities6 =
1145 new DefaultOptionalCapabilities
1146 .OptionalCapabilitiesBuilder()
1147 .cParameters(cparameters6).build();
1148
1149 BgpParameters bgpParameters2 =
1150 new DefaultBgpParameters.BgpParametersBuilder()
1151 .addToOptionalCapabilities(optionalCapabilities4)
1152 .addToOptionalCapabilities(optionalCapabilities5)
1153 .addToOptionalCapabilities(optionalCapabilities6)
1154 .build();
1155
1156 Attributes attributes =
1157 new DefaultAttributes.AttributesBuilder()
1158 .origin(origin)
1159 .multiExitDisc(multiExitDisc)
1160 .localPref(localPref)
1161 .aigp(aigp)
1162 .addToUnrecognizedAttributes(unrecognizedAttributes1)
1163 .addToUnrecognizedAttributes(unrecognizedAttributes2)
1164 .addToUnrecognizedAttributes(unrecognizedAttributes3)
1165 .addToUnrecognizedAttributes(unrecognizedAttributes4)
1166 .addToBgpParameters(bgpParameters1)
1167 .addToBgpParameters(bgpParameters2).build();
1168 } else {
1169 assertTrue(false);
1170 }
1171 }*/
1172 }
1173
sonu guptaeff184b2016-11-24 12:43:49 +05301174// /**
1175// * Unit test case in which verifying object for xml string with config as root name and
1176// * operation type.
1177// */
1178// @Test
1179// public void proceessCodecDecodeFunctionForOperTypeTest() {
1180// String path = "src/test/resources/ychTestResourceFiles/configrootnameOperationType.xml";
1181// testYangSchemaNodeProvider.processSchemaRegistry(null);
1182// DefaultYangSchemaRegistry schemaRegistry =
1183// testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
1184//
1185// YangCodecRegistry.initializeDefaultCodec();
1186// DefaultYangCodecHandler defaultYangCodecHandler =
1187// new DefaultYangCodecHandler(schemaRegistry);
1188//
1189// StringBuilder sb = new StringBuilder();
1190// String sCurrentLine;
1191//
1192// try (BufferedReader br = new BufferedReader(new FileReader(path))) {
1193//
1194// while ((sCurrentLine = br.readLine()) != null) {
1195// sb.append(sCurrentLine);
1196// }
1197//
1198// } catch (IOException e) {
1199// e.printStackTrace();
1200// }
1201//
1202// // Verify the received object list
1203// List<Object> objectList =
1204// defaultYangCodecHandler.decode(sb.toString(),
1205// XML, EDIT_CONFIG_REQUEST);
1206// Iterator<Object> iterator = objectList.iterator();
1207// while (iterator.hasNext()) {
1208// Object object = iterator.next();
1209// if (object.getClass().getSimpleName()
1210// .equals(LOGISTIC_MOD)) {
1211// LogisticsManagerOpParam logistics =
1212// (LogisticsManagerOpParam) object;
1213// DefaultPurchasingSupervisor purchasingSupervisor =
1214// (DefaultPurchasingSupervisor) logistics
1215// .purchasingSupervisor();
1216//
1217// assertEquals(AM_OBJ + "purchase-super: operation type", DELETE,
1218// purchasingSupervisor.yangPurchasingSupervisorOpType());
1219// assertEquals(AM_OBJ + "customs-super: leaf value", "abc",
1220// logistics.customsSupervisor());
1221// assertEquals(AM_OBJ + "purchase-spec: leaf value", "bcd",
1222// logistics.purchasingSupervisor()
1223// .purchasingSpecialist());
1224// assertEquals(AM_OBJ + "purchase-support: leaf value",
1225// "cde", logistics.purchasingSupervisor()
1226// .support());
1227//
1228// } else if (object.getClass().getSimpleName()
1229// .equals(MERCHA_MOD)) {
1230// MerchandisersupervisorOpParam merchandisersupervisorOpParam =
1231// (MerchandisersupervisorOpParam) object;
1232// assertEquals(AM_OBJ + "merchandiser-super: leaf value",
1233// "abc", merchandisersupervisorOpParam.supervisor());
1234// } else {
1235// assertEquals(AM_OBJ, LOGISTIC_MOD, object
1236// .getClass().getSimpleName());
1237// assertEquals(AM_OBJ, MERCHA_MOD, object
1238// .getClass().getSimpleName());
1239// }
1240// }
1241// }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301242
1243 /**
1244 * Validate the leaf value for purchasing specialist.
1245 *
1246 * @param objectList object list
1247 */
1248 private void processPurchasingSpecObj(List<Object> objectList) {
1249 Iterator<Object> iterator = objectList.iterator();
1250 while (iterator.hasNext()) {
1251 Object object = iterator.next();
1252 if (object.getClass().getSimpleName()
1253 .equals("LogisticsManagerOpParam")) {
1254 LogisticsManagerOpParam logisticsManagerOpParam =
1255 (LogisticsManagerOpParam) object;
1256 assertEquals(AM_OBJ + "purchasing-spec: leaf value", "bcd",
1257 logisticsManagerOpParam.purchasingSupervisor()
1258 .purchasingSpecialist());
1259 } else {
1260 assertEquals(AM_OBJ, "LogisticsManagerOpParam", object
1261 .getClass().getSimpleName());
1262 }
1263 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301264 }
1265
1266 /**
1267 * Validate the leaf value for merchandiser supervisor.
1268 *
1269 * @param objectList object list
1270 */
1271 private void processMerchandiserObj(List<Object> objectList) {
1272 Iterator<Object> iterator = objectList.iterator();
1273 while (iterator.hasNext()) {
1274 Object object = iterator.next();
1275 if (object.getClass().getSimpleName()
1276 .equals(MERCHA_MOD)) {
1277 MerchandisersupervisorOpParam merchandisersupervisorOpParam =
1278 (MerchandisersupervisorOpParam) object;
1279 assertEquals(AM_OBJ + "merchandiser-super: leaf value", "abc",
1280 merchandisersupervisorOpParam.supervisor());
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301281 } else {
1282 assertEquals(AM_OBJ, MERCHA_MOD, object
1283 .getClass().getSimpleName());
1284 }
1285 }
1286 }
1287
1288 /**
1289 * Unit test case in which verifying object for xml string with get and
1290 * filter as root name.
1291 */
1292 @Test
1293 public void proceessCodecDecodeFunctionForGet() {
1294 String path = "src/test/resources/ychTestResourceFiles/getrootname.xml";
1295 testYangSchemaNodeProvider.processSchemaRegistry(null);
1296 DefaultYangSchemaRegistry schemaRegistry =
1297 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
1298
1299 YangCodecRegistry.initializeDefaultCodec();
1300 DefaultYangCodecHandler defaultYangCodecHandler =
1301 new DefaultYangCodecHandler(schemaRegistry);
1302
1303 StringBuilder sb = new StringBuilder();
1304 String sCurrentLine;
1305
1306 try (BufferedReader br = new BufferedReader(new FileReader(path))) {
1307
1308 while ((sCurrentLine = br.readLine()) != null) {
1309 sb.append(sCurrentLine);
1310 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301311 } catch (IOException e) {
1312 e.printStackTrace();
1313 }
1314
1315 // Verify the received object list
1316 List<Object> objectList =
1317 defaultYangCodecHandler.decode(sb.toString(),
1318 XML, QUERY_REQUEST);
1319 processPurchasingSpecObj(objectList);
1320 }
1321
1322 /**
1323 * Unit test case in which verifying object for xml string with get-config
1324 * and filter as root name.
1325 */
1326 @Test
1327 public void proceessCodecDecodeFunctionForGetConfig() {
1328 String path = "src/test/resources/ychTestResourceFiles/getconfigrootname.xml";
1329 testYangSchemaNodeProvider.processSchemaRegistry(null);
1330 DefaultYangSchemaRegistry schemaRegistry =
1331 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
1332
1333 YangCodecRegistry.initializeDefaultCodec();
1334 DefaultYangCodecHandler defaultYangCodecHandler =
1335 new DefaultYangCodecHandler(schemaRegistry);
1336
1337 StringBuilder sb = new StringBuilder();
1338 String sCurrentLine;
1339
1340 try (BufferedReader br = new BufferedReader(new FileReader(path))) {
1341
1342 while ((sCurrentLine = br.readLine()) != null) {
1343 sb.append(sCurrentLine);
1344 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301345 } catch (IOException e) {
1346 e.printStackTrace();
1347 }
1348
1349 // Verify the received object list
1350 List<Object> objectList = defaultYangCodecHandler.decode(
1351 sb.toString(),
1352 XML, QUERY_CONFIG_REQUEST);
1353 processMerchandiserObj(objectList);
1354 }
1355
1356 /**
1357 * Unit test case in which verifying object for xml string with data as
1358 * root name.
1359 */
1360 @Test
1361 public void proceessCodecDecodeFunctionForGetData() {
1362 String path = "src/test/resources/ychTestResourceFiles/getReply.xml";
1363 testYangSchemaNodeProvider.processSchemaRegistry(null);
1364 DefaultYangSchemaRegistry schemaRegistry =
1365 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
1366
1367 YangCodecRegistry.initializeDefaultCodec();
1368 DefaultYangCodecHandler defaultYangCodecHandler =
1369 new DefaultYangCodecHandler(schemaRegistry);
1370
1371 StringBuilder sb = new StringBuilder();
1372 String sCurrentLine;
1373
1374 try (BufferedReader br = new BufferedReader(new FileReader(path))) {
1375
1376 while ((sCurrentLine = br.readLine()) != null) {
1377 sb.append(sCurrentLine);
1378 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301379 } catch (IOException e) {
1380 e.printStackTrace();
1381 }
1382
1383 // Verify the received object list
1384 List<Object> objectList = defaultYangCodecHandler.decode(
1385 sb.toString(),
1386 XML, QUERY_CONFIG_REQUEST);
1387 processPurchasingSpecObj(objectList);
1388 }
1389
1390 /**
1391 * Unit test case in which verifying object for xml string with rpc-reply
1392 * and data as root name .
1393 */
1394 @Test
1395 public void proceessCodecDecodeFunctionForGetConfigData() {
1396 String path = "src/test/resources/ychTestResourceFiles/getconfigReply.xml";
1397 testYangSchemaNodeProvider.processSchemaRegistry(null);
1398 DefaultYangSchemaRegistry schemaRegistry =
1399 testYangSchemaNodeProvider.getDefaultYangSchemaRegistry();
1400
1401 YangCodecRegistry.initializeDefaultCodec();
1402 DefaultYangCodecHandler defaultYangCodecHandler =
1403 new DefaultYangCodecHandler(schemaRegistry);
1404
1405 StringBuilder sb = new StringBuilder();
1406 String sCurrentLine;
1407
1408 try (BufferedReader br = new BufferedReader(new FileReader(path))) {
1409
1410 while ((sCurrentLine = br.readLine()) != null) {
1411 sb.append(sCurrentLine);
1412 }
Shankara-Huaweid5823ab2016-11-22 10:14:52 +05301413 } catch (IOException e) {
1414 e.printStackTrace();
1415 }
1416
1417 // Verify the received object list
1418 List<Object> objectList = defaultYangCodecHandler.decode(sb.toString(),
1419 XML, null);
1420 processMerchandiserObj(objectList);
1421 }
1422}