blob: dd40ef58d27522b2841001e34ab9ac5a29ca59b5 [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.CAPSINT32;
23import static org.onosproject.yms.app.ydt.YdtTestConstants.CAPSUINT32;
24import static org.onosproject.yms.app.ydt.YdtTestConstants.INT32NS;
25import static org.onosproject.yms.app.ydt.YdtTestConstants.MAXIWR;
26import static org.onosproject.yms.app.ydt.YdtTestConstants.MAXUINT32;
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.SINT32;
36import static org.onosproject.yms.app.ydt.YdtTestConstants.SUINT32;
37import static org.onosproject.yms.app.ydt.YdtTestConstants.TYPE;
38import static org.onosproject.yms.app.ydt.YdtTestUtils.integer32Ydt;
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 YdtInteger32Test {
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 -2147483648
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 2147483647
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 4294967295
102 */
103
104 /**
105 * Creates and validates integer32 ydt covering different positive scenario.
106 */
107 @Test
108 public void positiveTest() throws YdtException {
109 YangRequestWorkBench ydtBuilder = integer32Ydt();
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, "integer32", MERGE);
125 ydtNode = ydtNode.getFirstChild();
126 validateLeafContents(ydtNode, "negInt", "-2147483648");
127 ydtNode = ydtNode.getNextSibling();
128 validateLeafContents(ydtNode, "posInt", "2147483647");
129 ydtNode = ydtNode.getNextSibling();
130 validateLeafContents(ydtNode, "minUInt", MINVALUE);
131 ydtNode = ydtNode.getNextSibling();
132 validateLeafContents(ydtNode, "maxUInt", MAXUINT32);
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", "-2147483648");
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 ydtNode = ydtNode.getFirstChild();
219 validateLeafContents(ydtNode, "revInteger", "2");
220 ydtNode = ydtNode.getParent();
221 ydtNode = ydtNode.getNextSibling();
222 validateNodeContents(ydtNode, MRV, MERGE);
223 ydtNode = ydtNode.getFirstChild();
224 validateLeafContents(ydtNode, "revInteger", "10");
225 ydtNode = ydtNode.getParent();
226 ydtNode = ydtNode.getNextSibling();
227 validateNodeContents(ydtNode, MRV, MERGE);
228 ydtNode = ydtNode.getFirstChild();
229 validateLeafContents(ydtNode, "revInteger", "20");
230 ydtNode = ydtNode.getParent();
231 ydtNode = ydtNode.getNextSibling();
232 validateNodeContents(ydtNode, MRV, MERGE);
233
234 validate1Tree(ydtNode);
235 }
236
237 /**
238 * Validates the given built ydt.
239 */
240 private void validate1Tree(YdtNode ydtNode) {
241 ydtNode = ydtNode.getFirstChild();
242 validateLeafContents(ydtNode, "revInteger", "100");
243 ydtNode = ydtNode.getParent();
244 ydtNode = ydtNode.getNextSibling();
245 validateNodeContents(ydtNode, MRV, MERGE);
246 ydtNode = ydtNode.getFirstChild();
247 validateLeafContents(ydtNode, "revInteger", "2147483647");
248
249 ydtNode = ydtNode.getParent();
250 ydtNode = ydtNode.getNextSibling();
251 validateNodeContents(ydtNode, MRV, MERGE);
252 ydtNode = ydtNode.getFirstChild();
253 validateLeafContents(ydtNode, RUI, MINVALUE);
254 ydtNode = ydtNode.getParent();
255 ydtNode = ydtNode.getNextSibling();
256 validateNodeContents(ydtNode, MRV, MERGE);
257 ydtNode = ydtNode.getFirstChild();
258 validateLeafContents(ydtNode, RUI, "1");
259 ydtNode = ydtNode.getParent();
260 ydtNode = ydtNode.getNextSibling();
261 validateNodeContents(ydtNode, MRV, MERGE);
262 ydtNode = ydtNode.getFirstChild();
263 validateLeafContents(ydtNode, RUI, "2");
264 ydtNode = ydtNode.getParent();
265 ydtNode = ydtNode.getNextSibling();
266 validateNodeContents(ydtNode, MRV, MERGE);
267 ydtNode = ydtNode.getFirstChild();
268 validateLeafContents(ydtNode, RUI, "10");
269 ydtNode = ydtNode.getParent();
270 ydtNode = ydtNode.getNextSibling();
271 validateNodeContents(ydtNode, MRV, MERGE);
272 ydtNode = ydtNode.getFirstChild();
273 validateLeafContents(ydtNode, RUI, "20");
274 ydtNode = ydtNode.getParent();
275 ydtNode = ydtNode.getNextSibling();
276 validateNodeContents(ydtNode, MRV, MERGE);
277 ydtNode = ydtNode.getFirstChild();
278 validateLeafContents(ydtNode, RUI, "100");
279 ydtNode = ydtNode.getParent();
280 ydtNode = ydtNode.getNextSibling();
281 validateNodeContents(ydtNode, MRV, MERGE);
282 ydtNode = ydtNode.getFirstChild();
283 validateLeafContents(ydtNode, RUI, MAXUINT32);
284 }
285
286 /*
287 Negative scenario
288
289 wrong type input
290 i. input string instead of integer
291 ii. input string instead of uinteger
292
293 input out of range
294 i. input for int 8 range -2147483648 to 2147483647
295 i.1. input -2147483649
296 i.2. input 2147483648
297
298 ii. input for uint 8 range 0 to 4294967295
299 ii.1. input -2147483649
300 ii.2. input 4294967296
301
302 input out of range parameter
303 if range is 10 to 100 for int
304 i.1. input 9
305 i.2. input 101
306
307 if range is 10 to 100 for uInt
308 i.1. input 9
309 i.2. input 101
310
311 input with multi interval range
312 if range is 10..40 | 50..100 for integer
313 i.1. input 9
314 i.2. input 41
315 i.3. input 49
316 i.4. input 101
317
318 if range is 10..40 | 50..100 for uinteger
319 i.1. input 9
320 i.2. input 41
321 i.3. input 49
322 i.4. input 101
323
324 input with multi interval range
325 if range is min .. | 10 | 20..max for integer
326 i.1. input -2147483649
327 i.2. input 4
328 i.3. input 9
329 i.4. input 11
330 i.5. input 19
331 i.6. input 256
332
333 if range is min .. 3 | 10 | 20..max for uinteger
334 i.1. input -2147483649
335 i.2. input 4
336 i.3. input 9
337 i.4. input 11
338 i.5. input 19
339 i.6. input 4294967296
340
341 */
342
343 /**
344 * Tests all the negative scenario's for integer8 data type.
345 */
346 @Test
347 public void negativeTest() throws YdtException {
348 validateErrMsg("posInt", INT32NS, "integer", SINT32, null);
349 validateErrMsg("posInt", INT32NS, "127.0", SINT32, null);
350 validateErrMsg("maxUInt", INT32NS, "integer", SUINT32, null);
351 validateErrMsg("maxUInt", INT32NS, "127.0", SUINT32, null);
352 validateErrMsg("negInt", INT32NS, "-2147483649", SINT32, null);
353 validateErrMsg("posInt", INT32NS, "2147483648", SINT32, null);
354 validateErrMsg("minUInt", INT32NS, "-2147483649", MINVALUE, null);
355 validateErrMsg("maxUInt", INT32NS, "4294967296", MAXUINT32, null);
356 validateErrMsg(MINIWR, INT32NS, "9", CAPSINT32, null);
357 validateErrMsg(MAXIWR, INT32NS, "101", CAPSINT32, null);
358 validateErrMsg(MINUIWR, INT32NS, "9", CAPSUINT32, null);
359 validateErrMsg(MAXUIWR, INT32NS, "101", CAPSUINT32, null);
360
361 validateErrMsg("integer", INT32NS, "9", CAPSINT32, MRV);
362 validateErrMsg("integer", INT32NS, "41", CAPSINT32, MRV);
363 validateErrMsg("integer", INT32NS, "49", CAPSINT32, MRV);
364 validateErrMsg("integer", INT32NS, "101", CAPSINT32, MRV);
365 validateErrMsg("UnInteger", INT32NS, "9", CAPSUINT32, MRV);
366 validateErrMsg("UnInteger", INT32NS, "41", CAPSUINT32, MRV);
367 validateErrMsg("UnInteger", INT32NS, "49", CAPSUINT32, MRV);
368 validateErrMsg("UnInteger", INT32NS, "101", CAPSUINT32, MRV);
369 validateErrMsg("UnInteger", INT32NS, "9", CAPSUINT32, MRV);
370 validateErrMsg("UnInteger", INT32NS, "41", CAPSUINT32, MRV);
371 validateErrMsg("UnInteger", INT32NS, "49", CAPSUINT32, MRV);
372 validateErrMsg("UnInteger", INT32NS, "101", CAPSUINT32, MRV);
373 validateErrMsg("UnInteger", INT32NS, "9", CAPSUINT32, MRV);
374 validateErrMsg("UnInteger", INT32NS, "41", CAPSUINT32, MRV);
375 validateErrMsg("UnInteger", INT32NS, "49", CAPSUINT32, MRV);
376 validateErrMsg("UnInteger", INT32NS, "101", CAPSUINT32, MRV);
377 validateErrMsg("revInteger", INT32NS, "-2147483649", SINT32, MRV);
378 validateErrMsg("revInteger", INT32NS, "4", CAPSINT32, MRV);
379 validateErrMsg("revInteger", INT32NS, "9", CAPSINT32, MRV);
380 validateErrMsg("revInteger", INT32NS, "11", CAPSINT32, MRV);
381 validateErrMsg("revInteger", INT32NS, "19", CAPSINT32, MRV);
382 validateErrMsg("revInteger", INT32NS, "2147483648", SINT32, MRV);
383 validateErrMsg(RUI, INT32NS, "-2147483649", MINVALUE, MRV);
384 validateErrMsg(RUI, INT32NS, "4", CAPSUINT32, MRV);
385 validateErrMsg(RUI, INT32NS, "9", CAPSUINT32, MRV);
386 validateErrMsg(RUI, INT32NS, "11", CAPSUINT32, MRV);
387 validateErrMsg(RUI, INT32NS, "19", CAPSUINT32, MRV);
388 validateErrMsg(RUI, INT32NS, "4294967296", MAXUINT32, MRV);
389 }
390}