use multi_codec::Codec;
use multi_key::{Builder, Multikey, KEY_CODECS};
use multi_trait::Null;
#[test]
fn test_null_multikey() {
let null_mk = Multikey::null();
assert!(null_mk.is_null());
assert_eq!(null_mk, Multikey::default());
}
#[test]
fn test_all_key_codecs() {
let mut rng = rand::rng();
for &codec in KEY_CODECS.iter() {
let result = Builder::new_from_random_bytes(codec, &mut rng);
assert!(result.is_ok(), "Failed for {:?}", codec);
}
}
#[test]
fn test_clone() {
let mut rng = rand::rng();
if let Ok(builder) = Builder::new_from_random_bytes(Codec::Ed25519Priv, &mut rng) {
if let Ok(mk1) = builder.try_build() {
let mk2 = mk1.clone();
assert_eq!(mk1, mk2);
}
}
}
#[test]
fn test_send_sync() {
fn assert_send<T: Send>() {}
fn assert_sync<T: Sync>() {}
assert_send::<Multikey>();
assert_sync::<Multikey>();
assert_send::<Builder>();
}