#![allow(dead_code, unused_imports, unused_variables)]
use std::env;
use super::*; use super::super::types::*;
use super::super::vars::*;
use super::super::locs::*;
use super::super::utils;
use super::super::super::init_logger;
#[test]
fn test_find_repo() {
assert_eq!(utils::find_repo(TSIMPLE_DIR.as_path()).unwrap(),
TSIMPLE_DIR.as_path());
assert_eq!(utils::find_repo(TSIMPLE_DIR.join("lvl_1").as_path()).unwrap(),
TSIMPLE_DIR.as_path());
assert!(utils::find_repo(env::temp_dir().as_path()).is_none());
}
#[test]
fn test_resolve_vars() {
let mut loaded_vars: Variables = Variables::new();
let mut variables: Variables = Variables::new();
let var_paths: HashMap<String, PathBuf> = HashMap::new();
let mut repo_map: HashMap<PathBuf, PathBuf> = HashMap::new();
let fpath = TSIMPLE_DIR.join(PathBuf::from("fake.toml"));
for i in 0..3 { loaded_vars.clear();
variables.clear();
loaded_vars.insert("foo".to_string(), PathBuf::from("{repo}").join("FOO").to_string_lossy().to_string());
loaded_vars.insert("bar".to_string(), PathBuf::from("{foo}").join("BAR").to_string_lossy().to_string());
loaded_vars.insert("bar-2".to_string(), PathBuf::from("{bar}").join("BAR2").to_string_lossy().to_string());
resolve_default_vars(&loaded_vars, fpath.as_path(), &mut variables,
&mut repo_map).unwrap();
resolve_vars(&mut variables).unwrap();
let foo = TSIMPLE_DIR.join("FOO");
let bar = foo.join("BAR");
let bar2 = bar.join("BAR2");
assert_eq!(variables.get("foo").unwrap(), foo.to_str().unwrap());
assert_eq!(variables.get("bar").unwrap(), bar.to_str().unwrap());
assert_eq!(variables.get("bar-2").unwrap(), bar2.to_str().unwrap());
}
}
pub const LOC_TEST: &'static str = "\
$SPC-who
#$SPC-what
// $SPC-where
//kjsdlfkjwe $TST-foo-what-where-2-b-3 kljasldkjf
// $TST-dont-care
/// $SPC-core-load-erro: <load file error>
";
#[test]
fn test_resolve_loc_text() {
let mut locs: HashMap<ArtName, Loc> = HashMap::new();
let path = PathBuf::from("hi/there");
let loc_test = LOC_TEST.replace("$", "#");
assert!(!find_locs_text(&path, &loc_test, &mut locs));
assert!(locs.contains_key(&ArtName::from_str("TST-dont-care").unwrap()));
let spc_who = locs.get(&ArtName::from_str("SPC-who").unwrap()).unwrap();
let spc_what = locs.get(&ArtName::from_str("SPC-what").unwrap()).unwrap();
let spc_where = locs.get(&ArtName::from_str("SPC-where").unwrap()).unwrap();
let tst_long = locs.get(&ArtName::from_str("TST-foo-what-where-2-b-3").unwrap()).unwrap();
let spc_error = locs.get(&ArtName::from_str("SPC-core-load-erro").unwrap()).unwrap();
assert_eq!(spc_who.line_col, (1, 0));
assert_eq!(spc_what.line_col, (2, 4));
assert_eq!(spc_where.line_col, (3, 4));
assert_eq!(tst_long.line_col, (4, 15));
assert_eq!(spc_error.line_col, (6, 4));
}