forked from kellerkindt/asn1rs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
resolve_enumerated.rs
70 lines (60 loc) · 1.22 KB
/
resolve_enumerated.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
mod test_utils;
use test_utils::*;
asn_to_rust!(
r"BasicEnumerated DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
Basic ::= ENUMERATED {
abc,
def,
ghi
}
Container ::= SEQUENCE {
the-selection Basic DEFAULT abc
}
END"
);
#[test]
pub fn does_it_compile() {
let _ = Basic::Abc;
let _ = Basic::Def;
let _ = Basic::Ghi;
let seq = Container {
the_selection: Basic::Def,
};
PrintlnWriter::default().write(&seq).unwrap();
// Writing sequence MyCleverSeq, tag=Universal(16)
// Writing DEFAULT (default: 1337)
// Some
// WRITING Integer(MIN..MAX), tag=ContextSpecific(0)
// 5
}
#[test]
pub fn the_selection_abc() {
serialize_and_deserialize_uper(
1,
&[0x00],
&Container {
the_selection: Basic::Abc,
},
);
}
#[test]
pub fn the_selection_def() {
serialize_and_deserialize_uper(
3,
&[0xA0],
&Container {
the_selection: Basic::Def,
},
);
}
#[test]
pub fn the_selection_ghi() {
serialize_and_deserialize_uper(
3,
&[0xC0],
&Container {
the_selection: Basic::Ghi,
},
);
}