// Copyright (c) 2017 Emmanuel Gil Peyrot // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. use minidom::Element; use error::Error; use ns; generate_empty_element!(Request, "request", ns::RECEIPTS); generate_element_with_only_attributes!(Received, "received", ns::RECEIPTS, [ id: Option = "id" => optional, ]); #[cfg(test)] mod tests { use super::*; use try_from::TryFrom; #[test] fn test_simple() { let elem: Element = "".parse().unwrap(); Request::try_from(elem).unwrap(); let elem: Element = "".parse().unwrap(); Received::try_from(elem).unwrap(); let elem: Element = "".parse().unwrap(); Received::try_from(elem).unwrap(); } #[test] fn test_serialise() { let receipt = Request; let elem: Element = receipt.into(); assert!(elem.is("request", ns::RECEIPTS)); assert_eq!(elem.attrs().count(), 0); let receipt = Received { id: Some(String::from("coucou")), }; let elem: Element = receipt.into(); assert!(elem.is("received", ns::RECEIPTS)); assert_eq!(elem.attr("id"), Some("coucou")); } }