traq_bot_http/
payloads.rs1#![allow(clippy::module_name_repetitions)]
2
3use crate::macros::{all_events, payloads_impl_for_kinds};
6
7mod channel;
8mod message;
9pub(crate) mod serde;
10mod stamp;
11mod system;
12mod tag;
13pub mod types;
14mod user;
15mod user_group;
16
17pub use channel::{ChannelCreatedPayload, ChannelTopicChangedPayload};
18pub use message::{
19 BotMessageStampsUpdatedPayload, DirectMessageCreatedPayload, DirectMessageDeletedPayload,
20 DirectMessageUpdatedPayload, MessageCreatedPayload, MessageDeletedPayload,
21 MessageUpdatedPayload,
22};
23pub use stamp::StampCreatedPayload;
24pub use system::{JoinedPayload, LeftPayload, PingPayload};
25pub use tag::{TagAddedPayload, TagRemovedPayload};
26pub use user::UserCreatedPayload;
27pub use user_group::{
28 UserGroupAdminAddedPayload, UserGroupAdminRemovedPayload, UserGroupCreatedPayload,
29 UserGroupDeletedPayload, UserGroupMemberAddedPayload, UserGroupMemberRemovedPayload,
30 UserGroupMemberUpdatedPayload, UserGroupUpdatedPayload,
31};
32
33all_events! {payloads_impl_for_kinds}
34
35#[cfg(test)]
36mod tests {
37 use super::*;
38
39 use std::fs::read_to_string;
40
41 #[test]
42 fn direct_message_created_convert() {
43 let data = read_to_string("testdata/message/direct_message_created.json").unwrap();
44 let payload: DirectMessageCreatedPayload = data.parse().unwrap();
45 let payload: MessageCreatedPayload = payload.into();
46 assert_eq!(payload, data.parse().unwrap());
47 }
48
49 #[test]
50 fn message_created_convert() {
51 let data = read_to_string("testdata/message/message_created.json").unwrap();
52 let payload: MessageCreatedPayload = data.parse().unwrap();
53 let payload: DirectMessageCreatedPayload = payload.into();
54 assert_eq!(payload, data.parse().unwrap());
55 }
56
57 #[test]
58 fn direct_message_updated_convert() {
59 let data = read_to_string("testdata/message/direct_message_updated.json").unwrap();
60 let payload: DirectMessageUpdatedPayload = data.parse().unwrap();
61 let payload: MessageUpdatedPayload = payload.into();
62 assert_eq!(payload, data.parse().unwrap());
63 }
64
65 #[test]
66 fn message_updated_convert() {
67 let data = read_to_string("testdata/message/message_updated.json").unwrap();
68 let payload: MessageUpdatedPayload = data.parse().unwrap();
69 let payload: DirectMessageUpdatedPayload = payload.into();
70 assert_eq!(payload, data.parse().unwrap());
71 }
72
73 #[test]
74 fn left_convert() {
75 let data = read_to_string("testdata/system/left.json").unwrap();
76 let payload: LeftPayload = data.parse().unwrap();
77 let payload: JoinedPayload = payload.into();
78 assert_eq!(payload, data.parse().unwrap());
79 }
80
81 #[test]
82 fn joined_convert() {
83 let data = read_to_string("testdata/system/joined.json").unwrap();
84 let payload: JoinedPayload = data.parse().unwrap();
85 let payload: LeftPayload = payload.into();
86 assert_eq!(payload, data.parse().unwrap());
87 }
88
89 #[test]
90 fn tag_removed_convert() {
91 let data = read_to_string("testdata/tag/tag_removed.json").unwrap();
92 let payload: TagRemovedPayload = data.parse().unwrap();
93 let payload: TagAddedPayload = payload.into();
94 assert_eq!(payload, data.parse().unwrap());
95 }
96
97 #[test]
98 fn tag_added_convert() {
99 let data = read_to_string("testdata/tag/tag_added.json").unwrap();
100 let payload: TagAddedPayload = data.parse().unwrap();
101 let payload: TagRemovedPayload = payload.into();
102 assert_eq!(payload, data.parse().unwrap());
103 }
104
105 #[test]
106 fn user_group_updated_convert() {
107 let data = read_to_string("testdata/user-group/user_group_updated.json").unwrap();
108 let payload: UserGroupUpdatedPayload = data.parse().unwrap();
109 let payload: UserGroupDeletedPayload = payload.into();
110 assert_eq!(payload, data.parse().unwrap());
111 }
112
113 #[test]
114 fn user_group_deleted_convert() {
115 let data = read_to_string("testdata/user-group/user_group_deleted.json").unwrap();
116 let payload: UserGroupDeletedPayload = data.parse().unwrap();
117 let payload: UserGroupUpdatedPayload = payload.into();
118 assert_eq!(payload, data.parse().unwrap());
119 }
120
121 #[test]
122 fn user_group_member_added_convert() {
123 let data = read_to_string("testdata/user-group/user_group_member_added.json").unwrap();
124 let payload_base: UserGroupMemberAddedPayload = data.parse().unwrap();
125 let payload: UserGroupMemberUpdatedPayload = payload_base.clone().into();
126 assert_eq!(payload, data.parse().unwrap());
127 let payload: UserGroupMemberRemovedPayload = payload_base.clone().into();
128 assert_eq!(payload, data.parse().unwrap());
129 let payload: UserGroupAdminAddedPayload = payload_base.into();
130 assert_eq!(payload, data.parse().unwrap());
131 }
132
133 #[test]
134 fn user_group_member_updated_convert() {
135 let data = read_to_string("testdata/user-group/user_group_member_updated.json").unwrap();
136 let payload_base: UserGroupMemberUpdatedPayload = data.parse().unwrap();
137 let payload: UserGroupMemberAddedPayload = payload_base.clone().into();
138 assert_eq!(payload, data.parse().unwrap());
139 let payload: UserGroupMemberRemovedPayload = payload_base.into();
140 assert_eq!(payload, data.parse().unwrap());
141 }
142
143 #[test]
144 fn user_group_member_removed_convert() {
145 let data = read_to_string("testdata/user-group/user_group_member_removed.json").unwrap();
146 let payload_base: UserGroupMemberRemovedPayload = data.parse().unwrap();
147 let payload: UserGroupMemberAddedPayload = payload_base.clone().into();
148 assert_eq!(payload, data.parse().unwrap());
149 let payload: UserGroupMemberUpdatedPayload = payload_base.clone().into();
150 assert_eq!(payload, data.parse().unwrap());
151 let payload: UserGroupAdminRemovedPayload = payload_base.into();
152 assert_eq!(payload, data.parse().unwrap());
153 }
154
155 #[test]
156 fn user_group_admin_added_convert() {
157 let data = read_to_string("testdata/user-group/user_group_admin_added.json").unwrap();
158 let payload_base: UserGroupAdminAddedPayload = data.parse().unwrap();
159 let payload: UserGroupAdminRemovedPayload = payload_base.clone().into();
160 assert_eq!(payload, data.parse().unwrap());
161 let payload: UserGroupMemberAddedPayload = payload_base.into();
162 assert_eq!(payload, data.parse().unwrap());
163 }
164
165 #[test]
166 fn user_group_admin_removed_convert() {
167 let data = read_to_string("testdata/user-group/user_group_admin_removed.json").unwrap();
168 let payload_base: UserGroupAdminRemovedPayload = data.parse().unwrap();
169 let payload: UserGroupAdminAddedPayload = payload_base.clone().into();
170 assert_eq!(payload, data.parse().unwrap());
171 let payload: UserGroupMemberRemovedPayload = payload_base.into();
172 assert_eq!(payload, data.parse().unwrap());
173 }
174}