1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.asn1.ber ;
18
19
20 import org.apache.asn1.ber.AbstractDecoderTestCase;
21 import org.apache.asn1.ber.BERDecoderState;
22
23
24 /***
25 * Here we test simple 1 byte tag and length values to test the decoder's
26 * ability to handle these most simple tlvs.
27 *
28 * @author <a href="mailto:dev@directory.apache.org">
29 * Apache Directory Project</a>
30 * @version $Rev: 157644 $
31 */
32 public class SingleByteTagTests extends AbstractDecoderTestCase
33 {
34
35 /***
36 * @param arg0
37 */
38 public SingleByteTagTests( String arg0 )
39 {
40 super( arg0 ) ;
41 }
42
43
44 public void testAppTypeClass() throws Exception
45 {
46 Tuple tlv = decode( "01000001" ) ;
47 assertEquals( 1, tlv.id ) ;
48 assertEquals( 0, tlvList.size() ) ;
49 assertEquals( true, tlv.isPrimitive ) ;
50 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
51 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
52 }
53
54
55 public void testPrivTypeClass() throws Exception
56 {
57 Tuple tlv = decode( "11000001" ) ;
58 assertEquals( 1, tlv.id ) ;
59 assertEquals( 0, tlvList.size() ) ;
60 assertEquals( true, tlv.isPrimitive ) ;
61 assertEquals( TypeClass.PRIVATE, tlv.typeClass ) ;
62 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
63 }
64
65
66 public void testCtxTypeClass() throws Exception
67 {
68 Tuple tlv = decode( "10000001" ) ;
69 assertEquals( 1, tlv.id ) ;
70 assertEquals( 0, tlvList.size() ) ;
71 assertEquals( true, tlv.isPrimitive ) ;
72 assertEquals( TypeClass.CONTEXT_SPECIFIC, tlv.typeClass ) ;
73 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
74 }
75
76
77 public void testUniTypeClass() throws Exception
78 {
79 Tuple tlv = decode( "01000001" ) ;
80 assertEquals( 1, tlv.id ) ;
81 assertEquals( 0, tlvList.size() ) ;
82 assertEquals( true, tlv.isPrimitive ) ;
83 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
84 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
85
86 }
87
88 public void testIllegalStateWithUniTypeClass() throws Exception
89 {
90 try
91 {
92 Tuple tlv = decode( "00000001" ) ;
93 }
94 catch( IllegalStateException e )
95 {
96 assertNotNull( e ) ;
97 }
98 }
99
100 public void testId1() throws Exception
101 {
102 Tuple tlv = decode( "01000001" ) ;
103 assertEquals( 1, tlv.id ) ;
104 assertEquals( 0, tlvList.size() ) ;
105 assertEquals( true, tlv.isPrimitive ) ;
106 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
107 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
108 }
109
110
111 public void testId2() throws Exception
112 {
113 Tuple tlv = decode( "01000010" ) ;
114 assertEquals( 2, tlv.id ) ;
115 assertEquals( 0, tlvList.size() ) ;
116 assertEquals( true, tlv.isPrimitive ) ;
117 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
118 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
119 }
120
121
122 public void testId3() throws Exception
123 {
124 Tuple tlv = decode( "01000011" ) ;
125 assertEquals( 3, tlv.id ) ;
126 assertEquals( 0, tlvList.size() ) ;
127 assertEquals( true, tlv.isPrimitive ) ;
128 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
129 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
130 }
131
132
133 public void testId4() throws Exception
134 {
135 Tuple tlv = decode( "01000100" ) ;
136 assertEquals( 4, tlv.id ) ;
137 assertEquals( 0, tlvList.size() ) ;
138 assertEquals( true, tlv.isPrimitive ) ;
139 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
140 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
141 }
142
143
144 public void testId5() throws Exception
145 {
146 Tuple tlv = decode( "01000101" ) ;
147 assertEquals( 5, tlv.id ) ;
148 assertEquals( 0, tlvList.size() ) ;
149 assertEquals( true, tlv.isPrimitive ) ;
150 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
151 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
152 }
153
154
155 public void testId6() throws Exception
156 {
157 Tuple tlv = decode( "01000110" ) ;
158 assertEquals( 6, tlv.id ) ;
159 assertEquals( 0, tlvList.size() ) ;
160 assertEquals( true, tlv.isPrimitive ) ;
161 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
162 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
163 }
164
165
166 public void testId7() throws Exception
167 {
168 Tuple tlv = decode( "01000111" ) ;
169 assertEquals( 7, tlv.id ) ;
170 assertEquals( 0, tlvList.size() ) ;
171 assertEquals( true, tlv.isPrimitive ) ;
172 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
173 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
174 }
175
176
177 public void testId8() throws Exception
178 {
179 Tuple tlv = decode( "01001000" ) ;
180 assertEquals( 8, tlv.id ) ;
181 assertEquals( 0, tlvList.size() ) ;
182 assertEquals( true, tlv.isPrimitive ) ;
183 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
184 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
185 }
186
187
188 public void testId9() throws Exception
189 {
190 Tuple tlv = decode( "01001001" ) ;
191 assertEquals( 9, tlv.id ) ;
192 assertEquals( 0, tlvList.size() ) ;
193 assertEquals( true, tlv.isPrimitive ) ;
194 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
195 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
196 }
197
198
199 public void testId10() throws Exception
200 {
201 Tuple tlv = decode( "01001010" ) ;
202 assertEquals( 10, tlv.id ) ;
203 assertEquals( 0, tlvList.size() ) ;
204 assertEquals( true, tlv.isPrimitive ) ;
205 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
206 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
207 }
208
209
210 public void testId11() throws Exception
211 {
212 Tuple tlv = decode( "01001011" ) ;
213 assertEquals( 11, tlv.id ) ;
214 assertEquals( 0, tlvList.size() ) ;
215 assertEquals( true, tlv.isPrimitive ) ;
216 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
217 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
218 }
219
220
221 public void testId12() throws Exception
222 {
223 Tuple tlv = decode( "01001100" ) ;
224 assertEquals( 12, tlv.id ) ;
225 assertEquals( 0, tlvList.size() ) ;
226 assertEquals( true, tlv.isPrimitive ) ;
227 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
228 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
229 }
230
231
232 public void testId13() throws Exception
233 {
234 Tuple tlv = decode( "01001101" ) ;
235 assertEquals( 13, tlv.id ) ;
236 assertEquals( 0, tlvList.size() ) ;
237 assertEquals( true, tlv.isPrimitive ) ;
238 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
239 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
240 }
241
242
243 public void testId14() throws Exception
244 {
245 Tuple tlv = decode( "01001110" ) ;
246 assertEquals( 14, tlv.id ) ;
247 assertEquals( 0, tlvList.size() ) ;
248 assertEquals( true, tlv.isPrimitive ) ;
249 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
250 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
251 }
252
253
254 public void testId15() throws Exception
255 {
256 Tuple tlv = decode( "01001111" ) ;
257 assertEquals( 15, tlv.id ) ;
258 assertEquals( 0, tlvList.size() ) ;
259 assertEquals( true, tlv.isPrimitive ) ;
260 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
261 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
262 }
263
264
265 public void testId16() throws Exception
266 {
267 Tuple tlv = decode( "01010000" ) ;
268 assertEquals( 16, tlv.id ) ;
269 assertEquals( 0, tlvList.size() ) ;
270 assertEquals( true, tlv.isPrimitive ) ;
271 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
272 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
273 }
274
275
276 public void testId17() throws Exception
277 {
278 Tuple tlv = decode( "01010001" ) ;
279 assertEquals( 17, tlv.id ) ;
280 assertEquals( 0, tlvList.size() ) ;
281 assertEquals( true, tlv.isPrimitive ) ;
282 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
283 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
284 }
285
286
287 public void testId18() throws Exception
288 {
289 Tuple tlv = decode( "01010010" ) ;
290 assertEquals( 18, tlv.id ) ;
291 assertEquals( 0, tlvList.size() ) ;
292 assertEquals( true, tlv.isPrimitive ) ;
293 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
294 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
295 }
296
297
298 public void testId19() throws Exception
299 {
300 Tuple tlv = decode( "01010011" ) ;
301 assertEquals( 19, tlv.id ) ;
302 assertEquals( 0, tlvList.size() ) ;
303 assertEquals( true, tlv.isPrimitive ) ;
304 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
305 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
306 }
307
308
309 public void testId20() throws Exception
310 {
311 Tuple tlv = decode( "01010100" ) ;
312 assertEquals( 20, tlv.id ) ;
313 assertEquals( 0, tlvList.size() ) ;
314 assertEquals( true, tlv.isPrimitive ) ;
315 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
316 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
317 }
318
319
320 public void testId21() throws Exception
321 {
322 Tuple tlv = decode( "01010101" ) ;
323 assertEquals( 21, tlv.id ) ;
324 assertEquals( 0, tlvList.size() ) ;
325 assertEquals( true, tlv.isPrimitive ) ;
326 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
327 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
328 }
329
330
331 public void testId22() throws Exception
332 {
333 Tuple tlv = decode( "01010110" ) ;
334 assertEquals( 22, tlv.id ) ;
335 assertEquals( 0, tlvList.size() ) ;
336 assertEquals( true, tlv.isPrimitive ) ;
337 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
338 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
339 }
340
341
342 public void testId23() throws Exception
343 {
344 Tuple tlv = decode( "01010111" ) ;
345 assertEquals( 23, tlv.id ) ;
346 assertEquals( 0, tlvList.size() ) ;
347 assertEquals( true, tlv.isPrimitive ) ;
348 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
349 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
350 }
351
352
353 public void testId24() throws Exception
354 {
355 Tuple tlv = decode( "01011000" ) ;
356 assertEquals( 24, tlv.id ) ;
357 assertEquals( 0, tlvList.size() ) ;
358 assertEquals( true, tlv.isPrimitive ) ;
359 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
360 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
361 }
362
363
364 public void testId25() throws Exception
365 {
366 Tuple tlv = decode( "01011001" ) ;
367 assertEquals( 25, tlv.id ) ;
368 assertEquals( 0, tlvList.size() ) ;
369 assertEquals( true, tlv.isPrimitive ) ;
370 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
371 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
372 }
373
374
375 public void testId26() throws Exception
376 {
377 Tuple tlv = decode( "01011010" ) ;
378 assertEquals( 26, tlv.id ) ;
379 assertEquals( 0, tlvList.size() ) ;
380 assertEquals( true, tlv.isPrimitive ) ;
381 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
382 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
383 }
384
385
386 public void testId27() throws Exception
387 {
388 Tuple tlv = decode( "01011011" ) ;
389 assertEquals( 27, tlv.id ) ;
390 assertEquals( 0, tlvList.size() ) ;
391 assertEquals( true, tlv.isPrimitive ) ;
392 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
393 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
394 }
395
396
397 public void testId28() throws Exception
398 {
399 Tuple tlv = decode( "01011100" ) ;
400 assertEquals( 28, tlv.id ) ;
401 assertEquals( 0, tlvList.size() ) ;
402 assertEquals( true, tlv.isPrimitive ) ;
403 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
404 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
405 }
406
407
408 public void testId29() throws Exception
409 {
410 Tuple tlv = decode( "01011101" ) ;
411 assertEquals( 29, tlv.id ) ;
412 assertEquals( 0, tlvList.size() ) ;
413 assertEquals( true, tlv.isPrimitive ) ;
414 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
415 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
416 }
417
418
419 public void testId30() throws Exception
420 {
421 Tuple tlv = decode( "01011110" ) ;
422 assertEquals( 30, tlv.id ) ;
423 assertEquals( 0, tlvList.size() ) ;
424 assertEquals( true, tlv.isPrimitive ) ;
425 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
426 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
427 }
428
429
430 public void testIdOverLimit() throws Exception
431 {
432
433 Tuple tlv = decode( "01011111" ) ;
434
435 assertEquals( 0, tlv.id ) ;
436 assertEquals( 0, tlvList.size() ) ;
437 assertEquals( true, tlv.isPrimitive ) ;
438 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
439
440
441 assertEquals( BERDecoderState.TAG, decoder.getState() ) ;
442 }
443
444
445 public void testIsConstructed() throws Exception
446 {
447 Tuple tlv = decode( "01111110" ) ;
448 assertEquals( 30, tlv.id ) ;
449 assertEquals( 0, tlvList.size() ) ;
450 assertEquals( false, tlv.isPrimitive ) ;
451 assertEquals( TypeClass.APPLICATION, tlv.typeClass ) ;
452 assertEquals( BERDecoderState.LENGTH, decoder.getState() ) ;
453 }
454 }