diff options
Diffstat (limited to 'tests/schema_tests.rs')
-rw-r--r-- | tests/schema_tests.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/schema_tests.rs b/tests/schema_tests.rs index c6fae9d..fc06796 100644 --- a/tests/schema_tests.rs +++ b/tests/schema_tests.rs | |||
@@ -3,6 +3,7 @@ mod tests { | |||
3 | use gradecoin::schema::*; | 3 | use gradecoin::schema::*; |
4 | use serde_json::error::Error; | 4 | use serde_json::error::Error; |
5 | use serde_test::{assert_tokens, Token}; | 5 | use serde_test::{assert_tokens, Token}; |
6 | use chrono::{NaiveDate, NaiveTime, NaiveDateTime}; | ||
6 | 7 | ||
7 | #[test] | 8 | #[test] |
8 | fn claims_serialize_correctly() { | 9 | fn claims_serialize_correctly() { |
@@ -40,12 +41,46 @@ mod tests { | |||
40 | 41 | ||
41 | #[test] | 42 | #[test] |
42 | fn transaction_serialize_correctly() { | 43 | fn transaction_serialize_correctly() { |
44 | let transaction = Transaction { | ||
45 | by: "source".to_owned(), | ||
46 | source: "source".to_owned(), | ||
47 | target: "target".to_owned(), | ||
48 | amount: 0, | ||
49 | timestamp: NaiveDate::from_ymd(2021, 4, 2).and_hms(4, 2, 42), | ||
50 | }; | ||
43 | 51 | ||
52 | assert_tokens( | ||
53 | &transaction, | ||
54 | &[ | ||
55 | Token::Struct{name: "Transaction", len: 5}, | ||
56 | Token::String("by"), | ||
57 | Token::String("source"), | ||
58 | Token::String("source"), | ||
59 | Token::String("source"), | ||
60 | Token::String("target"), | ||
61 | Token::String("target"), | ||
62 | Token::String("amount"), | ||
63 | Token::I32(0), | ||
64 | Token::String("timestamp"), | ||
65 | Token::String("2021-04-02T04:02:42"), | ||
66 | Token::StructEnd, | ||
67 | ] | ||
68 | ) | ||
44 | } | 69 | } |
45 | 70 | ||
46 | #[test] | 71 | #[test] |
47 | fn transaction_deserialize_correctly() { | 72 | fn transaction_deserialize_correctly() { |
73 | let data = r#"{"by":"source","source":"source","target":"target","amount":0,"timestamp":"2021-04-02T04:02:42"}"#; | ||
74 | let transaction: Transaction = serde_json::from_str(data).unwrap(); | ||
75 | let expected_transaction = Transaction { | ||
76 | by: "source".to_owned(), | ||
77 | source: "source".to_owned(), | ||
78 | target: "target".to_owned(), | ||
79 | amount: 0, | ||
80 | timestamp: NaiveDate::from_ymd(2021, 4, 2).and_hms(4, 2, 42), | ||
81 | }; | ||
48 | 82 | ||
83 | assert_eq!(transaction, expected_transaction); | ||
49 | } | 84 | } |
50 | 85 | ||
51 | #[test] | 86 | #[test] |