diff --git a/tests/toder_sequence_lifetime.rs b/tests/toder_sequence_lifetime.rs new file mode 100644 index 0000000..0e91a54 --- /dev/null +++ b/tests/toder_sequence_lifetime.rs @@ -0,0 +1,30 @@ +use asn1_rs::*; +use hex_literal::hex; + +#[derive(Debug, PartialEq, DerSequence, ToDerSequence)] +#[debug_derive] +pub struct T1<'a> { + a: u32, + b: u16, + c: u16, + d: &'a str, +} + +#[test] +fn toder_sequence_lifetime() { + let input = &hex!("300f0201 01020102 020103 0c0461626364"); + let (rem, t1) = T1::from_der(input).expect("parsing failed"); + assert!(rem.is_empty()); + assert_eq!( + t1, + T1 { + a: 1, + b: 2, + c: 3, + d: "abcd" + } + ); + // serialize back data + let output = t1.to_der_vec().expect("serialization failed"); + assert_eq!(&input[..], output); +} diff --git a/tests/toder_sequence_simple.rs b/tests/toder_sequence_simple.rs new file mode 100644 index 0000000..ad25850 --- /dev/null +++ b/tests/toder_sequence_simple.rs @@ -0,0 +1,21 @@ +use asn1_rs::*; +use hex_literal::hex; + +#[derive(Debug, PartialEq, DerSequence, ToDerSequence)] +#[debug_derive] +pub struct T1 { + a: u32, + b: u16, + c: u16, +} + +#[test] +fn toder_sequence() { + let input = &hex!("30090201 01020102 020103"); + let (rem, t1) = T1::from_der(input).expect("parsing failed"); + assert!(rem.is_empty()); + assert_eq!(t1, T1 { a: 1, b: 2, c: 3 }); + // serialize back data + let output = t1.to_der_vec().expect("serialization failed"); + assert_eq!(&input[..], output); +}