#[cfg(feature = "server")]
mod peer;
pub mod sample;
pub mod stores;
#[cfg(feature = "server")]
#[cfg_attr(docsrs, doc(cfg(feature = "server")))]
pub use peer::{MockPeer, MockPeerStores};
pub use stores::{InMemoryCdrs, InMemoryLocations, InMemorySessions, InMemoryTariffs, InMemoryTokens};
#[cfg(feature = "server")]
use crate::VersionNumber;
use crate::transport::CredentialsToken;
use crate::types::PartyRef;
#[must_use]
pub fn test_token(label: &str) -> CredentialsToken {
CredentialsToken::new(format!("test-token-{label}"))
.unwrap_or_else(|e| panic!("test token label {label:?} is not usable: {e}"))
}
#[must_use]
pub fn test_cpo() -> PartyRef {
PartyRef::new("NL", "TNM").expect("NL/TNM is a valid party reference")
}
#[must_use]
pub fn test_msp() -> PartyRef {
PartyRef::new("DE", "ABC").expect("DE/ABC is a valid party reference")
}
#[must_use]
pub fn test_hub() -> PartyRef {
PartyRef::new("NL", "HUB").expect("NL/HUB is a valid party reference")
}
#[cfg(feature = "server")]
#[must_use]
pub fn registered_peer(peer_id: &str, parties: Vec<PartyRef>) -> crate::server::AuthenticatedPeer {
crate::server::AuthenticatedPeer {
peer_id: peer_id.to_owned(),
role: crate::transport::TokenRole::C,
parties,
version: VersionNumber::V2_3_0,
}
}
#[cfg(feature = "server")]
#[must_use]
pub fn bootstrap_peer(peer_id: &str, parties: Vec<PartyRef>) -> crate::server::AuthenticatedPeer {
crate::server::AuthenticatedPeer {
peer_id: peer_id.to_owned(),
role: crate::transport::TokenRole::A,
parties,
version: VersionNumber::V2_3_0,
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn the_test_parties_are_the_ones_the_spec_examples_use() {
assert_eq!(test_cpo().to_string(), "NL/TNM");
assert_eq!(test_msp().to_string(), "DE/ABC");
assert!(test_token("a").expose_secret().starts_with("test-token-"));
}
}