tirocinio-canali-steffo-acrate/acrate_astreams/tests/test_activitystreams.rs

270 lines
12 KiB
Rust
Raw Normal View History

2024-12-24 17:26:26 +00:00
use acrate_astreams::activitystreams::StreamsLink;
macro_rules! test_example {
($modname:ident, $filename:literal) => {
mod $modname {
2024-12-24 17:26:26 +00:00
use json_ld::syntax::Parse;
use json_ld::Expand;
pub const DATA: &'static str = include_str!($filename);
pub fn parse() -> json_ld::syntax::Value {
let (value, _codemap) = json_ld::syntax::Value::parse_str(DATA)
.expect("Failed to parse example");
value
}
pub fn document() -> json_ld::RemoteDocument {
let document = json_ld::RemoteDocument::new(
None,
None,
parse(),
);
document
}
pub async fn expand() -> json_ld::ExpandedDocument {
let mut loader = json_ld::ReqwestLoader::new();
let doc = document();
let expanded = doc.expand(&mut loader)
.await
.expect("Failed to expand JSON-LD document");
expanded
}
2024-12-24 17:26:26 +00:00
#[tokio::test]
async fn test_expand() {
let doc = expand().await;
println!("{doc:#?}");
}
}
}
}
test_example!(e001, "./activitystreams/examples/1.json");
test_example!(e002, "./activitystreams/examples/2.json");
test_example!(e003, "./activitystreams/examples/3.json");
test_example!(e004, "./activitystreams/examples/4.json");
test_example!(e005, "./activitystreams/examples/5.json");
test_example!(e006, "./activitystreams/examples/6.json");
test_example!(e007, "./activitystreams/examples/7.json");
test_example!(e008, "./activitystreams/examples/8.json");
test_example!(e009, "./activitystreams/examples/9.json");
test_example!(e010, "./activitystreams/examples/10.json");
test_example!(e011, "./activitystreams/examples/11.json");
test_example!(e012, "./activitystreams/examples/12.json");
test_example!(e013, "./activitystreams/examples/13.json");
test_example!(e014, "./activitystreams/examples/14.json");
test_example!(e015, "./activitystreams/examples/15.json");
test_example!(e016, "./activitystreams/examples/16.json");
test_example!(e017, "./activitystreams/examples/17.json");
test_example!(e018, "./activitystreams/examples/18.json");
test_example!(e019, "./activitystreams/examples/19.json");
test_example!(e020, "./activitystreams/examples/20.json");
test_example!(e021, "./activitystreams/examples/21.json");
test_example!(e022, "./activitystreams/examples/22.json");
test_example!(e023, "./activitystreams/examples/23.json");
test_example!(e024, "./activitystreams/examples/24.json");
test_example!(e025, "./activitystreams/examples/25.json");
test_example!(e026, "./activitystreams/examples/26.json");
test_example!(e027, "./activitystreams/examples/27.json");
test_example!(e028, "./activitystreams/examples/28.json");
test_example!(e029, "./activitystreams/examples/29.json");
test_example!(e030, "./activitystreams/examples/30.json");
test_example!(e031, "./activitystreams/examples/31.json");
test_example!(e032, "./activitystreams/examples/32.json");
test_example!(e033, "./activitystreams/examples/33.json");
test_example!(e034, "./activitystreams/examples/34.json");
test_example!(e035, "./activitystreams/examples/35.json");
test_example!(e036, "./activitystreams/examples/36.json");
test_example!(e037, "./activitystreams/examples/37.json");
test_example!(e038, "./activitystreams/examples/38.json");
test_example!(e039, "./activitystreams/examples/39.json");
test_example!(e040, "./activitystreams/examples/40.json");
test_example!(e041, "./activitystreams/examples/41.json");
test_example!(e042, "./activitystreams/examples/42.json");
test_example!(e043, "./activitystreams/examples/43.json");
test_example!(e044, "./activitystreams/examples/44.json");
test_example!(e045, "./activitystreams/examples/45.json");
test_example!(e046, "./activitystreams/examples/46.json");
test_example!(e047, "./activitystreams/examples/47.json");
test_example!(e048, "./activitystreams/examples/48.json");
test_example!(e049, "./activitystreams/examples/49.json");
test_example!(e050, "./activitystreams/examples/50.json");
test_example!(e051, "./activitystreams/examples/51.json");
test_example!(e052, "./activitystreams/examples/52.json");
test_example!(e053, "./activitystreams/examples/53.json");
test_example!(e054, "./activitystreams/examples/54.json");
test_example!(e055, "./activitystreams/examples/55.json");
test_example!(e056, "./activitystreams/examples/56.json");
test_example!(e057, "./activitystreams/examples/57.json");
test_example!(e058, "./activitystreams/examples/58.json");
test_example!(e059, "./activitystreams/examples/59.json");
test_example!(e060, "./activitystreams/examples/60.json");
test_example!(e061, "./activitystreams/examples/61.json");
test_example!(e062, "./activitystreams/examples/62.json");
test_example!(e063, "./activitystreams/examples/63.json");
test_example!(e064, "./activitystreams/examples/64.json");
test_example!(e065, "./activitystreams/examples/65.json");
test_example!(e066, "./activitystreams/examples/66.json");
test_example!(e067, "./activitystreams/examples/67.json");
test_example!(e068, "./activitystreams/examples/68.json");
test_example!(e069, "./activitystreams/examples/69.json");
test_example!(e070, "./activitystreams/examples/70.json");
test_example!(e071, "./activitystreams/examples/71.json");
test_example!(e072, "./activitystreams/examples/72.json");
test_example!(e073, "./activitystreams/examples/73.json");
test_example!(e074, "./activitystreams/examples/74.json");
test_example!(e075, "./activitystreams/examples/75.json");
test_example!(e076, "./activitystreams/examples/76.json");
test_example!(e077, "./activitystreams/examples/77.json");
test_example!(e078, "./activitystreams/examples/78.json");
test_example!(e079, "./activitystreams/examples/79.json");
test_example!(e080, "./activitystreams/examples/80.json");
test_example!(e081, "./activitystreams/examples/81.json");
test_example!(e082, "./activitystreams/examples/82.json");
test_example!(e083, "./activitystreams/examples/83.json");
test_example!(e084, "./activitystreams/examples/84.json");
test_example!(e085, "./activitystreams/examples/85.json");
test_example!(e086, "./activitystreams/examples/86.json");
test_example!(e087, "./activitystreams/examples/87.json");
test_example!(e088, "./activitystreams/examples/88.json");
test_example!(e089, "./activitystreams/examples/89.json");
test_example!(e090, "./activitystreams/examples/90.json");
test_example!(e091, "./activitystreams/examples/91.json");
test_example!(e092, "./activitystreams/examples/92.json");
test_example!(e093, "./activitystreams/examples/93.json");
test_example!(e094, "./activitystreams/examples/94.json");
test_example!(e095, "./activitystreams/examples/95.json");
test_example!(e096, "./activitystreams/examples/96.json");
test_example!(e097, "./activitystreams/examples/97.json");
test_example!(e098, "./activitystreams/examples/98.json");
test_example!(e099, "./activitystreams/examples/99.json");
test_example!(e100, "./activitystreams/examples/100.json");
test_example!(e101, "./activitystreams/examples/101.json");
test_example!(e102, "./activitystreams/examples/102.json");
test_example!(e103, "./activitystreams/examples/103.json");
test_example!(e104, "./activitystreams/examples/104.json");
test_example!(e105, "./activitystreams/examples/105.json");
test_example!(e106, "./activitystreams/examples/106.json");
test_example!(e107, "./activitystreams/examples/107.json");
test_example!(e108, "./activitystreams/examples/108.json");
test_example!(e109, "./activitystreams/examples/109.json");
test_example!(e110, "./activitystreams/examples/110.json");
test_example!(e111, "./activitystreams/examples/111.json");
test_example!(e112, "./activitystreams/examples/112.json");
test_example!(e113, "./activitystreams/examples/113.json");
test_example!(e114, "./activitystreams/examples/114.json");
test_example!(e115, "./activitystreams/examples/115.json");
test_example!(e116, "./activitystreams/examples/116.json");
test_example!(e117, "./activitystreams/examples/117.json");
test_example!(e118, "./activitystreams/examples/118.json");
test_example!(e119, "./activitystreams/examples/119.json");
test_example!(e120, "./activitystreams/examples/120.json");
test_example!(e121, "./activitystreams/examples/121.json");
test_example!(e122, "./activitystreams/examples/122.json");
test_example!(e123, "./activitystreams/examples/123.json");
test_example!(e124, "./activitystreams/examples/124.json");
test_example!(e125, "./activitystreams/examples/125.json");
test_example!(e126, "./activitystreams/examples/126.json");
test_example!(e127, "./activitystreams/examples/127.json");
test_example!(e128, "./activitystreams/examples/128.json");
test_example!(e129, "./activitystreams/examples/129.json");
test_example!(e130, "./activitystreams/examples/130.json");
test_example!(e131, "./activitystreams/examples/131.json");
test_example!(e132, "./activitystreams/examples/132.json");
test_example!(e133, "./activitystreams/examples/133.json");
test_example!(e134, "./activitystreams/examples/134.json");
test_example!(e135, "./activitystreams/examples/135.json");
test_example!(e136, "./activitystreams/examples/136.json");
test_example!(e137, "./activitystreams/examples/137.json");
test_example!(e138, "./activitystreams/examples/138.json");
test_example!(e139, "./activitystreams/examples/139.json");
test_example!(e140, "./activitystreams/examples/140.json");
test_example!(e141, "./activitystreams/examples/141.json");
test_example!(e142, "./activitystreams/examples/142.json");
test_example!(e143, "./activitystreams/examples/143.json");
test_example!(e144, "./activitystreams/examples/144.json");
test_example!(e145, "./activitystreams/examples/145.json");
test_example!(e146, "./activitystreams/examples/146.json");
test_example!(e147, "./activitystreams/examples/147.json");
test_example!(e148, "./activitystreams/examples/148.json");
test_example!(e149, "./activitystreams/examples/149.json");
test_example!(e150, "./activitystreams/examples/150.json");
test_example!(e151, "./activitystreams/examples/151.json");
test_example!(e152, "./activitystreams/examples/152.json");
test_example!(e153, "./activitystreams/examples/153.json");
test_example!(e154, "./activitystreams/examples/154.json");
test_example!(e155, "./activitystreams/examples/155.json");
test_example!(e156, "./activitystreams/examples/156.json");
test_example!(e157, "./activitystreams/examples/157.json");
test_example!(e158, "./activitystreams/examples/158.json");
test_example!(e159, "./activitystreams/examples/159.json");
2024-12-24 17:26:26 +00:00
#[tokio::test]
async fn test_link_href() {
let doc = e121::expand().await;
let node = doc.main_node()
.expect("Main node was not found");
let href = {
use acrate_astreams::activitystreams::StreamsLink;
node.streams_href()
.expect("Property `href` was not found")
.expect("Property `href` failed to process")
};
assert_eq!(href, "http://example.org/abc");
}
#[tokio::test]
async fn test_link_rel() {
let doc = e131::expand().await;
let node = doc.main_node()
.expect("Main node was not found");
let mut rels = {
use acrate_astreams::activitystreams::StreamsLink;
node.streams_rel()
.map(|v| v
.expect("Property `rel` failed to process")
)
};
let rel = rels.next()
.expect("Expected `rel` [0] to be present");
assert_eq!(rel, "canonical");
let rel = rels.next()
.expect("Expected `rel` [1] to be present");
assert_eq!(rel, "preview");
}
#[tokio::test]
async fn test_link_media_type() {
let doc = e126::expand().await;
let node = doc.main_node()
.expect("Main node was not found");
let href = {
use acrate_astreams::activitystreams::StreamsLink;
node.streams_media_type()
.expect("Property `mediaType` was not found")
.expect("Property `mediaType` failed to process")
};
assert_eq!(href, mediatype::media_type!(TEXT/HTML));
}