|
1 | 1 | #![cfg(feature = "serde_impl")]
|
2 | 2 |
|
3 | 3 | extern crate linked_hash_map;
|
4 |
| -extern crate serde; |
5 |
| -extern crate serde_json; |
6 |
| - |
7 | 4 | use linked_hash_map::LinkedHashMap;
|
8 | 5 |
|
| 6 | +extern crate serde_test; |
| 7 | +use serde_test::{Token, assert_tokens}; |
| 8 | + |
9 | 9 | #[test]
|
10 |
| -fn test_ser_empty() { |
11 |
| - let map = LinkedHashMap::<String, u32>::new(); |
12 |
| - let j = serde_json::to_string(&map).unwrap(); |
13 |
| - let expected = "{}"; |
14 |
| - assert_eq!(j, expected); |
| 10 | +fn test_ser_de_empty() { |
| 11 | + let map = LinkedHashMap::<char, u32>::new(); |
| 12 | + |
| 13 | + assert_tokens(&map, &[ |
| 14 | + Token::MapStart(Some(0)), |
| 15 | + Token::MapEnd, |
| 16 | + ]); |
15 | 17 | }
|
16 | 18 |
|
17 | 19 | #[test]
|
18 |
| -fn test_ser() { |
| 20 | +fn test_ser_de() { |
19 | 21 | let mut map = LinkedHashMap::new();
|
20 |
| - map.insert("b", 20); |
21 |
| - map.insert("a", 10); |
22 |
| - map.insert("c", 30); |
| 22 | + map.insert('b', 20); |
| 23 | + map.insert('a', 10); |
| 24 | + map.insert('c', 30); |
23 | 25 |
|
24 |
| - let j = serde_json::to_string(&map).unwrap(); |
25 |
| - let expected = r#"{"b":20,"a":10,"c":30}"#; |
26 |
| - assert_eq!(j, expected); |
27 |
| -} |
| 26 | + assert_tokens(&map, &[ |
| 27 | + Token::MapStart(Some(3)), |
| 28 | + Token::MapSep, |
| 29 | + Token::Char('b'), |
| 30 | + Token::I32(20), |
28 | 31 |
|
29 |
| -#[test] |
30 |
| -fn test_de_empty() { |
31 |
| - let j = "{}"; |
32 |
| - let map: LinkedHashMap<String, u32> = serde_json::from_str(j).unwrap(); |
33 |
| - assert_eq!(map.len(), 0); |
34 |
| -} |
| 32 | + Token::MapSep, |
| 33 | + Token::Char('a'), |
| 34 | + Token::I32(10), |
35 | 35 |
|
36 |
| -#[test] |
37 |
| -fn test_de() { |
38 |
| - let j = r#"{"b":20,"a":10,"c":30}"#; |
39 |
| - let map: LinkedHashMap<String, u32> = serde_json::from_str(j).unwrap(); |
40 |
| - let items: Vec<_> = map.iter().map(|(k, v)| (k.clone(), *v)).collect(); |
41 |
| - assert_eq!(items, [("b".to_owned(), 20), |
42 |
| - ("a".to_owned(), 10), |
43 |
| - ("c".to_owned(), 30)]); |
| 36 | + Token::MapSep, |
| 37 | + Token::Char('c'), |
| 38 | + Token::I32(30), |
| 39 | + Token::MapEnd, |
| 40 | + ]); |
44 | 41 | }
|
0 commit comments