From 0b391ed7d6e90ac0f5360a7338c4779472e28a31 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Fri, 19 Jun 2020 11:11:00 +0200 Subject: [PATCH] misc: added tests --- crates/mun_project/src/manifest.rs | 8 ++--- crates/mun_project/src/package.rs | 7 ++--- crates/mun_project/tests/parse.rs | 30 +++++++++++++++++++ crates/mun_project/tests/resources/mun.toml | 4 +++ .../mun_project/tests/resources/src/main.mun | 2 ++ 5 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 crates/mun_project/tests/parse.rs create mode 100644 crates/mun_project/tests/resources/mun.toml create mode 100644 crates/mun_project/tests/resources/src/main.mun diff --git a/crates/mun_project/src/manifest.rs b/crates/mun_project/src/manifest.rs index 76a23d3d4..e76e412fc 100644 --- a/crates/mun_project/src/manifest.rs +++ b/crates/mun_project/src/manifest.rs @@ -39,12 +39,12 @@ impl Manifest { /// Returns the name of the package pub fn name(&self) -> &str { - &self.package_id.name + &self.package_id.name() } /// Returns the version of the package pub fn version(&self) -> &semver::Version { - &self.package_id.version + &self.package_id.version() } /// Returns the metadata information of the package @@ -67,7 +67,7 @@ impl PackageId { impl fmt::Display for PackageId { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "{} v{}", self.name, self.version) + write!(f, "{} v{}", self.name(), self.version()) } } @@ -103,7 +103,7 @@ mod tests { manifest.version(), &semver::Version::from_str("0.2.0").unwrap() ); - assert_eq!(manifest.metadata.authors, vec!["Mun Team"]); + assert_eq!(manifest.metadata().authors, vec!["Mun Team"]); assert_eq!(format!("{}", manifest.package_id()), "test v0.2.0"); } } diff --git a/crates/mun_project/src/package.rs b/crates/mun_project/src/package.rs index 44cb31492..e306f94ef 100644 --- a/crates/mun_project/src/package.rs +++ b/crates/mun_project/src/package.rs @@ -24,10 +24,7 @@ impl Package { pub fn from_file>(path: P) -> anyhow::Result { let path = path.as_ref(); let manifest = Manifest::from_file(path)?; - Ok(Self { - manifest, - manifest_path: path.to_path_buf(), - }) + Ok(Self::new(manifest, path)) } /// Returns the manifest @@ -57,7 +54,7 @@ impl Package { /// Returns the version of the package pub fn version(&self) -> &Version { - self.manifest().version() + self.package_id().version() } /// Returns the source directory of the package, or None if no such directory exists. diff --git a/crates/mun_project/tests/parse.rs b/crates/mun_project/tests/parse.rs new file mode 100644 index 000000000..edbc4b749 --- /dev/null +++ b/crates/mun_project/tests/parse.rs @@ -0,0 +1,30 @@ +use mun_project::{Manifest, Package}; +use semver::Version; +use std::path::Path; +use std::str::FromStr; + +#[test] +fn manifest_from_file() { + let manifest_path = Path::new(env!("CARGO_MANIFEST_DIR")).join("tests/resources/mun.toml"); + let manifest = Manifest::from_file(&manifest_path).expect("could not load manifest"); + assert_eq!(manifest.metadata().authors, vec!["Mun Team"]); + assert_eq!(manifest.version(), &Version::from_str("0.2.0").unwrap()); + assert_eq!(manifest.name(), "test"); +} + +#[test] +fn package_from_file() { + let manifest_path = Path::new(env!("CARGO_MANIFEST_DIR")).join("tests/resources/mun.toml"); + let package = Package::from_file(&manifest_path).expect("could not load package"); + assert_eq!(package.name(), "test"); + assert_eq!(package.version(), &Version::from_str("0.2.0").unwrap()); + assert_eq!(package.manifest().metadata().authors, vec!["Mun Team"]); + assert_eq!(package.manifest_path(), &manifest_path); + assert_eq!(&package.root(), &manifest_path.parent().unwrap()); + assert_eq!(format!("{}", &package), "test v0.2.0"); + + let source_dir = package + .source_directory() + .expect("could not locate source directory"); + assert_eq!(source_dir, manifest_path.parent().unwrap().join("src")); +} diff --git a/crates/mun_project/tests/resources/mun.toml b/crates/mun_project/tests/resources/mun.toml new file mode 100644 index 000000000..240e4df0f --- /dev/null +++ b/crates/mun_project/tests/resources/mun.toml @@ -0,0 +1,4 @@ +[package] +name="test" +version="0.2.0" +authors = ["Mun Team"] diff --git a/crates/mun_project/tests/resources/src/main.mun b/crates/mun_project/tests/resources/src/main.mun new file mode 100644 index 000000000..f21c42531 --- /dev/null +++ b/crates/mun_project/tests/resources/src/main.mun @@ -0,0 +1,2 @@ +pub fn main() { +}