use crate::grpc_protobuf::com::daml::ledger::api::v2::admin::IdentityProviderConfig;
#[derive(Debug, Eq, PartialEq, Clone, Default)]
pub struct DamlIdentityProviderConfig {
pub identity_provider_id: String,
pub is_deactivated: bool,
pub issuer: String,
pub jwks_url: String,
pub audience: String,
}
impl From<IdentityProviderConfig> for DamlIdentityProviderConfig {
fn from(c: IdentityProviderConfig) -> Self {
Self {
identity_provider_id: c.identity_provider_id,
is_deactivated: c.is_deactivated,
issuer: c.issuer,
jwks_url: c.jwks_url,
audience: c.audience,
}
}
}
impl From<DamlIdentityProviderConfig> for IdentityProviderConfig {
fn from(c: DamlIdentityProviderConfig) -> Self {
Self {
identity_provider_id: c.identity_provider_id,
is_deactivated: c.is_deactivated,
issuer: c.issuer,
jwks_url: c.jwks_url,
audience: c.audience,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
fn sample() -> DamlIdentityProviderConfig {
DamlIdentityProviderConfig {
identity_provider_id: "idp-test".to_owned(),
is_deactivated: true,
issuer: "https://issuer.example".to_owned(),
jwks_url: "https://example.invalid/jwks".to_owned(),
audience: "test-audience".to_owned(),
}
}
#[test]
fn roundtrip_dto_proto_dto() {
let dto = sample();
let proto: IdentityProviderConfig = dto.clone().into();
let back: DamlIdentityProviderConfig = proto.into();
assert_eq!(back, dto);
}
#[test]
fn roundtrip_default_is_lossless() {
let dto = DamlIdentityProviderConfig::default();
let proto: IdentityProviderConfig = dto.clone().into();
let back: DamlIdentityProviderConfig = proto.into();
assert_eq!(back, dto);
}
}