/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 2 0 Ġ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 Ġorg . oss review toolkit Ċ Ċ import Ġio . kot est . assertions . throw ables . should Not Throw Ċ import Ġio . kot est . assertions . with Cl ue Ċ import Ġio . kot est . core . spec . style . String Spec Ċ import Ġio . kot est . matchers . collections . be Empty Ċ import Ġio . kot est . matchers . should Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . kot est . matchers . should Not Ċ Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ Ċ import Ġorg . oss review toolkit . evaluator . Evaluator Ċ import Ġorg . oss review toolkit . model . Or t Result Ċ import Ġorg . oss review toolkit . model . Package C uration Ċ import Ġorg . oss review toolkit . model . config . Copyright G arbage Ċ import Ġorg . oss review toolkit . model . config . Repository Configuration Ċ import Ġorg . oss review toolkit . model . config . Resolution s Ċ import Ġorg . oss review toolkit . model . licenses . License Configuration Ċ import Ġorg . oss review toolkit . model . readValue Ċ import Ġorg . oss review toolkit . model . utils . Simple Package Configuration Provider Ċ import Ġorg . oss review toolkit . reporter . Reporter Input Ċ import Ġorg . oss review toolkit . reporter . report ers . Abstract Notice Reporter Ċ import Ġorg . oss review toolkit . reporter . report ers . Ant enna At tribution Document Reporter Ċ import Ġorg . oss review toolkit . utils . ORT _ NAME Ċ Ċ class ĠExamples Test Ġ: ĠString Spec () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġexamples Dir Ġ= ĠFile ("../ examples ") ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġexample Files : ĠMutable List < File > ĊĊĠĠĠ Ġprivate Ġfun Ġtake Example File ( name : ĠString ) Ġ= Ġexample Files . single Ġ{ Ġit . name Ġ== Ġname Ġ}. also Ġ{ Ġexample Files . remove ( it ) Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Listing Ġexamples Ġfiles Ġsucceeded " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexample Files Ġ= Ġexamples Dir . walk (). filter Ġ{ Ġit . isFile Ġ}. to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexample Files Ġshould Not Ġbe Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" ort . yml Ġexamples Ġare Ġpar s able " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexclude s Examples Ġ= Ġexample Files . filter Ġ{ Ġit . name . endsWith (". ort . yml ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexample Files . removeAll ( exclude s Examples ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude s Examples . forEach Ġ{ Ġfile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Cl ue ( file . name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould Not Throw < IOException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile . readValue < Repository Configuration >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" copyright - garbage . yml Ġcan Ġbe Ġdeserialized " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Not Throw < IOException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Example File (" copyright - garbage . yml "). readValue < Copyright G arbage >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" cur ations . yml Ġcan Ġbe Ġdeserialized " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Not Throw < IOException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Example File (" cur ations . yml "). readValue < List < Package C uration >>() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" licenses . yml Ġcan Ġbe Ġdeserialized " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Not Throw < IOException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Example File (" licenses . yml "). readValue < License Configuration >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" notice - pre - processor . k ts Ġcan Ġbe Ġcompiled " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠAbstract Notice Reporter . Notice Report Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Without License s Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader With License s Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfindings Ġ= Ġempty Map (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfoot ers Ġ= Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpre Processor Ġ= ĠAbstract Notice Reporter . Pre Processor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġort Result Ġ= ĠO rt Result . EMPTY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Ġ= Ġmodel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcopyright G arbage Ġ= ĠCopyright G arbage (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Configuration Ġ= ĠLicense Configuration (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Configuration Provider Ġ= ĠSimple Package Configuration Provider () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscript Ġ= Ġtake Example File (" notice - pre - processor . k ts "). read Text () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpre Processor . check Syntax ( script ) ĠshouldBe Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠIt Ġshould Ġalso Ġbe Ġverified Ġthat Ġthe Ġscript Ġworks Ġas Ġexpected . ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" resolution s . yml Ġcan Ġbe Ġdeserialized " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Not Throw < IOException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Example File (" resolution s . yml "). readValue < Resolution s >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" rules . k ts Ġcan Ġbe Ġcompiled " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevaluator Ġ= ĠEvalu ator ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġort Result Ġ= ĠO rt Result . EMPTY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Configuration Provider Ġ= ĠSimple Package Configuration Provider (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Configuration Ġ= ĠLicense Configuration () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscript Ġ= Ġtake Example File (" rules . k ts "). read Text () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġevaluator . check Syntax ( script ) ĠshouldBe Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠIt Ġshould Ġalso Ġbe Ġverified Ġthat Ġthe Ġscript Ġworks Ġas Ġexpected . ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" PDF Ġfiles Ġare Ġvalid ĠAnt enna Ġtemplates " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoutput Dir Ġ= Ġcreate TempDir ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOR T _ NAME , ĠExamples Test :: class . simple Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ Ġdelete On Exit () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtake Example File (" back . pdf ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtake Example File (" content . pdf ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtake Example File (" copyright . pdf ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtake Example File (" cover . pdf ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreport Ġ= ĠAnt enna At tribution Document Reporter (). generate Report ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠReport er Input ( Or t Result . EMPTY ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Dir , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" template . path " Ġto Ġexamples Dir . resolve (" Ant enna At tribution Document Reporter "). path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreport Ġshould Ġbe Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" All Ġexample Ġfiles Ġshould Ġhave Ġbeen Ġtested " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexample Files Ġshould Ġbe Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ