pub const CANONICAL_PROVISION_INTEGRATION: &str =
"https://trusttasks.org/spec/provision/integration/0.1";
pub const CANONICAL_PROVISION_INTEGRATION_RESULT: &str =
"https://trusttasks.org/spec/provision/integration/0.1#response";
pub const CANONICAL_PROVISION_INTEGRATION_0_2: &str =
"https://trusttasks.org/spec/provision/integration/0.2";
pub const CANONICAL_PROVISION_INTEGRATION_0_2_RESULT: &str =
"https://trusttasks.org/spec/provision/integration/0.2#response";
pub fn result_uri_for(request_uri: &str) -> &'static str {
if request_uri == CANONICAL_PROVISION_INTEGRATION_0_2 {
CANONICAL_PROVISION_INTEGRATION_0_2_RESULT
} else {
CANONICAL_PROVISION_INTEGRATION_RESULT
}
}
pub mod request {
pub use crate::provision_integration::http::{AssertionMode, ProvisionIntegrationRequest};
}
pub mod result {
pub use crate::provision_integration::http::{ProvisionIntegrationResponse, ProvisionSummary};
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn result_uri_for_v0_1_request_emits_v0_1_response() {
assert_eq!(
result_uri_for(CANONICAL_PROVISION_INTEGRATION),
CANONICAL_PROVISION_INTEGRATION_RESULT
);
}
#[test]
fn result_uri_for_v0_2_request_emits_v0_2_response() {
assert_eq!(
result_uri_for(CANONICAL_PROVISION_INTEGRATION_0_2),
CANONICAL_PROVISION_INTEGRATION_0_2_RESULT
);
}
#[test]
fn result_uri_for_unknown_request_defaults_to_v0_1() {
assert_eq!(
result_uri_for("https://example.invalid/something-else"),
CANONICAL_PROVISION_INTEGRATION_RESULT
);
}
#[test]
fn canonical_uris_match_registry() {
assert_eq!(
CANONICAL_PROVISION_INTEGRATION,
"https://trusttasks.org/spec/provision/integration/0.1"
);
assert_eq!(
CANONICAL_PROVISION_INTEGRATION_RESULT,
"https://trusttasks.org/spec/provision/integration/0.1#response"
);
assert_eq!(
CANONICAL_PROVISION_INTEGRATION_0_2,
"https://trusttasks.org/spec/provision/integration/0.2"
);
assert_eq!(
CANONICAL_PROVISION_INTEGRATION_0_2_RESULT,
"https://trusttasks.org/spec/provision/integration/0.2#response"
);
}
}