diff options
| author | Kevin J Hoerr <kjhoerr@submelon.tech> | 2019-10-30 09:40:39 -0400 |
|---|---|---|
| committer | Kevin J Hoerr <kjhoerr@submelon.tech> | 2019-10-30 09:40:39 -0400 |
| commit | b3a313f8e5e0185104727e75747251121eddf92d (patch) | |
| tree | 7619d8d14d99767803658e62c21792136d7a1ada /src/messages/callback.rs | |
| parent | 067e9784b54e4645412e5e7d8d7d2bc70bdcf646 (diff) | |
| download | august-offensive-b3a313f8e5e0185104727e75747251121eddf92d.tar.gz august-offensive-b3a313f8e5e0185104727e75747251121eddf92d.tar.bz2 august-offensive-b3a313f8e5e0185104727e75747251121eddf92d.zip | |
Refactor messages module to be separate from routes and easily referencable
Diffstat (limited to 'src/messages/callback.rs')
| -rw-r--r-- | src/messages/callback.rs | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/messages/callback.rs b/src/messages/callback.rs new file mode 100644 index 0000000..d98ac15 --- /dev/null +++ b/src/messages/callback.rs @@ -0,0 +1,67 @@ +use messages::Message; +use std::collections::HashMap; + +#[derive(Debug, Serialize)] +pub struct Callback { + pub path: Vec<String>, + pub request: String, + pub content: HashMap<String, String>, +} + +impl Message for Callback { + fn name(&self) -> String { + String::from("CALLBACK") + } +} + +impl PartialEq for Callback { + fn eq(&self, other: &Self) -> bool { + self.request == other.request && self.path == other.path && self.content == other.content + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_name() { + // Arrange + let query = HashMap::new(); + let message = Callback { + path: vec![], + request: String::from("GET"), + content: query, + }; + + // Act + let name = message.name(); + + // Assert + assert_eq!(name, "CALLBACK"); + } + + #[test] + fn test_asoutgoing() { + // Arrange + let message = Callback { + path: vec![], + request: String::from("GET"), + content: HashMap::new(), + }; + + // Act + let outgoing = message.as_outgoing(); + + // Assert + assert_eq!(outgoing.result_type, "CALLBACK"); + assert_eq!( + outgoing.content, + Callback { + path: vec![], + request: String::from("GET"), + content: HashMap::new(), + } + ); + } +} |
