e9cf9495aeff9bda572544f20ec3394512356607
[smo/teiv.git] /
1 /*
2  *  ============LICENSE_START=======================================================
3  *  Copyright (C) 2024 Ericsson
4  *  Modifications Copyright (C) 2024 OpenInfra Foundation Europe
5  *  ================================================================================
6  *  Licensed under the Apache License, Version 2.0 (the "License");
7  *  you may not use this file except in compliance with the License.
8  *  You may obtain a copy of the License at
9  *
10  *        http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *  Unless required by applicable law or agreed to in writing, software
13  *  distributed under the License is distributed on an "AS IS" BASIS,
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *  See the License for the specific language governing permissions and
16  *  limitations under the License.
17  *
18  *  SPDX-License-Identifier: Apache-2.0
19  *  ============LICENSE_END=========================================================
20  */
21 package org.oran.smo.yangtools.parser.model.statements.yang.test;
22
23 import static org.junit.Assert.assertTrue;
24
25 import java.math.BigDecimal;
26 import java.util.Arrays;
27
28 import org.junit.Test;
29
30 import org.oran.smo.yangtools.parser.findings.ParserFindingType;
31 import org.oran.smo.yangtools.parser.model.statements.yang.YContainer;
32 import org.oran.smo.yangtools.parser.model.statements.yang.YModule;
33 import org.oran.smo.yangtools.parser.testutils.YangTestCommon;
34
35 public class RangeTest extends YangTestCommon {
36
37     @Test
38     public void testRangeSimple() {
39
40         parseRelativeImplementsYangModels(Arrays.asList("range-test/range-test-module-simple.yang"));
41         assertTrue(findingsManager.getAllFindings().isEmpty());
42
43         final YModule module = getModule("range-test-module-simple");
44         assertTrue(module != null);
45
46         // -------------------------- Simple ranges that are fine --------------------
47
48         final YContainer cont1 = getContainer(module, "cont1");
49         assertTrue(cont1 != null);
50
51         assertTrue(getLeaf(cont1, "leaf1").getType().getDataType().equals("int8"));
52         assertTrue(getLeaf(cont1, "leaf1").getType().getRange() == null);
53
54         assertTrue(getLeaf(cont1, "leaf2").getType().getDataType().equals("int8"));
55         assertTrue(getLeaf(cont1, "leaf2").getType().getRange() != null);
56         assertTrue(getLeaf(cont1, "leaf2").getType().getRange().getBoundaries().size() == 1);
57         assertTrue(getLeaf(cont1, "leaf2").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
58                 "-128")));
59         assertTrue(getLeaf(cont1, "leaf2").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("127")));
60
61         assertTrue(getLeaf(cont1, "leaf2").getType().getErrorMessageText() == null);
62         assertTrue(getLeaf(cont1, "leaf2").getType().getRange().getErrorMessage() != null);
63         assertTrue(getLeaf(cont1, "leaf2").getType().getRange().getErrorMessage().getErrorMessageText() != null);
64         assertTrue(getLeaf(cont1, "leaf2").getType().getRange().getErrorMessageText() != null);
65         assertTrue(getLeaf(cont1, "leaf2").getType().getRange().getErrorMessage().getErrorMessageText().equals("wrong!"));
66         assertTrue(getLeaf(cont1, "leaf2").getType().getRange().getErrorMessageText().equals("wrong!"));
67
68         assertTrue(getLeaf(cont1, "leaf3").getType().getDataType().equals("int8"));
69         assertTrue(getLeaf(cont1, "leaf3").getType().getRange() != null);
70         assertTrue(getLeaf(cont1, "leaf3").getType().getRange().getBoundaries().size() == 1);
71         assertTrue(getLeaf(cont1, "leaf3").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
72                 "-128")));
73         assertTrue(getLeaf(cont1, "leaf3").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("127")));
74
75         assertTrue(getLeaf(cont1, "leaf4").getType().getDataType().equals("int8"));
76         assertTrue(getLeaf(cont1, "leaf4").getType().getRange() != null);
77         assertTrue(getLeaf(cont1, "leaf4").getType().getRange().getBoundaries().size() == 2);
78         assertTrue(getLeaf(cont1, "leaf4").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
79                 "-128")));
80         assertTrue(getLeaf(cont1, "leaf4").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal(
81                 "-128")));
82         assertTrue(getLeaf(cont1, "leaf4").getType().getRange().getBoundaries().get(1).lower.equals(new BigDecimal("127")));
83         assertTrue(getLeaf(cont1, "leaf4").getType().getRange().getBoundaries().get(1).upper.equals(new BigDecimal("127")));
84         assertTrue(getLeaf(cont1, "leaf4").getType().getDataType().equals("int8"));
85
86         assertTrue(getLeaf(cont1, "leaf5").getType().getRange() != null);
87         assertTrue(getLeaf(cont1, "leaf5").getType().getRange().getBoundaries().size() == 2);
88         assertTrue(getLeaf(cont1, "leaf5").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
89                 "-128")));
90         assertTrue(getLeaf(cont1, "leaf5").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal(
91                 "-128")));
92         assertTrue(getLeaf(cont1, "leaf5").getType().getRange().getBoundaries().get(1).lower.equals(new BigDecimal("127")));
93         assertTrue(getLeaf(cont1, "leaf5").getType().getRange().getBoundaries().get(1).upper.equals(new BigDecimal("127")));
94
95         assertTrue(getLeaf(cont1, "leaf6").getType().getDataType().equals("int8"));
96         assertTrue(getLeaf(cont1, "leaf6").getType().getRange() != null);
97         assertTrue(getLeaf(cont1, "leaf6").getType().getRange().getBoundaries().size() == 1);
98         assertTrue(getLeaf(cont1, "leaf6").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
99                 "-100")));
100         assertTrue(getLeaf(cont1, "leaf6").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("100")));
101
102         assertTrue(getLeaf(cont1, "leaf7").getType().getDataType().equals("int8"));
103         assertTrue(getLeaf(cont1, "leaf7").getType().getRange() != null);
104         assertTrue(getLeaf(cont1, "leaf7").getType().getRange().getBoundaries().size() == 2);
105         assertTrue(getLeaf(cont1, "leaf7").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal("-50")));
106         assertTrue(getLeaf(cont1, "leaf7").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("-20")));
107         assertTrue(getLeaf(cont1, "leaf7").getType().getRange().getBoundaries().get(1).lower.equals(new BigDecimal("30")));
108         assertTrue(getLeaf(cont1, "leaf7").getType().getRange().getBoundaries().get(1).upper.equals(new BigDecimal("60")));
109
110         assertTrue(getLeaf(cont1, "leaf8").getType().getDataType().equals("int8"));
111         assertTrue(getLeaf(cont1, "leaf8").getType().getRange() != null);
112         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().size() == 2);
113         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
114                 "-128")));
115         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("-20")));
116         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().get(1).lower.equals(new BigDecimal("30")));
117         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().get(1).upper.equals(new BigDecimal("127")));
118
119         assertTrue(getLeaf(cont1, "leaf9").getType().getDataType().equals("int8"));
120         assertTrue(getLeaf(cont1, "leaf9").getType().getRange() != null);
121         assertTrue(getLeaf(cont1, "leaf9").getType().getRange().getBoundaries().size() == 3);
122         assertTrue(getLeaf(cont1, "leaf9").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
123                 "-128")));
124         assertTrue(getLeaf(cont1, "leaf9").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("-20")));
125         assertTrue(getLeaf(cont1, "leaf9").getType().getRange().getBoundaries().get(1).lower.equals(new BigDecimal("30")));
126         assertTrue(getLeaf(cont1, "leaf9").getType().getRange().getBoundaries().get(1).upper.equals(new BigDecimal("30")));
127         assertTrue(getLeaf(cont1, "leaf9").getType().getRange().getBoundaries().get(2).lower.equals(new BigDecimal("80")));
128         assertTrue(getLeaf(cont1, "leaf9").getType().getRange().getBoundaries().get(2).upper.equals(new BigDecimal("80")));
129
130         assertTrue(getLeaf(cont1, "leaf10").getType().getDataType().equals("int8"));
131         assertTrue(getLeaf(cont1, "leaf10").getType().getRange() != null);
132         assertTrue(getLeaf(cont1, "leaf10").getType().getRange().getBoundaries().size() == 3);
133         assertTrue(getLeaf(cont1, "leaf10").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
134                 "-128")));
135         assertTrue(getLeaf(cont1, "leaf10").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal(
136                 "-20")));
137         assertTrue(getLeaf(cont1, "leaf10").getType().getRange().getBoundaries().get(1).lower.equals(new BigDecimal("30")));
138         assertTrue(getLeaf(cont1, "leaf10").getType().getRange().getBoundaries().get(1).upper.equals(new BigDecimal("30")));
139         assertTrue(getLeaf(cont1, "leaf10").getType().getRange().getBoundaries().get(2).lower.equals(new BigDecimal("80")));
140         assertTrue(getLeaf(cont1, "leaf10").getType().getRange().getBoundaries().get(2).upper.equals(new BigDecimal("80")));
141
142         assertTrue(getLeaf(cont1, "leaf11").getType().getDataType().equals("int8"));
143         assertTrue(getLeaf(cont1, "leaf11").getType().getRange() != null);
144         assertTrue(getLeaf(cont1, "leaf11").getType().getRange().getBoundaries().size() == 3);
145         assertTrue(getLeaf(cont1, "leaf11").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
146                 "-128")));
147         assertTrue(getLeaf(cont1, "leaf11").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal(
148                 "-128")));
149         assertTrue(getLeaf(cont1, "leaf11").getType().getRange().getBoundaries().get(1).lower.equals(new BigDecimal("10")));
150         assertTrue(getLeaf(cont1, "leaf11").getType().getRange().getBoundaries().get(1).upper.equals(new BigDecimal("10")));
151         assertTrue(getLeaf(cont1, "leaf11").getType().getRange().getBoundaries().get(2).lower.equals(new BigDecimal("40")));
152         assertTrue(getLeaf(cont1, "leaf11").getType().getRange().getBoundaries().get(2).upper.equals(new BigDecimal("40")));
153
154         assertTrue(getLeaf(cont1, "leaf12").getType().getDataType().equals("int8"));
155         assertTrue(getLeaf(cont1, "leaf12").getType().getRange() != null);
156         assertTrue(getLeaf(cont1, "leaf12").getType().getRange().getBoundaries().size() == 3);
157         assertTrue(getLeaf(cont1, "leaf12").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
158                 "-128")));
159         assertTrue(getLeaf(cont1, "leaf12").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal(
160                 "-128")));
161         assertTrue(getLeaf(cont1, "leaf12").getType().getRange().getBoundaries().get(1).lower.equals(new BigDecimal("10")));
162         assertTrue(getLeaf(cont1, "leaf12").getType().getRange().getBoundaries().get(1).upper.equals(new BigDecimal("10")));
163         assertTrue(getLeaf(cont1, "leaf12").getType().getRange().getBoundaries().get(2).lower.equals(new BigDecimal("70")));
164         assertTrue(getLeaf(cont1, "leaf12").getType().getRange().getBoundaries().get(2).upper.equals(new BigDecimal("70")));
165
166         assertTrue(getLeaf(cont1, "leaf13").getType().getDataType().equals("int8"));
167         assertTrue(getLeaf(cont1, "leaf13").getType().getRange() != null);
168         assertTrue(getLeaf(cont1, "leaf13").getType().getRange().getBoundaries().size() == 4);
169         assertTrue(getLeaf(cont1, "leaf13").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
170                 "-128")));
171         assertTrue(getLeaf(cont1, "leaf13").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal(
172                 "-128")));
173         assertTrue(getLeaf(cont1, "leaf13").getType().getRange().getBoundaries().get(1).lower.equals(new BigDecimal("2")));
174         assertTrue(getLeaf(cont1, "leaf13").getType().getRange().getBoundaries().get(1).upper.equals(new BigDecimal("2")));
175         assertTrue(getLeaf(cont1, "leaf13").getType().getRange().getBoundaries().get(2).lower.equals(new BigDecimal("3")));
176         assertTrue(getLeaf(cont1, "leaf13").getType().getRange().getBoundaries().get(2).upper.equals(new BigDecimal("3")));
177         assertTrue(getLeaf(cont1, "leaf13").getType().getRange().getBoundaries().get(3).lower.equals(new BigDecimal(
178                 "127")));
179         assertTrue(getLeaf(cont1, "leaf13").getType().getRange().getBoundaries().get(3).upper.equals(new BigDecimal(
180                 "127")));
181
182     }
183
184     @Test
185     public void testRangeTypedefs() {
186
187         severityCalculator.suppressFinding(ParserFindingType.P115_TYPEDEF_USED_ONCE_ONLY.toString());
188         severityCalculator.suppressFinding(ParserFindingType.P114_TYPEDEF_NOT_USED.toString());
189
190         parseRelativeImplementsYangModels(Arrays.asList("range-test/range-test-module-typedefs.yang"));
191
192         printFindings();
193
194         assertTrue(findingsManager.getAllFindings().isEmpty());
195
196         final YModule module = getModule("range-test-module-typedefs");
197         assertTrue(module != null);
198
199         // -------------------------- Simple ranges that are fine --------------------
200
201         assertTrue(getTypedef(module, "typeInt8noRange") != null);
202         assertTrue(getTypedef(module, "typeInt8noRange").getType().getDataType().equals("int8"));
203         assertTrue(getTypedef(module, "typeInt8noRange").getType().getRange() == null);
204
205         assertTrue(getTypedef(module, "typeInt8WithRange") != null);
206         assertTrue(getTypedef(module, "typeInt8WithRange").getType().getDataType().equals("int8"));
207         assertTrue(getTypedef(module, "typeInt8WithRange").getType().getRange() != null);
208         assertTrue(getTypedef(module, "typeInt8WithRange").getType().getRange().getBoundaries().size() == 1);
209         assertTrue(getTypedef(module, "typeInt8WithRange").getType().getRange().getBoundaries().get(0).lower.equals(
210                 new BigDecimal("10")));
211         assertTrue(getTypedef(module, "typeInt8WithRange").getType().getRange().getBoundaries().get(0).upper.equals(
212                 new BigDecimal("20")));
213
214         final YContainer cont1 = getContainer(module, "cont1");
215         assertTrue(cont1 != null);
216
217         assertTrue(getLeaf(cont1, "leaf1").getType().getDataType().equals("int8"));
218         assertTrue(getLeaf(cont1, "leaf1").getType().getRange() == null);
219
220         assertTrue(getLeaf(cont1, "leaf2").getType().getDataType().equals("int8"));
221         assertTrue(getLeaf(cont1, "leaf2").getType().getRange() != null);
222         assertTrue(getLeaf(cont1, "leaf2").getType().getRange().getBoundaries().size() == 1);
223         assertTrue(getLeaf(cont1, "leaf2").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
224                 "-128")));
225         assertTrue(getLeaf(cont1, "leaf2").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("127")));
226
227         assertTrue(getLeaf(cont1, "leaf3").getType().getDataType().equals("int64"));
228         assertTrue(getLeaf(cont1, "leaf3").getType().getRange() != null);
229         assertTrue(getLeaf(cont1, "leaf3").getType().getRange().getBoundaries().size() == 1);
230         assertTrue(getLeaf(cont1, "leaf3").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal(
231                 "-9223372036854775808")));
232         assertTrue(getLeaf(cont1, "leaf3").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal(
233                 "9223372036854775807")));
234
235         assertTrue(getLeaf(cont1, "leaf4").getType().getDataType().equals("uint8"));
236         assertTrue(getLeaf(cont1, "leaf4").getType().getRange() != null);
237         assertTrue(getLeaf(cont1, "leaf4").getType().getRange().getBoundaries().size() == 1);
238         assertTrue(getLeaf(cont1, "leaf4").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal("0")));
239         assertTrue(getLeaf(cont1, "leaf4").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("255")));
240
241         assertTrue(getLeaf(cont1, "leaf5").getType().getDataType().equals("uint64"));
242         assertTrue(getLeaf(cont1, "leaf5").getType().getRange() != null);
243         assertTrue(getLeaf(cont1, "leaf5").getType().getRange().getBoundaries().size() == 1);
244         assertTrue(getLeaf(cont1, "leaf5").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal("0")));
245         assertTrue(getLeaf(cont1, "leaf5").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal(
246                 "18446744073709551615")));
247
248         assertTrue(getLeaf(cont1, "leaf6").getType().getDataType().equals("int8"));
249         assertTrue(getLeaf(cont1, "leaf6").getType().getRange() != null);
250         assertTrue(getLeaf(cont1, "leaf6").getType().getRange().getBoundaries().size() == 1);
251         assertTrue(getLeaf(cont1, "leaf6").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal("10")));
252         assertTrue(getLeaf(cont1, "leaf6").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("20")));
253
254         assertTrue(getLeaf(cont1, "leaf7").getType().getDataType().equals("int8"));
255         assertTrue(getLeaf(cont1, "leaf7").getType().getRange() != null);
256         assertTrue(getLeaf(cont1, "leaf7").getType().getRange().getBoundaries().size() == 2);
257         assertTrue(getLeaf(cont1, "leaf7").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal("-50")));
258         assertTrue(getLeaf(cont1, "leaf7").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("-20")));
259         assertTrue(getLeaf(cont1, "leaf7").getType().getRange().getBoundaries().get(1).lower.equals(new BigDecimal("30")));
260         assertTrue(getLeaf(cont1, "leaf7").getType().getRange().getBoundaries().get(1).upper.equals(new BigDecimal("60")));
261
262         assertTrue(getLeaf(cont1, "leaf8").getType().getDataType().equals("uint64"));
263         assertTrue(getLeaf(cont1, "leaf8").getType().getRange() != null);
264         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().size() == 3);
265         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal("5")));
266         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("5")));
267         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().get(1).lower.equals(new BigDecimal("10")));
268         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().get(1).upper.equals(new BigDecimal("10")));
269         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().get(2).lower.equals(new BigDecimal("70")));
270         assertTrue(getLeaf(cont1, "leaf8").getType().getRange().getBoundaries().get(2).upper.equals(new BigDecimal("70")));
271
272         assertTrue(getLeaf(cont1, "leaf9").getType().getDataType().equals("int8"));
273         assertTrue(getLeaf(cont1, "leaf9").getType().getRange() != null);
274         assertTrue(getLeaf(cont1, "leaf9").getType().getRange().getBoundaries().size() == 1);
275         assertTrue(getLeaf(cont1, "leaf9").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal("10")));
276         assertTrue(getLeaf(cont1, "leaf9").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("20")));
277
278         assertTrue(getLeaf(cont1, "leaf10").getType().getDataType().equals("int8"));
279         assertTrue(getLeaf(cont1, "leaf10").getType().getRange() != null);
280         assertTrue(getLeaf(cont1, "leaf10").getType().getRange().getBoundaries().size() == 1);
281         assertTrue(getLeaf(cont1, "leaf10").getType().getRange().getBoundaries().get(0).lower.equals(new BigDecimal("17")));
282         assertTrue(getLeaf(cont1, "leaf10").getType().getRange().getBoundaries().get(0).upper.equals(new BigDecimal("19")));
283     }
284
285     @Test
286     public void testRangeSimpleFaulty() {
287
288         parseRelativeImplementsYangModels(Arrays.asList("range-test/range-test-module-simple-faulty.yang"));
289
290         final YModule module = getModule("range-test-module-simple-faulty");
291         assertTrue(module != null);
292
293         // -------------------------- Simple ranges that are faulty for a variety of reasons --------------------
294
295         final YContainer cont1 = getContainer(module, "cont1");
296         assertTrue(cont1 != null);
297
298         assertStatementHasFindingOfType(getLeaf(cont1, "leaf1").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
299                 .toString());
300         assertStatementHasFindingOfType(getLeaf(cont1, "leaf2").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
301                 .toString());
302         assertStatementHasFindingOfType(getLeaf(cont1, "leaf3").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
303                 .toString());
304         assertStatementHasFindingOfType(getLeaf(cont1, "leaf4").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
305                 .toString());
306         assertStatementHasFindingOfType(getLeaf(cont1, "leaf5").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
307                 .toString());
308         assertStatementHasFindingOfType(getLeaf(cont1, "leaf6").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
309                 .toString());
310         assertStatementHasFindingOfType(getLeaf(cont1, "leaf7").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
311                 .toString());
312         assertStatementHasFindingOfType(getLeaf(cont1, "leaf8").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
313                 .toString());
314         assertStatementHasFindingOfType(getLeaf(cont1, "leaf9").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
315                 .toString());
316         assertStatementHasFindingOfType(getLeaf(cont1, "leaf10").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
317                 .toString());
318         assertStatementHasFindingOfType(getLeaf(cont1, "leaf11").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
319                 .toString());
320         assertStatementHasFindingOfType(getLeaf(cont1, "leaf12").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
321                 .toString());
322     }
323
324     @Test
325     public void testRangeTypedefsFaulty() {
326
327         severityCalculator.suppressFinding(ParserFindingType.P115_TYPEDEF_USED_ONCE_ONLY.toString());
328         severityCalculator.suppressFinding(ParserFindingType.P114_TYPEDEF_NOT_USED.toString());
329
330         parseRelativeImplementsYangModels(Arrays.asList("range-test/range-test-module-typedefs-faulty.yang"));
331
332         final YModule module = getModule("range-test-module-typedefs-faulty");
333         assertTrue(module != null);
334
335         // -------------------------- Ranges and typedefs that are incorrect --------------------
336
337         assertNoFindingsOnStatement(getTypedef(module, "typeInt8noRange"));
338         assertNoFindingsOnStatement(getTypedef(module, "typeInt64noRange"));
339         assertNoFindingsOnStatement(getTypedef(module, "typeUint8noRange"));
340         assertNoFindingsOnStatement(getTypedef(module, "typeUint64noRange"));
341         assertStatementHasFindingOfType(getTypedef(module, "typeInt8WithRange").getType().getRange(),
342                 ParserFindingType.P053_INVALID_VALUE.toString());
343         assertNoFindingsOnStatement(getTypedef(module, "typeUsingTypeInt8WithRange"));
344
345         final YContainer cont1 = getContainer(module, "cont1");
346         assertTrue(cont1 != null);
347
348         assertStatementHasFindingOfType(getLeaf(cont1, "leaf1").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
349                 .toString());
350         assertStatementHasFindingOfType(getLeaf(cont1, "leaf2").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
351                 .toString());
352         assertStatementHasFindingOfType(getLeaf(cont1, "leaf3").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
353                 .toString());
354         assertStatementHasFindingOfType(getLeaf(cont1, "leaf4").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
355                 .toString());
356         assertStatementHasFindingOfType(getLeaf(cont1, "leaf5").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
357                 .toString());
358         assertStatementHasFindingOfType(getLeaf(cont1, "leaf6").getType().getRange(), ParserFindingType.P053_INVALID_VALUE
359                 .toString());
360     }
361
362 }