Skip to content

Commit

Permalink
Merge pull request #60 from dtolnay/test
Browse files Browse the repository at this point in the history
Switch to serde_test and drop dependency on serde_json
  • Loading branch information
apasel422 authored Jun 29, 2016
2 parents 2f27c44 + 8e7389a commit b53b722
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 32 deletions.
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ readme = "README.md"

[features]
nightly = []
serde_impl = ["serde", "serde_json"]
serde_impl = ["serde", "serde_test"]

[dependencies]
clippy = { version = "0.*", optional = true }
serde = { version = "^0.7", optional = true }
serde_json = { version = "^0.7", optional = true }
serde_test = { version = "^0.7", optional = true }
57 changes: 27 additions & 30 deletions tests/serde.rs
Original file line number Diff line number Diff line change
@@ -1,44 +1,41 @@
#![cfg(feature = "serde_impl")]

extern crate linked_hash_map;
extern crate serde;
extern crate serde_json;

use linked_hash_map::LinkedHashMap;

extern crate serde_test;
use serde_test::{Token, assert_tokens};

#[test]
fn test_ser_empty() {
let map = LinkedHashMap::<String, u32>::new();
let j = serde_json::to_string(&map).unwrap();
let expected = "{}";
assert_eq!(j, expected);
fn test_ser_de_empty() {
let map = LinkedHashMap::<char, u32>::new();

assert_tokens(&map, &[
Token::MapStart(Some(0)),
Token::MapEnd,
]);
}

#[test]
fn test_ser() {
fn test_ser_de() {
let mut map = LinkedHashMap::new();
map.insert("b", 20);
map.insert("a", 10);
map.insert("c", 30);
map.insert('b', 20);
map.insert('a', 10);
map.insert('c', 30);

let j = serde_json::to_string(&map).unwrap();
let expected = r#"{"b":20,"a":10,"c":30}"#;
assert_eq!(j, expected);
}
assert_tokens(&map, &[
Token::MapStart(Some(3)),
Token::MapSep,
Token::Char('b'),
Token::I32(20),

#[test]
fn test_de_empty() {
let j = "{}";
let map: LinkedHashMap<String, u32> = serde_json::from_str(j).unwrap();
assert_eq!(map.len(), 0);
}
Token::MapSep,
Token::Char('a'),
Token::I32(10),

#[test]
fn test_de() {
let j = r#"{"b":20,"a":10,"c":30}"#;
let map: LinkedHashMap<String, u32> = serde_json::from_str(j).unwrap();
let items: Vec<_> = map.iter().map(|(k, v)| (k.clone(), *v)).collect();
assert_eq!(items, [("b".to_owned(), 20),
("a".to_owned(), 10),
("c".to_owned(), 30)]);
Token::MapSep,
Token::Char('c'),
Token::I32(30),
Token::MapEnd,
]);
}

0 comments on commit b53b722

Please sign in to comment.