/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠV lad im ir ĠS it nik ov Ġ< sit nik ov . vl ad im ir @ gmail . com > Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġcom . github . v ls i . gradle . license Ċ Ċ import Ġcom . github . v ls i . gradle . license . api . Dependency Info Ċ import Ġcom . github . v ls i . gradle . license . api . License Expression Ċ import Ġcom . github . v ls i . gradle . license . api . Simple License Ċ import Ġcom . github . v ls i . gradle . license . api . Sp dx License Ċ import Ġcom . github . v ls i . gradle . license . api . Sp dx License Exception Ċ import Ġcom . github . v ls i . gradle . license . api . and Ċ import Ġcom . github . v ls i . gradle . license . api . or Ċ import Ġcom . github . v ls i . gradle . license . api . or Later Ċ import Ġcom . github . v ls i . gradle . license . api . with Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . io . File Ċ import Ġjava . io . String Reader Ċ import Ġjava . io . String Writer Ċ Ċ class ĠMetadata Store Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsp dx Expression () Ġ{ ĊĠĠĠĠĠĠĠ Ġsave Metadata ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( Sp dx License . Apache _ 2 _ 0 Ġor ĠSp dx License . MIT ) Ġand ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( Sp dx License . GPL _ 2 _ 0 _ only . or Later () Ġwith ĠSp dx License Exception . Classpath _ exception _ 2 _ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< license - list Ġversion =' 1 '> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< components > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< component Ġid =' org . test : test : 1 . 0 . 0 ' Ġlicense Files =' def '> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< license - expression > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< expression Ġprovider Id =' SP DX ' >( Apache - 2 . 0 ĠOR ĠMIT ) ĠAND ĠGPL - 2 . 0 - only + ĠWITH ĠClass path - exception - 2 . 0 </ expression > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ license - expression > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ component > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ components > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ license - list > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnon Standard License () Ġ{ ĊĠĠĠĠĠĠĠ Ġsave Metadata ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( Sp dx License . Apache _ 2 _ 0 Ġor ĠSimple License (" W TF YW PL ")) Ġand ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( Sp dx License . GPL _ 2 _ 0 _ only . or Later () Ġwith ĠSp dx License Exception . Classpath _ exception _ 2 _ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< license - list Ġversion =' 1 '> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< components > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< component Ġid =' org . test : test : 1 . 0 . 0 ' Ġlicense Files =' def '> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< license - expression > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< and > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< or > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< license Ġprovider Id =' SP DX ' Ġid =' Apache - 2 . 0 ' Ġ/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< license Ġname =' W TF YW PL ' Ġuri ='' Ġ/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ or > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< expression Ġprovider Id =' SP DX '> GPL - 2 . 0 - only + ĠWITH ĠClass path - exception - 2 . 0 </ expression > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ and > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ license - expression > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ component > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ components > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ license - list > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Metadata ( ĊĠĠĠĠĠĠĠ Ġlicense Expression : ĠLicense Expression , ĊĠĠĠĠĠĠĠ Ġexpected : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsw Ġ= ĠString Writer () ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= ĠFile (" test ") ĊĠĠĠĠĠĠĠ Ġval Ġmetadata Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Component Id (" org . test ", Ġ" test ", Ġ" 1 . 0 . 0 ") Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLicense Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ= Ġlicense Expression , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Files Ġ= ĠFile ( root , Ġ" def ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMetadata Store . save ( sw , Ġroot , ĠDependency Info ( metadata )) ĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġsw . toString () ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ+ Ġ"\ n ", Ġres ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġparsed Ġ= ĠMetadata Store . load ( res . byte InputStream (), Ġroot ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( metadata . to Mutable Map (), Ġparsed . dependencies . to Mutable Map ()) ĊĠĠĠ Ġ} Ċ Ċ } Ċ