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