blob: 172732b16dbcf6606ef13e085767b0c8c547b7fc [file] [log] [blame]
sonu gupta1bb37b82016-11-11 16:51:18 +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.ydt;
18
19import org.junit.Test;
20import org.onosproject.yms.app.ydt.exceptions.YdtException;
21
22import static org.onosproject.yms.app.ydt.YdtTestConstants.CAPSINT16;
23import static org.onosproject.yms.app.ydt.YdtTestConstants.CAPSUINT16;
24import static org.onosproject.yms.app.ydt.YdtTestConstants.INT16NS;
25import static org.onosproject.yms.app.ydt.YdtTestConstants.MAXIWR;
26import static org.onosproject.yms.app.ydt.YdtTestConstants.MAXUINT16;
27import static org.onosproject.yms.app.ydt.YdtTestConstants.MAXUIWR;
28import static org.onosproject.yms.app.ydt.YdtTestConstants.MIDIWR;
29import static org.onosproject.yms.app.ydt.YdtTestConstants.MIDUIWR;
30import static org.onosproject.yms.app.ydt.YdtTestConstants.MINIWR;
31import static org.onosproject.yms.app.ydt.YdtTestConstants.MINUIWR;
32import static org.onosproject.yms.app.ydt.YdtTestConstants.MINVALUE;
33import static org.onosproject.yms.app.ydt.YdtTestConstants.MRV;
34import static org.onosproject.yms.app.ydt.YdtTestConstants.RUI;
35import static org.onosproject.yms.app.ydt.YdtTestConstants.SINT16;
36import static org.onosproject.yms.app.ydt.YdtTestConstants.SUINT16;
37import static org.onosproject.yms.app.ydt.YdtTestConstants.TYPE;
38import static org.onosproject.yms.app.ydt.YdtTestUtils.integer16Ydt;
39import static org.onosproject.yms.app.ydt.YdtTestUtils.validateErrMsg;
40import static org.onosproject.yms.app.ydt.YdtTestUtils.validateLeafContents;
41import static org.onosproject.yms.app.ydt.YdtTestUtils.validateNodeContents;
42import static org.onosproject.yms.ydt.YdtContextOperationType.MERGE;
43
44public class YdtInteger16Test {
45
46 /*
47 Positive scenario
48
49 input at boundry for integer
50 i. min value
51 ii. max value
52
53 input at boundry for uinteger
54 i. min value
55 ii. max value
56
57 input with in range
58 if range is 10 to 100 for integer
59 i.1. input 11
60 i.2. min value 10
61 i.3. max value 100
62
63 if range is 10 to 100 for uinteger
64 i.1. input 11
65 i.2. min value 10
66 i.3. max value 100
67
68 input with multi interval range
69 if range is 10..40 | 50..100 for integer
70 i.1. input 11
71 i.2. input 10
72 i.3. input 40
73 i.4. input 50
74 i.5. input 55
75 i.6. input 100
76
77 if range is 10..40 | 50..100 for uinteger
78 i.1. input 11
79 i.2. input 10
80 i.3. input 40
81 i.4. input 50
82 i.5. input 55
83 i.6. input 100
84
85 if range is "min .. 2 | 10 | 20..max" for integer
86 i.1. input -32768
87 i.2. input 1
88 i.3. input 2
89 i.4. input 10
90 i.5. input 20
91 i.6. input 100
92 i.7. input 32767
93
94 if range is "min .. 2 | 10 | 20..max" for uInteger
95 i.1. input 0
96 i.2. input 1
97 i.3. input 2
98 i.4. input 10
99 i.5. input 20
100 i.6. input 100
101 i.7. input 65535
102 */
103
104 /**
105 * Creates and validates integer16 ydt covering different positive scenario.
106 */
107 @Test
108 public void positiveTest() throws YdtException {
109 YangRequestWorkBench ydtBuilder = integer16Ydt();
110 validateTree(ydtBuilder);
111 }
112
113 /**
114 * Validates the given built ydt.
115 */
116 private void validateTree(YangRequestWorkBench ydtBuilder) {
117
118 // assign root node to ydtNode for validating purpose.
119 YdtNode ydtNode = (YdtNode) ydtBuilder.getRootNode();
120 // Logical root node does not have operation type
121 validateNodeContents(ydtNode, TYPE, null);
122
123 ydtNode = ydtNode.getFirstChild();
124 validateNodeContents(ydtNode, "integer16", MERGE);
125 ydtNode = ydtNode.getFirstChild();
126 validateLeafContents(ydtNode, "negInt", "-32768");
127 ydtNode = ydtNode.getNextSibling();
128 validateLeafContents(ydtNode, "posInt", "32767");
129 ydtNode = ydtNode.getNextSibling();
130 validateLeafContents(ydtNode, "minUInt", "0");
131 ydtNode = ydtNode.getNextSibling();
132 validateLeafContents(ydtNode, "maxUInt", "65535");
133 ydtNode = ydtNode.getNextSibling();
134 validateLeafContents(ydtNode, MIDIWR, "11");
135 ydtNode = ydtNode.getNextSibling();
136 validateLeafContents(ydtNode, MINIWR, "10");
137 ydtNode = ydtNode.getNextSibling();
138 validateLeafContents(ydtNode, MAXIWR, "100");
139 ydtNode = ydtNode.getNextSibling();
140 validateLeafContents(ydtNode, MIDUIWR, "11");
141 ydtNode = ydtNode.getNextSibling();
142 validateLeafContents(ydtNode, MINUIWR, "10");
143 ydtNode = ydtNode.getNextSibling();
144 validateLeafContents(ydtNode, MAXUIWR, "100");
145 ydtNode = ydtNode.getNextSibling();
146 validateNodeContents(ydtNode, MRV, MERGE);
147 ydtNode = ydtNode.getFirstChild();
148 validateLeafContents(ydtNode, "integer", "11");
149 ydtNode = ydtNode.getParent();
150 ydtNode = ydtNode.getNextSibling();
151 validateNodeContents(ydtNode, MRV, MERGE);
152 ydtNode = ydtNode.getFirstChild();
153 validateLeafContents(ydtNode, "integer", "10");
154 ydtNode = ydtNode.getParent();
155 ydtNode = ydtNode.getNextSibling();
156 validateNodeContents(ydtNode, MRV, MERGE);
157 ydtNode = ydtNode.getFirstChild();
158 validateLeafContents(ydtNode, "integer", "40");
159 ydtNode = ydtNode.getParent();
160 ydtNode = ydtNode.getNextSibling();
161 validateNodeContents(ydtNode, MRV, MERGE);
162 ydtNode = ydtNode.getFirstChild();
163 validateLeafContents(ydtNode, "integer", "50");
164 ydtNode = ydtNode.getParent();
165 ydtNode = ydtNode.getNextSibling();
166 validateNodeContents(ydtNode, MRV, MERGE);
167 ydtNode = ydtNode.getFirstChild();
168 validateLeafContents(ydtNode, "integer", "55");
169 ydtNode = ydtNode.getParent();
170 ydtNode = ydtNode.getNextSibling();
171 validateNodeContents(ydtNode, MRV, MERGE);
172 ydtNode = ydtNode.getFirstChild();
173 validateLeafContents(ydtNode, "integer", "100");
174 ydtNode = ydtNode.getParent();
175 ydtNode = ydtNode.getNextSibling();
176 validateNodeContents(ydtNode, MRV, MERGE);
177 ydtNode = ydtNode.getFirstChild();
178 validateLeafContents(ydtNode, "UnInteger", "11");
179 ydtNode = ydtNode.getParent();
180 ydtNode = ydtNode.getNextSibling();
181 validateNodeContents(ydtNode, MRV, MERGE);
182 ydtNode = ydtNode.getFirstChild();
183 validateLeafContents(ydtNode, "UnInteger", "10");
184 ydtNode = ydtNode.getParent();
185 ydtNode = ydtNode.getNextSibling();
186 validateNodeContents(ydtNode, MRV, MERGE);
187 ydtNode = ydtNode.getFirstChild();
188 validateLeafContents(ydtNode, "UnInteger", "40");
189 ydtNode = ydtNode.getParent();
190 ydtNode = ydtNode.getNextSibling();
191 validateNodeContents(ydtNode, MRV, MERGE);
192 ydtNode = ydtNode.getFirstChild();
193 validateLeafContents(ydtNode, "UnInteger", "50");
194 ydtNode = ydtNode.getParent();
195 ydtNode = ydtNode.getNextSibling();
196 validateNodeContents(ydtNode, MRV, MERGE);
197 ydtNode = ydtNode.getFirstChild();
198 validateLeafContents(ydtNode, "UnInteger", "55");
199 ydtNode = ydtNode.getParent();
200 ydtNode = ydtNode.getNextSibling();
201 validateNodeContents(ydtNode, MRV, MERGE);
202 ydtNode = ydtNode.getFirstChild();
203 validateLeafContents(ydtNode, "UnInteger", "100");
204
205 ydtNode = ydtNode.getParent();
206 ydtNode = ydtNode.getNextSibling();
207 validateNodeContents(ydtNode, MRV, MERGE);
208 ydtNode = ydtNode.getFirstChild();
209 validateLeafContents(ydtNode, "revInteger", "-32768");
210 ydtNode = ydtNode.getParent();
211 ydtNode = ydtNode.getNextSibling();
212 validateNodeContents(ydtNode, MRV, MERGE);
213 ydtNode = ydtNode.getFirstChild();
214 validateLeafContents(ydtNode, "revInteger", "1");
215 ydtNode = ydtNode.getParent();
216 ydtNode = ydtNode.getNextSibling();
217 validateNodeContents(ydtNode, MRV, MERGE);
218
219 validate1Tree(ydtNode);
220 }
221
222 /**
223 * Validates the given built ydt.
224 */
225 private void validate1Tree(YdtNode ydtNode) {
226
227 ydtNode = ydtNode.getFirstChild();
228 validateLeafContents(ydtNode, "revInteger", "2");
229 ydtNode = ydtNode.getParent();
230 ydtNode = ydtNode.getNextSibling();
231 validateNodeContents(ydtNode, MRV, MERGE);
232 ydtNode = ydtNode.getFirstChild();
233 validateLeafContents(ydtNode, "revInteger", "10");
234 ydtNode = ydtNode.getParent();
235 ydtNode = ydtNode.getNextSibling();
236 validateNodeContents(ydtNode, MRV, MERGE);
237 ydtNode = ydtNode.getFirstChild();
238 validateLeafContents(ydtNode, "revInteger", "20");
239 ydtNode = ydtNode.getParent();
240 ydtNode = ydtNode.getNextSibling();
241 validateNodeContents(ydtNode, MRV, MERGE);
242 ydtNode = ydtNode.getFirstChild();
243 validateLeafContents(ydtNode, "revInteger", "100");
244 ydtNode = ydtNode.getParent();
245 ydtNode = ydtNode.getNextSibling();
246 validateNodeContents(ydtNode, MRV, MERGE);
247 ydtNode = ydtNode.getFirstChild();
248 validateLeafContents(ydtNode, "revInteger", "32767");
249
250 ydtNode = ydtNode.getParent();
251 ydtNode = ydtNode.getNextSibling();
252 validateNodeContents(ydtNode, MRV, MERGE);
253 ydtNode = ydtNode.getFirstChild();
254 validateLeafContents(ydtNode, RUI, "0");
255 ydtNode = ydtNode.getParent();
256 ydtNode = ydtNode.getNextSibling();
257 validateNodeContents(ydtNode, MRV, MERGE);
258 ydtNode = ydtNode.getFirstChild();
259 validateLeafContents(ydtNode, RUI, "1");
260 ydtNode = ydtNode.getParent();
261 ydtNode = ydtNode.getNextSibling();
262 validateNodeContents(ydtNode, MRV, MERGE);
263 ydtNode = ydtNode.getFirstChild();
264 validateLeafContents(ydtNode, RUI, "2");
265 ydtNode = ydtNode.getParent();
266 ydtNode = ydtNode.getNextSibling();
267 validateNodeContents(ydtNode, MRV, MERGE);
268 ydtNode = ydtNode.getFirstChild();
269 validateLeafContents(ydtNode, RUI, "10");
270 ydtNode = ydtNode.getParent();
271 ydtNode = ydtNode.getNextSibling();
272 validateNodeContents(ydtNode, MRV, MERGE);
273 ydtNode = ydtNode.getFirstChild();
274 validateLeafContents(ydtNode, RUI, "20");
275 ydtNode = ydtNode.getParent();
276 ydtNode = ydtNode.getNextSibling();
277 validateNodeContents(ydtNode, MRV, MERGE);
278 ydtNode = ydtNode.getFirstChild();
279 validateLeafContents(ydtNode, RUI, "100");
280 ydtNode = ydtNode.getParent();
281 ydtNode = ydtNode.getNextSibling();
282 validateNodeContents(ydtNode, MRV, MERGE);
283 ydtNode = ydtNode.getFirstChild();
284 validateLeafContents(ydtNode, RUI, "65535");
285 }
286
287 /*
288 Negative scenario
289
290 wrong type input
291 i. input string instead of integer
292 ii. input string instead of uinteger
293
294 input out of range
295 i. input for int 8 range -32768 to 32767
296 i.1. input -32769
297 i.2. input 32768
298
299 ii. input for uint 8 range 0 to 65535
300 ii.1. input -32769
301 ii.2. input 65536
302
303 input out of range parameter
304 if range is 10 to 100 for int
305 i.1. input 9
306 i.2. input 101
307
308 if range is 10 to 100 for uInt
309 i.1. input 9
310 i.2. input 101
311
312 input with multi interval range
313 if range is 10..40 | 50..100 for integer
314 i.1. input 9
315 i.2. input 41
316 i.3. input 49
317 i.4. input 101
318
319 if range is 10..40 | 50..100 for uinteger
320 i.1. input 9
321 i.2. input 41
322 i.3. input 49
323 i.4. input 101
324
325 input with multi interval range
326 if range is min .. | 10 | 20..max for integer
327 i.1. input -32769
328 i.2. input 4
329 i.3. input 9
330 i.4. input 11
331 i.5. input 19
332 i.6. input 32768
333
334 if range is min .. 3 | 10 | 20..max for uinteger
335 i.1. input -32769
336 i.2. input 4
337 i.3. input 9
338 i.4. input 11
339 i.5. input 19
340 i.6. input 65536
341
342 */
343
344 /**
345 * Tests all the negative scenario's for integer8 data type.
346 */
347 @Test
348 public void negative1Test() throws YdtException {
349 validateErrMsg("posInt", INT16NS, "integer", SINT16, null);
350 validateErrMsg("posInt", INT16NS, "integer", SINT16, null);
351 validateErrMsg("posInt", INT16NS, "127.0", SINT16, null);
352 validateErrMsg("maxUInt", INT16NS, "integer", SUINT16, null);
353 validateErrMsg("maxUInt", INT16NS, "127.0", SUINT16, null);
354 validateErrMsg("negInt", INT16NS, "-32769", SINT16, null);
355 validateErrMsg("posInt", INT16NS, "32768", SINT16, null);
356 validateErrMsg("minUInt", INT16NS, "-32769", MINVALUE, null);
357 validateErrMsg("maxUInt", INT16NS, "65536", MAXUINT16, null);
358 validateErrMsg(MINIWR, INT16NS, "9", CAPSINT16, null);
359 validateErrMsg(MAXIWR, INT16NS, "101", CAPSINT16, null);
360 validateErrMsg(MINUIWR, INT16NS, "9", CAPSUINT16, null);
361 validateErrMsg(MAXUIWR, INT16NS, "101", CAPSUINT16, null);
362
363 validateErrMsg("integer", INT16NS, "9", CAPSINT16, MRV);
364 validateErrMsg("integer", INT16NS, "41", CAPSINT16, MRV);
365 validateErrMsg("integer", INT16NS, "49", CAPSINT16, MRV);
366 validateErrMsg("integer", INT16NS, "101", CAPSINT16, MRV);
367 validateErrMsg("UnInteger", INT16NS, "9", CAPSUINT16, MRV);
368 validateErrMsg("UnInteger", INT16NS, "41", CAPSUINT16, MRV);
369 validateErrMsg("UnInteger", INT16NS, "49", CAPSUINT16, MRV);
370 validateErrMsg("UnInteger", INT16NS, "101", CAPSUINT16, MRV);
371 validateErrMsg("UnInteger", INT16NS, "9", CAPSUINT16, MRV);
372 validateErrMsg("UnInteger", INT16NS, "41", CAPSUINT16, MRV);
373 validateErrMsg("UnInteger", INT16NS, "49", CAPSUINT16, MRV);
374 validateErrMsg("UnInteger", INT16NS, "101", CAPSUINT16, MRV);
375 validateErrMsg("UnInteger", INT16NS, "9", CAPSUINT16, MRV);
376 validateErrMsg("UnInteger", INT16NS, "41", CAPSUINT16, MRV);
377 validateErrMsg("UnInteger", INT16NS, "49", CAPSUINT16, MRV);
378 validateErrMsg("UnInteger", INT16NS, "101", CAPSUINT16, MRV);
379 validateErrMsg("revInteger", INT16NS, "-32769", SINT16, MRV);
380 validateErrMsg("revInteger", INT16NS, "19", CAPSINT16, MRV);
381 validateErrMsg("revInteger", INT16NS, "4", CAPSINT16, MRV);
382 validateErrMsg("revInteger", INT16NS, "32768", SINT16, MRV);
383 validateErrMsg("revInteger", INT16NS, "9", CAPSINT16, MRV);
384 validateErrMsg("revInteger", INT16NS, "11", CAPSINT16, MRV);
385 validateErrMsg(RUI, INT16NS, "-32769", MINVALUE, MRV);
386 validateErrMsg(RUI, INT16NS, "4", CAPSUINT16, MRV);
387 validateErrMsg(RUI, INT16NS, "9", CAPSUINT16, MRV);
388 validateErrMsg(RUI, INT16NS, "11", CAPSUINT16, MRV);
389 validateErrMsg(RUI, INT16NS, "19", CAPSUINT16, MRV);
390 validateErrMsg(RUI, INT16NS, "65536", MAXUINT16, MRV);
391 }
392}