use super::*;
use crate::Tag;
use der::{Decode, Encode};
use hex_literal::hex;
use std::vec::Vec;
const TEST_TAG: Tag = Tag::from_bytes([b'T', b'E', b'S', b'T']);
const TEST_BUILDER_STR: &str = "TestImageBuilder-1337.0.1";
const TEST_DATA: &[u8] = b"foobar";
const TEST_PAYLOAD: &[u8] = &hex!(
"302f1604494d3450160454455354161954657374496d6167654275696c646572
2d313333372e302e310406666f6f626172"
);
#[test]
fn test_decode() {
let payload = PayloadRef::from_der(TEST_PAYLOAD).unwrap();
assert_eq!(payload.tag_4cc, TEST_TAG);
assert_eq!(payload.builder_string(), TEST_BUILDER_STR);
assert_eq!(payload.data(), TEST_DATA);
assert!(payload.keybags.is_none());
assert!(payload.compr_info.is_none());
}
#[test]
fn test_decode_encode() {
let payload = PayloadRef::from_der(TEST_PAYLOAD).unwrap();
let mut encoded = Vec::new();
payload.encode_to_vec(&mut encoded).unwrap();
assert_eq!(encoded, TEST_PAYLOAD);
}