pub use crate::generated::models::*;
use azure_core::{error::ErrorKind, Result};
impl ListOfSentMessage {
pub fn into_message(self) -> Result<SentMessage> {
self.items
.and_then(|v| v.into_iter().next())
.ok_or_else(|| {
azure_core::Error::with_message(
ErrorKind::DataConversion,
"expected a sent message in the response",
)
})
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn into_message_returns_first() {
let list = ListOfSentMessage {
items: Some(vec![SentMessage {
message_id: Some("abc".into()),
..Default::default()
}]),
};
let msg = list.into_message().expect("expected a message");
assert_eq!(msg.message_id.as_deref(), Some("abc"));
}
#[test]
fn into_message_errors_when_empty() {
let list = ListOfSentMessage { items: None };
let err = list.into_message().expect_err("expected an error");
assert_eq!(err.kind(), &ErrorKind::DataConversion);
let list = ListOfSentMessage {
items: Some(vec![]),
};
let err = list.into_message().expect_err("expected an error");
assert_eq!(err.kind(), &ErrorKind::DataConversion);
}
}