// SPDX-FileCopyrightText: 2020-2021 HH Partners // // SPDX-License-Identifier: MIT use serde::{Deserialize, Serialize}; /// #[derive(Debug, Serialize, Deserialize, Clone, Default, PartialEq)] #[serde(rename_all = "camelCase")] pub struct OtherLicensingInformationDetected { /// #[serde(rename = "licenseId")] pub license_identifier: String, /// pub extracted_text: String, /// #[serde(rename = "name")] #[serde(default = "default_noassertion")] pub license_name: String, /// #[serde(rename = "seeAlsos", skip_serializing_if = "Vec::is_empty", default)] pub license_cross_reference: Vec, /// #[serde(rename = "comment", skip_serializing_if = "Option::is_none", default)] pub license_comment: Option, } fn default_noassertion() -> String { "NOASSERTION".into() } #[cfg(test)] mod test { use std::fs::read_to_string; use crate::models::SPDX; #[test] fn license_identifier() { let spdx: SPDX = serde_json::from_str( &read_to_string("tests/data/SPDXJSONExample-v2.2.spdx.json").unwrap(), ) .unwrap(); assert_eq!( spdx.other_licensing_information_detected[0].license_identifier, "LicenseRef-Beerware-4.2".to_string() ); } #[test] fn extracted_text() { let spdx: SPDX = serde_json::from_str( &read_to_string("tests/data/SPDXJSONExample-v2.2.spdx.json").unwrap(), ) .unwrap(); assert_eq!(spdx.other_licensing_information_detected[0].extracted_text, "\"THE BEER-WARE LICENSE\" (Revision 42):\nphk@FreeBSD.ORG wrote this file. As long as you retain this notice you\ncan do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a beer in return Poul-Henning Kamp