pub mod dynamic;
pub mod metadata_document;
#[cfg(test)]
mod construction {
use super::dynamic::Rfc7591Registrar;
use super::metadata_document::PublishedDocumentLoader;
use crate::application::oauth::registration::{DynamicRegistrar, MetadataDocumentLoader};
fn is_a_dynamic_port<T: DynamicRegistrar + ?Sized>(_: &T) {}
fn is_a_document_port<T: MetadataDocumentLoader + ?Sized>(_: &T) {}
#[test]
fn both_adapters_construct_without_touching_the_network() {
let dynamic = Rfc7591Registrar::new("https://auth.example.com/register");
assert_eq!(dynamic.endpoint(), "https://auth.example.com/register");
let loader = PublishedDocumentLoader::default();
is_a_dynamic_port(&dynamic);
is_a_document_port(&loader);
}
#[test]
fn the_http_client_can_be_replaced_on_both() {
let http = reqwest::Client::new();
let dynamic = Rfc7591Registrar::new("https://auth.example.com/register")
.with_http_client(http.clone());
let loader = PublishedDocumentLoader::new().with_http_client(http);
assert_eq!(dynamic.endpoint(), "https://auth.example.com/register");
let _: PublishedDocumentLoader = loader;
}
}