aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/schema.rs6
-rw-r--r--tests/schema_tests.rs30
2 files changed, 33 insertions, 3 deletions
diff --git a/src/schema.rs b/src/schema.rs
index 5546d12..55e46c0 100644
--- a/src/schema.rs
+++ b/src/schema.rs
@@ -121,7 +121,7 @@ impl Block {
121} 121}
122 122
123/// Simply a Student 123/// Simply a Student
124#[derive(Serialize, Deserialize, Debug)] 124#[derive(Serialize, Deserialize, Debug, PartialEq)]
125pub struct User { 125pub struct User {
126 pub user_id: MetuId, 126 pub user_id: MetuId,
127 pub public_key: String, 127 pub public_key: String,
@@ -129,13 +129,13 @@ pub struct User {
129} 129}
130 130
131/// The values will be hard coded so MetuId::new() can accept/reject values based on that 131/// The values will be hard coded so MetuId::new() can accept/reject values based on that
132#[derive(Serialize, Deserialize, Debug)] 132#[derive(Serialize, Deserialize, Debug, PartialEq)]
133pub struct MetuId { 133pub struct MetuId {
134 id: String, 134 id: String,
135} 135}
136 136
137// TODO: this will arrive encrypted <13-04-21, yigit> // 137// TODO: this will arrive encrypted <13-04-21, yigit> //
138#[derive(Serialize, Deserialize, Debug)] 138#[derive(Serialize, Deserialize, Debug, PartialEq)]
139pub struct AuthRequest { 139pub struct AuthRequest {
140 pub student_id: String, 140 pub student_id: String,
141 pub public_key: String, 141 pub public_key: String,
diff --git a/tests/schema_tests.rs b/tests/schema_tests.rs
index 7c6833b..23537fb 100644
--- a/tests/schema_tests.rs
+++ b/tests/schema_tests.rs
@@ -180,11 +180,41 @@ mod tests {
180 180
181 #[test] 181 #[test]
182 fn user_serialize_correctly() { 182 fn user_serialize_correctly() {
183 let user = User {
184 user_id: MetuId::new("e254275".to_owned()).unwrap(),
185 public_key: "public_key".to_owned(),
186 balance: 0
187 };
183 188
189 assert_tokens(
190 &user,
191 &[
192 Token::Struct{name: "User", len: 3},
193 Token::String("user_id"),
194 Token::Struct {name: "MetuId", len: 1},
195 Token::String("id"),
196 Token::String("e254275"),
197 Token::StructEnd,
198 Token::String("public_key"),
199 Token::String("public_key"),
200 Token::String("balance"),
201 Token::I32(0),
202 Token::StructEnd,
203 ]
204 )
184 } 205 }
185 206
186 #[test] 207 #[test]
187 fn user_deserialize_correctly() { 208 fn user_deserialize_correctly() {
209 let expected_user = User {
210 user_id: MetuId::new("e254275".to_owned()).unwrap(),
211 public_key: "public_key".to_owned(),
212 balance: 0
213 };
214 let data = r#"{"user_id":{"id":"e254275"},"public_key":"public_key","balance":0}"#;
215 let user: User = serde_json::from_str(data).unwrap();
216
217 assert_eq!(user, expected_user);
188 218
189 } 219 }
190 220