From 10a7ac77ceac274daa7935ed52e17094b2088224 Mon Sep 17 00:00:00 2001 From: shukuru Date: Sun, 18 Feb 2024 22:34:06 +0100 Subject: Unbloated deserialization test --- src/parser/deserializer.rs | 92 ++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 56 deletions(-) diff --git a/src/parser/deserializer.rs b/src/parser/deserializer.rs index 75d3c6e..e2bd108 100644 --- a/src/parser/deserializer.rs +++ b/src/parser/deserializer.rs @@ -2,9 +2,10 @@ use std::io::Read; use crate::data_structures; -fn deserialize_dmarc_report(reader: R) -> -Result { - serde_xml_rs::from_reader(reader) +fn deserialize_dmarc_report( + reader: R, +) -> Result { + serde_xml_rs::from_reader(reader) } #[cfg(test)] @@ -20,64 +21,43 @@ mod test { let reader = BufReader::new(dmarc_report_file); - let should_be = data_structures::Feedback { - version: String::from("1.0"), - report_metadata: data_structures::ReportMetadata { - org_name: String::from("Enterprise Outlook"), - email: String::from("dmarcreport@microsoft.com"), - report_id: String::from("3374fb5148ba40c1a5cf8e3d36f34a34"), - date_range: data_structures::DateRange { - begin: String::from("1707436800"), - end: String::from("1707523200"), - }, - }, - policy_published: data_structures::PolicyPublished { - domain: String::from("boitalett.re"), - adkim: String::from("s"), - aspf: String::from("s"), - p: String::from("reject"), - sp: String::from("reject"), - pct: String::from("100"), - fo: String::from("0"), - }, - record: data_structures::Record { - row: data_structures::Row { - source_ip: String::from("195.154.102.43"), - count: String::from("1"), - policy_evaluated: data_structures::PolicyEvaluated { - disposition: String::from("none"), - dkim: String::from("pass"), - spf: String::from("pass"), - }, - }, - identifiers: data_structures::Identifiers { - envelope_to: String::from("babilou.com"), - envelope_from: String::from("boitalett.re"), - header_from: String::from("boitalett.re"), - }, - auth_results: data_structures::AuthResults { - dkim: data_structures::DKIM { - domain: String::from("boitalett.re"), - selector: String::from("2023101501"), - result: String::from("pass"), - }, - spf: data_structures::SPF { - domain: String::from("boitalett.re"), - scope: String::from("mfrom"), - result: String::from("pass"), - }, - }, - }, - }; + let expected_version = "1.0".to_string(); + let expected_report_id = "3374fb5148ba40c1a5cf8e3d36f34a34".to_string(); + let expected_begin_date = "1707436800".to_string(); + let expected_policy_published_domain = "boitalett.re".to_string(); + let expected_record_row_source_ip = "195.154.102.43".to_string(); + let expected_record_row_policy_evaluated_dkim = "pass".to_string(); + let expected_identifiers_envelope_to = "babilou.com".to_string(); + let expected_auth_results_dkim_selector = "2023101501".to_string(); + let expected_auth_results_spf_scope = "mfrom".to_string(); match deserialize_dmarc_report(reader) { Ok(report) => { + assert_eq!(report.version, expected_version); + assert_eq!(report.report_metadata.report_id, expected_report_id); + assert_eq!(report.report_metadata.date_range.begin, expected_begin_date); assert_eq!( - report.report_metadata.report_id, - should_be.report_metadata.report_id + report.policy_published.domain, + expected_policy_published_domain ); - println!("{:?}", report); - }, + assert_eq!(report.record.row.source_ip, expected_record_row_source_ip); + assert_eq!( + report.record.row.policy_evaluated.dkim, + expected_record_row_policy_evaluated_dkim + ); + assert_eq!( + report.record.identifiers.envelope_to, + expected_identifiers_envelope_to + ); + assert_eq!( + report.record.auth_results.dkim.selector, + expected_auth_results_dkim_selector + ); + assert_eq!( + report.record.auth_results.spf.scope, + expected_auth_results_spf_scope + ); + } Err(err) => { panic!("{:?}", err); } -- cgit v1.2.3