use stern4rust::import_path::ImportPath;
#[test]
fn decides_order_of_a_pair_diverging_at_the_first_segment_is_false() {
let decides = ImportPath::decides_order("use serde_json::Value;", "use stern4rust::a::B;");
assert!(!decides);
}
#[test]
fn decides_order_of_a_pair_diverging_by_case_is_true() {
let decides = ImportPath::decides_order("use serde_json::Value;", "use serde_json::from_str;");
assert!(decides);
}
#[test]
fn decides_order_of_a_pair_of_lowercase_segments_is_false() {
let decides = ImportPath::decides_order("use std::fs;", "use std::path::PathBuf;");
assert!(!decides);
}
#[test]
fn decides_order_of_a_pair_of_uppercase_segments_is_false() {
let decides = ImportPath::decides_order("use syn::Item;", "use syn::Type;");
assert!(!decides);
}
#[test]
fn decides_order_of_a_pair_with_a_crate_path_is_true() {
let decides = ImportPath::decides_order("use anyhow::Result;", "use crate::support::Thing;");
assert!(decides);
}
#[test]
fn is_specially_ordered_of_a_crate_path_is_true() {
let special = ImportPath::is_specially_ordered("use crate::support::builders::a_widget;");
assert!(special);
}
#[test]
fn is_specially_ordered_of_a_path_named_crateful_is_false() {
let special = ImportPath::is_specially_ordered("use crateful::Thing;");
assert!(!special);
}
#[test]
fn is_specially_ordered_of_a_pub_use_is_judged_on_its_path() {
let special = ImportPath::is_specially_ordered("pub use crate::support::Thing;");
assert!(special);
}
#[test]
fn is_specially_ordered_of_a_self_path_is_true() {
let special = ImportPath::is_specially_ordered("use self::inner::Thing;");
assert!(special);
}
#[test]
fn is_specially_ordered_of_a_std_path_is_false() {
let special = ImportPath::is_specially_ordered("use std::path::PathBuf;");
assert!(!special);
}
#[test]
fn is_specially_ordered_of_a_super_path_is_true() {
let special = ImportPath::is_specially_ordered("use super::Parent;");
assert!(special);
}
#[test]
fn is_specially_ordered_of_an_ordinary_path_is_false() {
let special = ImportPath::is_specially_ordered("use anyhow::Result;");
assert!(!special);
}
#[test]
fn is_specially_ordered_of_an_uppercase_path_is_true() {
let special = ImportPath::is_specially_ordered("use Uppercase::Thing;");
assert!(special);
}