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