/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 1 9 ĠHERE ĠEurope ĠB . V . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ* ĠLicense - Filename : ĠLICENSE Ċ Ġ*/ Ċ Ċ package Ġcom . here . ort . utils Ċ Ċ import Ġcom . here . ort . sp dx . enum Set Of Ċ import Ġcom . here . ort . sp dx . Sp dx Expression Ċ import Ġcom . here . ort . sp dx . Sp dx Declared License Mapping Ċ import Ġcom . here . ort . sp dx . Sp dx License Ċ import Ġcom . here . ort . sp dx . Sp dx License Alias Mapping Ċ import Ġcom . here . ort . sp dx . Sp dx License Id Expression Ċ Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . kot lint est . should Not Be Ċ import Ġio . kot lint est . specs . String Spec Ċ Ċ class ĠDecl ared License Processor Test Ġ: ĠString Spec () Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġcollection Ġof Ġdeclared Ġlicense Ġstrings Ġfound Ġin Ġopen Ġsource Ġpackages . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġdeclared License s Ġ= ĠSp dx License Alias Mapping . mapping . keys Ġ+ ĠSp dx Declared License Mapping . mapping . keys ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Declared Ġlicenses Ġcan Ġbe Ġprocessed " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeclared License s . forEach Ġ{ Ġdeclared License Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprocessed License Ġ= ĠDecl ared License Processor . process ( declared License ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInclude Ġthe Ġdeclared Ġlicense Ġin Ġthe Ġcomparison Ġto Ġsee Ġwhere Ġa Ġfailure Ġcomes Ġfrom . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ processed License Ġfrom Ġ$ declared License " Ġshould Not Be Ġ" null Ġfrom Ġ$ declared License " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed License !!. validate ( Sp dx Expression . Strict ness . ALLOW _ DEPRECATED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Mapped Ġlicenses Ġare Ġde - d uplicated " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeclared License s Ġ= ĠlistOf (" Apache 2 ", Ġ" Apache - 2 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprocessed License s Ġ= ĠDecl ared License Processor . process ( declared License s ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed License s . sp dx Expression ĠshouldBe ĠSp dx License Id Expression (" Apache - 2 . 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed License s . un mapped ĠshouldBe Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" License s Ġare Ġnot Ġmapped Ġto Ġdeprecated ĠSPDX Ġlicenses " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeclared License s . forEach Ġ{ Ġdeclared License Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprocessed License Ġ= ĠDecl ared License Processor . process ( declared License ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInclude Ġthe Ġdeclared Ġlicense Ġin Ġthe Ġcomparison Ġto Ġsee Ġwhere Ġa Ġfailure Ġcomes Ġfrom . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ processed License Ġfrom Ġ$ declared License " Ġshould Not Be Ġ" null Ġfrom Ġ$ declared License " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed License !!. sp dx License s (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInclude Ġthe Ġlicense ĠID Ġin Ġthe Ġcomparison Ġto Ġmake Ġit Ġeasier Ġto Ġfind Ġthe Ġwrong Ġmapping . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ it Ġ${ it . deprecated }" ĠshouldBe Ġ"$ it Ġfalse " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Prefixes Ġand Ġsuffix es Ġare Ġremoved Ġfrom Ġthe Ġlicense " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprocessed License Ġ= ĠDecl ared License Processor . process ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// choose al icense . com / licenses / apache - 2 . 0 . txt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed License Ġshould Not Be Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocessed License !!. sp dx License s () ĠshouldBe Ġenum Set Of ( Sp dx License . APACHE _ 2 _ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" Pre processing Ġlicenses Ġdoes Ġnot Ġmake Ġmapping Ġredundant " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprocess able License s Ġ= ĠSp dx Declared License Mapping . mapping . keys . filter Ġ{ Ġdeclared License Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp dx License Alias Mapping . map ( Declared License Processor . preprocess ( declared License )) Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess able License s ĠshouldBe Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ