/* Ċ Ġ* ĠCopyright ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 . Ċ Ġ*/ Ċ Ċ package Ġaws . sdk . kotlin . runtime . auth . credentials Ċ Ċ import Ġaws . sdk . kotlin . runtime . config . Aws Sdk Setting Ċ import Ġio . kot est . extensions . system . with Environment Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . jupiter . api . After All Ċ import Ġorg . junit . jupiter . api . Before All Ċ import Ġjava . nio . file . Files Ċ import Ġjava . nio . file . Path Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠProfile Credentials Provider Test Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ ID Ġ= Ġ" default Id " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ KEY Ġ= Ġ" default Key " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠEXPECT ED _ DEFAULT _ CRE DS Ġ= ĠCredentials ( DEFAULT _ ID , ĠDEFAULT _ KEY , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPRO FILE _ ID Ġ= Ġ" profile Id " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPRO FILE _ KEY Ġ= Ġ" profile Key " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠEXPECT ED _ PROFILE _ CRE DS Ġ= ĠCredentials ( PROFILE _ ID , ĠPRO FILE _ KEY , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġcreds Path : ĠPath ĊĊĠĠĠĠĠĠĠ Ġ@ Before All ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreds Path Ġ= ĠFiles . create TempFile (" Profile Credentials Provider Test _ creds ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreds Path . to File (). write Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[ default ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaws _ access _ key _ id Ġ= Ġ$ DEFAULT _ ID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaws _ secret _ access _ key Ġ= Ġ$ DEFAULT _ KEY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[ unique - profile - name ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaws _ access _ key _ id Ġ= Ġ$ PROFILE _ ID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaws _ secret _ access _ key Ġ= Ġ$ PROFILE _ KEY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ After All ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġteardown () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . delete IfExists ( creds Path ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġcreate Ġa Ġprovider Ġfor Ġa Ġdefault Ġprofile `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= ĠProfile Credentials Provider ( credentials FileName Ġ= Ġcreds Path . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġprovider . get Credentials () ĊĠĠĠĠĠĠĠ ĠassertEquals ( EXPECTED _ DEFAULT _ CRE DS , Ġactual ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġcreate Ġa Ġprovider Ġfor Ġa Ġunique Ġprofile Ġspecified Ġin Ġconstructor `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= ĠProfile Credentials Provider ( profile Name Ġ= Ġ" unique - profile - name ", Ġcredentials FileName Ġ= Ġcreds Path . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġprovider . get Credentials () ĊĠĠĠĠĠĠĠ ĠassertEquals ( EXPECTED _ PROFILE _ CRE DS , Ġactual ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġcreate Ġa Ġprovider Ġfor Ġa Ġunique Ġprofile Ġspecified Ġfrom ĠJVM ĠProperty `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem . setProperty ( Aws Sdk Setting . Aws Profile . jvm Property , Ġ" unique - profile - name ") ĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= ĠProfile Credentials Provider ( credentials FileName Ġ= Ġcreds Path . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġprovider . get Credentials () ĊĠĠĠĠĠĠĠ ĠassertEquals ( EXPECTED _ PROFILE _ CRE DS , Ġactual ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġshould Ġcreate Ġa Ġprovider Ġfor Ġa Ġunique Ġprofile Ġspecified Ġfrom ĠEnvironment ĠVariable `() Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Environment ( Aws Sdk Setting . Aws Profile . environment Variable , Ġ" unique - profile - name ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= ĠProfile Credentials Provider ( credentials FileName Ġ= Ġcreds Path . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġprovider . get Credentials () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( EXPECTED _ PROFILE _ CRE DS , Ġactual ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ