use std::borrow::ToOwned;
extern crate sort_str_to_sql;
use sort_str_to_sql::sort_str_to_sql;
#[test]
fn it_actually_works() {
let tests = vec![
("id", Some("id ASC NULLS LAST")),
("+id", Some("id ASC NULLS LAST")),
("-id", Some("id DESC NULLS LAST")),
("id-", Some("id ASC NULLS FIRST")),
("+id-", Some("id ASC NULLS FIRST")),
("-id-", Some("id DESC NULLS FIRST")),
("show.id", Some("show.id ASC NULLS LAST")),
("-id,aired-", Some("id DESC NULLS LAST, aired ASC NULLS FIRST")),
("-id,+aired-", Some("id DESC NULLS LAST, aired ASC NULLS FIRST")),
("+id-,show.id", Some("id ASC NULLS FIRST, show.id ASC NULLS LAST")),
("lol what", None),
("+-id-", None),
("id,++aired+", Some("id ASC NULLS LAST")),
("?id,+aired-", Some("aired ASC NULLS FIRST")),
];
for &(input, _sql) in tests.iter() {
let sql = match _sql { None => None, Some(s) => Some(s.to_owned())};
assert!(
sort_str_to_sql(input) == sql,
"FAILED `{:?}` => `{:?}` NOT `{:?}`", input, sort_str_to_sql(input), sql
)
}
}