instant_epp/extensions/rgp/
poll.rs1use chrono::{DateTime, Utc};
4use instant_xml::FromXml;
5
6use super::RgpStatus;
7
8#[derive(Debug, FromXml)]
10#[xml(rename = "pollData", ns(XMLNS), rename_all = "camelCase")]
11pub struct RgpPollData {
12 pub name: String,
13 pub rgp_status: RgpStatus,
14 pub req_date: DateTime<Utc>,
15 pub report_due_date: DateTime<Utc>,
16}
17
18pub(super) const XMLNS: &str = "http://www.verisign.com/epp/rgp-poll-1.0";
19
20#[cfg(test)]
21mod tests {
22 use super::*;
23 use crate::poll::{Poll, PollData};
24 use crate::tests::response_from_file;
25
26 #[test]
27 fn rgp_poll_data() {
28 let object = response_from_file::<Poll>("response/poll/poll_rgp_restore.xml");
29 let Some(PollData::RgpPoll(data)) = object.res_data() else {
30 panic!("expected RgpPollData");
31 };
32
33 assert_eq!(data.name, "EXAMPLE.COM");
34 assert_eq!(data.rgp_status, RgpStatus::PendingRestore);
35 }
36}