provenant-cli 0.0.8

Provenant is a high-performance Rust scanner for licenses, packages, and source provenance.
Documentation
#[cfg(test)]
mod golden_tests {
    use crate::parsers::PackageParser;
    use crate::parsers::golden_test_utils::compare_package_data_parser_only;
    use crate::parsers::nuget::{
        CentralPackageManagementPropsParser, DirectoryBuildPropsParser, DotNetDepsJsonParser,
        NupkgParser, NuspecParser, PackageReferenceProjectParser, PackagesConfigParser,
        PackagesLockParser, ProjectJsonParser, ProjectLockJsonParser,
    };
    use std::path::PathBuf;

    #[test]
    fn test_golden_bootstrap() {
        let test_file = PathBuf::from("testdata/nuget-golden/bootstrap/bootstrap.nuspec");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/bootstrap/bootstrap.nuspec.expected");

        let package_data = NuspecParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_castle_core() {
        let test_file = PathBuf::from("testdata/nuget-golden/castle-core/Castle.Core.nuspec");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/castle-core/Castle.Core.nuspec.expected");

        let package_data = NuspecParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_entity_framework() {
        let test_file =
            PathBuf::from("testdata/nuget-golden/entity-framework/EntityFramework.nuspec");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/entity-framework/EntityFramework.nuspec.expected");

        let package_data = NuspecParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_jquery_ui() {
        let test_file = PathBuf::from("testdata/nuget-golden/jquery-ui/jQuery.UI.Combined.nuspec");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/jquery-ui/jQuery.UI.Combined.nuspec.expected");

        let package_data = NuspecParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_aspnet_mvc() {
        let test_file =
            PathBuf::from("testdata/nuget-golden/aspnet-mvc/Microsoft.AspNet.Mvc.nuspec");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/aspnet-mvc/Microsoft.AspNet.Mvc.nuspec.expected");

        let package_data = NuspecParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_net_http() {
        let test_file = PathBuf::from("testdata/nuget-golden/net-http/Microsoft.Net.Http.nuspec");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/net-http/Microsoft.Net.Http.nuspec.expected");

        let package_data = NuspecParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_fizzler() {
        let test_file = PathBuf::from("testdata/nuget-golden/fizzler/Fizzler.nuspec");
        let expected_file = PathBuf::from("testdata/nuget-golden/fizzler/Fizzler.nuspec.expected");

        let package_data = NuspecParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_project_json() {
        let test_file = PathBuf::from("testdata/nuget-golden/legacy-project-json/project.json");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/legacy-project-json/project.json.expected");

        let package_data = ProjectJsonParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_package_reference_project() {
        let test_file =
            PathBuf::from("testdata/nuget-golden/package-reference/Contoso.Utility.csproj");
        let expected_file = PathBuf::from(
            "testdata/nuget-golden/package-reference/Contoso.Utility.csproj.expected",
        );

        let package_data = PackageReferenceProjectParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_dotnet_deps_json() {
        let test_file = PathBuf::from("testdata/nuget-golden/deps-json/ExampleApp.deps.json");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/deps-json/ExampleApp.deps.json.expected.json");

        let package_data = DotNetDepsJsonParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_nupkg() {
        let test_file = PathBuf::from("testdata/nuget-golden/nupkg/Fizzler.1.3.0.nupkg");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/nupkg/Fizzler.1.3.0.nupkg.expected.json");

        let package_data = NupkgParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_packages_config() {
        let test_file = PathBuf::from("testdata/nuget-golden/packages-config/packages.config");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/packages-config/packages.config.expected.json");

        let package_data = PackagesConfigParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_packages_lock() {
        let test_file = PathBuf::from("testdata/nuget-golden/packages-lock/packages.lock.json");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/packages-lock/packages.lock.json.expected.json");

        let package_data = PackagesLockParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_project_lock_json() {
        let test_file = PathBuf::from("testdata/nuget-golden/project-lock/project.lock.json");
        let expected_file =
            PathBuf::from("testdata/nuget-golden/project-lock/project.lock.json.expected.json");

        let package_data = ProjectLockJsonParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_directory_packages_props() {
        let test_file = PathBuf::from(
            "testdata/nuget-golden/central-package-management/Directory.Packages.props",
        );
        let expected_file = PathBuf::from(
            "testdata/nuget-golden/central-package-management/Directory.Packages.props.expected.json",
        );

        let package_data = CentralPackageManagementPropsParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_golden_directory_build_props() {
        let test_file =
            PathBuf::from("testdata/nuget-golden/directory-build-props/src/Directory.Build.props");
        let expected_file = PathBuf::from(
            "testdata/nuget-golden/directory-build-props/src/Directory.Build.props.expected.json",
        );

        let package_data = DirectoryBuildPropsParser::extract_first_package(&test_file);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }
}