#![allow(clippy::unwrap_used, clippy::expect_used)]
use feedparser_rs::parse;
#[test]
fn test_dc_creator_overrides_author() {
let xml = include_bytes!("../../../tests/fixtures/rss/entry_author_dc_creator.xml");
let result = parse(xml).unwrap();
let entry = &result.entries[0];
assert_eq!(entry.author.as_deref(), Some("DC Creator"));
let detail = entry
.author_detail
.as_ref()
.expect("author_detail must be set");
assert_eq!(detail.name.as_deref(), Some("Name"));
assert_eq!(detail.email.as_deref(), Some("email@x.com"));
assert_eq!(entry.dc_creator.as_deref(), Some("DC Creator"));
assert!(!result.bozo);
}
#[test]
fn test_dc_creator_overrides_author_when_dc_first() {
let xml = include_bytes!("../../../tests/fixtures/rss/entry_author_dc_creator_first.xml");
let result = parse(xml).unwrap();
let entry = &result.entries[0];
assert_eq!(entry.author.as_deref(), Some("DC Creator"));
let detail = entry
.author_detail
.as_ref()
.expect("author_detail must be set");
assert_eq!(detail.name.as_deref(), Some("Name"));
assert_eq!(detail.email.as_deref(), Some("email@x.com"));
assert_eq!(entry.dc_creator.as_deref(), Some("DC Creator"));
assert!(!result.bozo);
}
#[test]
fn test_author_raw_string_preserved() {
let xml = include_bytes!("../../../tests/fixtures/rss/entry_author_raw.xml");
let result = parse(xml).unwrap();
let entry = &result.entries[0];
assert_eq!(entry.author.as_deref(), Some("email@x.com (Author Name)"));
let detail = entry
.author_detail
.as_ref()
.expect("author_detail must be set");
assert_eq!(detail.name.as_deref(), Some("Author Name"));
assert!(!result.bozo);
}