use super::*;
use crate::{ManifestRef, PayloadRef, RestoreInfoRef};
use alloc::vec::Vec;
use der::{Decode, Encode};
use hex_literal::hex;
const TEST_PAYLOAD: &[u8] = &hex!(
"303A1604494D3450160454455354161954657374496D6167654275696C646572
2D313333372E302E310406666F6F6261723009020101020402C3D318"
);
const TEST_IMAGE: &[u8] = include_bytes!("../../tests/data/test.img4");
const TEST_MANIFEST: &[u8] = include_bytes!("../../tests/data/apticket.der");
const TEST_RESTORE_INFO: &[u8] =
&hex!("30211604494D34523119FF8492B9864E1230101604424E434E0408A2169069D8D07E0F");
#[test]
fn test_decode() {
let image = ImageRef::from_der(TEST_IMAGE).unwrap();
let payload = PayloadRef::from_der(TEST_PAYLOAD).unwrap();
let manifest = ManifestRef::from_der(TEST_MANIFEST).unwrap();
let restore_info = RestoreInfoRef::from_der(TEST_RESTORE_INFO).unwrap();
assert_eq!(image.payload, payload);
assert_eq!(image.manifest.as_ref().unwrap(), &manifest);
assert_eq!(image.restore_info.as_ref().unwrap(), &restore_info);
}
#[test]
fn test_encode() {
let image = ImageRef::from_der(TEST_IMAGE).unwrap();
let mut encoded = Vec::new();
image.encode_to_vec(&mut encoded).unwrap();
assert_eq!(encoded, TEST_IMAGE);
}