use std::fs::File;
use std::io::BufReader;
use std::io::Read;
use std::path::Path;
extern crate dia_semver;
use dia_semver::Semver;
#[test]
fn crate_version() {
let crate_version = Semver::parse(dia_semver::CRATE_VERSION_NAME, true).unwrap();
match ( || -> Option<Semver> {
let file = File::open(Path::new(file!()).parent().unwrap().with_file_name("Cargo.toml")).unwrap();
let mut buf_reader = BufReader::new(file);
let mut content = String::new();
buf_reader.read_to_string(&mut content).unwrap();
let mut inside_package = false;
for l in content.lines() {
let l = l.trim();
if l.starts_with('[') {
match l {
"[package]" => inside_package = true,
_ if inside_package => return None,
_ => (),
}
}
if inside_package && l.starts_with("version") {
return Some(Semver::parse(l.split('=').skip(1).next().unwrap().trim().replace('"', "").trim(), true).unwrap());
}
}
None
})() {
Some(version_in_cargo_toml) => assert_eq!(crate_version, version_in_cargo_toml),
None => panic!("Can't find version in Cargo.toml"),
};
}