mithril_dmq/test/
payload.rs

1//! DmqMessageTestPayload module for tests only
2
3use std::fmt::Debug;
4
5use mithril_common::{
6    StdResult,
7    crypto_helper::{TryFromBytes, TryToBytes},
8    test::double::Dummy,
9};
10
11/// A test message payload for the DMQ.
12#[derive(PartialEq, Eq, Clone)]
13pub struct DmqMessageTestPayload {
14    message: Vec<u8>,
15}
16
17impl DmqMessageTestPayload {
18    /// Creates a new `DmqMessageTestPayload` with the given bytes.
19    pub fn new(bytes: &[u8]) -> Self {
20        Self {
21            message: bytes.to_vec(),
22        }
23    }
24}
25
26impl Dummy for DmqMessageTestPayload {
27    /// Creates a dummy `DmqMessageTestPayload` with a predefined message.
28    fn dummy() -> Self {
29        Self {
30            message: b"dummy message".to_vec(),
31        }
32    }
33}
34
35impl Debug for DmqMessageTestPayload {
36    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
37        f.debug_struct("DmqMessageTestPayload")
38            .field("message", &self.message)
39            .finish()
40    }
41}
42
43impl TryToBytes for DmqMessageTestPayload {
44    fn to_bytes_vec(&self) -> StdResult<Vec<u8>> {
45        Ok(self.message.clone())
46    }
47}
48
49impl TryFromBytes for DmqMessageTestPayload {
50    fn try_from_bytes(bytes: &[u8]) -> StdResult<Self> {
51        Ok(Self {
52            message: bytes.to_vec(),
53        })
54    }
55}