mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-22 13:38:43 +00:00
Add unit tests for metafiles::binstall_v1
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
parent
5987acbf95
commit
c9139fec68
1 changed files with 73 additions and 0 deletions
|
@ -208,3 +208,76 @@ impl<'a> IntoIterator for &'a Records {
|
|||
self.data.iter()
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
use crate::target::TARGET;
|
||||
|
||||
use miette::Result;
|
||||
use tempfile::TempDir;
|
||||
|
||||
macro_rules! assert_records_eq {
|
||||
($records:expr, $metadata_set:expr) => {
|
||||
assert_eq!($records.len(), $metadata_set.len());
|
||||
for (record, metadata) in $records.into_iter().zip($metadata_set.iter()) {
|
||||
assert_eq!(record, metadata);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rw_test() -> Result<()> {
|
||||
let target = CompactString::from(TARGET);
|
||||
|
||||
let tempdir = TempDir::new().unwrap();
|
||||
let path = tempdir.path().join("binstall-tests.json");
|
||||
|
||||
let metadata_vec = [
|
||||
MetaData {
|
||||
name: "a".into(),
|
||||
version_req: "*".into(),
|
||||
current_version: Version::new(0, 1, 0),
|
||||
source: Source::cratesio_registry(),
|
||||
target: target.clone(),
|
||||
bins: vec!["1".into(), "2".into()],
|
||||
},
|
||||
MetaData {
|
||||
name: "b".into(),
|
||||
version_req: "0.1.0".into(),
|
||||
current_version: Version::new(0, 1, 0),
|
||||
source: Source::cratesio_registry(),
|
||||
target: target.clone(),
|
||||
bins: vec!["1".into(), "2".into()],
|
||||
},
|
||||
MetaData {
|
||||
name: "a".into(),
|
||||
version_req: "*".into(),
|
||||
current_version: Version::new(0, 2, 0),
|
||||
source: Source::cratesio_registry(),
|
||||
target,
|
||||
bins: vec!["1".into()],
|
||||
},
|
||||
];
|
||||
|
||||
append_to_path(&path, metadata_vec.clone())?;
|
||||
|
||||
let mut iter = metadata_vec.into_iter();
|
||||
iter.next().unwrap();
|
||||
|
||||
let mut metadata_set: BTreeSet<_> = iter.collect();
|
||||
|
||||
let mut records = Records::load_from_path(&path)?;
|
||||
assert_records_eq!(&records, &metadata_set);
|
||||
|
||||
records.remove("b");
|
||||
assert_eq!(records.len(), metadata_set.len() - 1);
|
||||
records.overwrite()?;
|
||||
|
||||
metadata_set.remove("b");
|
||||
let records = Records::load_from_path(&path)?;
|
||||
assert_records_eq!(&records, &metadata_set);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue