short-uuid/tests/tests.rs

91 lines
2.2 KiB
Rust

use uuid::Uuid;
use short_uuid::{Base58, Base58Flickr, Base62, Base64, Base64Url, Base90Cookie};
const TEST_BTS: [u8; 16] = [
0xa1, 0xa2, 0xa3, 0xa4, 0xb1, 0xb2, 0xc1, 0xc2, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8,
];
#[test]
fn encode() {
let id = Uuid::from_bytes(TEST_BTS);
assert_eq!(id.encode_base58(), "LxeUnqNwLWQUv2JDtUgQij", "base58");
assert_eq!(
id.encode_base58_flickr(),
"kXDtMQnWkvptV2idTtFpHJ",
"base58_flickr"
);
assert_eq!(id.encode_base62(), "E5AFntbcXX94NUWEAnyKso", "base62");
assert_eq!(id.encode_base64(), "ChoqOksbLBwtHS09TV1tfY", "base64");
assert_eq!(
id.encode_base64_url(),
"ChoqOksbLBwtHS09TV1tfY",
"base64_url"
);
assert_eq!(
id.encode_base90_cookie(),
"f[C/Q&zL=$&/`K7o~DT!",
"base90_cookie"
);
}
#[test]
fn decode() {
let id = Uuid::from_bytes(TEST_BTS);
assert_eq!(
Uuid::decode_base58("LxeUnqNwLWQUv2JDtUgQij").unwrap(),
id,
"base58"
);
assert_eq!(
Uuid::decode_base58_flickr("kXDtMQnWkvptV2idTtFpHJ").unwrap(),
id,
"base58_flickr"
);
assert_eq!(
Uuid::decode_base62("E5AFntbcXX94NUWEAnyKso").unwrap(),
id,
"base62"
);
assert_eq!(
Uuid::decode_base64("ChoqOksbLBwtHS09TV1tfY").unwrap(),
id,
"base64"
);
assert_eq!(
Uuid::decode_base64_url("ChoqOksbLBwtHS09TV1tfY").unwrap(),
id,
"base64_url"
);
assert_eq!(
Uuid::decode_base90_cookie("f[C/Q&zL=$&/`K7o~DT!").unwrap(),
id,
"base90_cookie"
);
}
#[cfg(feature = "serde")]
mod serialization {
use super::*;
use serde::{Deserialize, Serialize};
#[test]
fn serialization() {
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)]
struct S {
#[serde(with = "short_uuid::serde::base58")]
id: Uuid,
}
let s1 = S {
id: Uuid::from_bytes(TEST_BTS),
};
let expect = r#"{"id":"LxeUnqNwLWQUv2JDtUgQij"}"#;
let json = serde_json::to_string(&s1).unwrap();
assert_eq!(json, expect);
let de_s1 = serde_json::from_str::<S>(expect).unwrap();
assert_eq!(de_s1, s1);
}
}