cargo-update 20.0.2

A cargo subcommand for checking and applying updates to installed executables
Documentation
use cargo_update::ops::{self, RegistryPackage};
use semver::Version as Semver;
use std::fs;

mod installed_registry_packages;
mod package_filter_element;
mod split_package_path;
#[cfg(all(target_pointer_width="64", target_endian="little"))] // https://github.com/nabijaczleweli/cargo-update/issues/235
mod assert_index_path;
mod registry_package;
mod package_config;
mod get_index_url;


#[test]
fn intersect_packages() {
    assert_eq!(ops::intersect_packages(&[RegistryPackage::parse("cargo-outdated 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", vec![])
                                             .unwrap(),
                                         RegistryPackage::parse("cargo-count 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
                                                                vec!["cc".to_string()])
                                             .unwrap(),
                                         RegistryPackage::parse("racer 1.2.10 (registry+file:///usr/local/share/cargo)", vec!["r".to_string()]).unwrap()],
                                       &[("cargo-count".to_string(), None, "https://github.com/rust-lang/crates.io-index".into()),
                                         ("racer".to_string(), None, "https://github.com/rust-lang/crates.io-index".into()),
                                         ("checksums".to_string(), None, "file:///usr/local/share/cargo".into())],
                                       false,
                                       &[]),
               vec![RegistryPackage::parse("cargo-count 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
                                           vec!["cc".to_string()])
                        .unwrap(),
                    RegistryPackage::parse("racer 1.2.10 (registry+file:///usr/local/share/cargo)", vec!["r".to_string()]).unwrap()]);
}

#[test]
fn crate_versions() {
    assert_eq!(ops::crate_versions(&fs::read("test-data/checksums-versions.json").unwrap()).unwrap(),
               vec![(Semver::parse("0.2.0").unwrap(), None),
                    (Semver::parse("0.2.1").unwrap(), None),
                    (Semver::parse("0.3.0").unwrap(), None),
                    (Semver::parse("0.4.0").unwrap(), None),
                    (Semver::parse("0.4.1").unwrap(), None),
                    (Semver::parse("0.5.0").unwrap(), None),
                    (Semver::parse("0.5.1").unwrap(), None),
                    (Semver::parse("0.5.2").unwrap(), Some(chrono::DateTime::parse_from_rfc3339("2016-09-21T19:20:47Z").unwrap()))]);
}