/* čĊĠĠ ĠCopyright ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . čĊĠĠ ĠSPDX - License - Identifier : ĠApache - 2 . 0 č Ċ */ č Ċ import Ġcom . kotlin . lambda . Update Function Configuration č Ċ import Ġcom . kotlin . lambda . createNew Function č Ċ import Ġcom . kotlin . lambda . create Sc Function č Ċ import Ġcom . kotlin . lambda . del Function č Ċ import Ġcom . kotlin . lambda . del Lambda Function č Ċ import Ġcom . kotlin . lambda . get Function č Ċ import Ġcom . kotlin . lambda . get Settings č Ċ import Ġcom . kotlin . lambda . invoke Function Sc č Ċ import Ġcom . kotlin . lambda . list Functions č Ċ import Ġcom . kotlin . lambda . list Functions Sc č Ċ import Ġcom . kotlin . lambda . update Function Code č Ċ import Ġkotlinx . coroutines . run Blocking č Ċ import Ġorg . junit . jupiter . api . Assertions č Ċ import Ġorg . junit . jupiter . api . Before All č Ċ import Ġorg . junit . jupiter . api . Method Order er . Order Annotation č Ċ import Ġorg . junit . jupiter . api . Order č Ċ import Ġorg . junit . jupiter . api . Test č Ċ import Ġorg . junit . jupiter . api . Test Instance č Ċ import Ġorg . junit . jupiter . api . TestMethod Order č Ċ import Ġjava . io . InputStream č Ċ import Ġjava . util . Properties čĊč Ċ @ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) č Ċ @ TestMethod Order ( Order Annotation :: class ) č Ċ class ĠLambda Test Ġ{ čĊčĊĠĠĠ Ġvar Ġfunction Name : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġfunction ARN : ĠString Ġ= Ġ"" Ġ// ĠGets Ġset Ġin Ġa Ġtest . čĊĠĠĠ Ġvar Ġs 3 Bucket Name : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġupdated Bucket Name : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġfunction Name Sc : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġs 3 Key : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġrole : ĠString Ġ= Ġ"" čĊĠĠĠ Ġvar Ġhandler : ĠString Ġ= Ġ"" čĊčĊĠĠĠ Ġ@ Before All čĊĠĠĠ Ġfun Ġsetup () Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġval Ġinput : ĠInputStream Ġ= Ġthis . java Class . getClassLoader (). getResource AsStream (" config . properties ") čĊĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠProperties () čĊčĊĠĠĠĠĠĠĠ Ġprop . load ( input ) čĊĠĠĠĠĠĠĠ Ġfunction Name Ġ= Ġprop . getProperty (" function Name ") čĊĠĠĠĠĠĠĠ Ġfunction Name Sc Ġ= Ġprop . getProperty (" function Name Sc ") čĊĠĠĠĠĠĠĠ Ġs 3 Bucket Name Ġ= Ġprop . getProperty (" s 3 Bucket Name ") čĊĠĠĠĠĠĠĠ Ġupdated Bucket Name Ġ= Ġprop . getProperty (" updated Bucket Name ") čĊĠĠĠĠĠĠĠ Ġs 3 Key Ġ= Ġprop . getProperty (" s 3 Key ") čĊĠĠĠĠĠĠĠ Ġrole Ġ= Ġprop . getProperty (" role ") čĊĠĠĠĠĠĠĠ Ġhandler Ġ= Ġprop . getProperty (" handler ") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġ@ Order ( 1 ) čĊĠĠĠ Ġfun Ġwhen Initializing AWS Service _ then NotNull () Ġ{ čĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (! function Name . isEmpty ()) čĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (! s 3 Bucket Name . isEmpty ()) čĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (! s 3 Key . isEmpty ()) čĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (! role . isEmpty ()) čĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (! handler . isEmpty ()) čĊĠĠĠĠĠĠĠ Ġprintln (" Test Ġ 1 Ġpassed ") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġ@ Order ( 2 ) čĊĠĠĠ Ġfun Ġcreate Function Test () Ġ= Ġrun Blocking Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġfunction ARN Ġ= Ġcreate New Function ( function Name , Ġs 3 Bucket Name , Ġs 3 Key , Ġhandler , Ġrole ). toString () čĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (! function ARN . isEmpty ()) čĊĠĠĠĠĠĠĠ Ġprintln (" Test Ġ 2 Ġpassed ") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġ@ Order ( 3 ) čĊĠĠĠ Ġfun Ġlist Lambda Test () Ġ= Ġrun Blocking Ġ{ čĊĠĠĠĠĠĠĠ Ġlist Functions () čĊĠĠĠĠĠĠĠ Ġprintln (" Test Ġ 3 Ġpassed ") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġ@ Order ( 4 ) čĊĠĠĠ Ġfun Ġget Account Settings () Ġ= Ġrun Blocking Ġ{ čĊĠĠĠĠĠĠĠ Ġget Settings () čĊĠĠĠĠĠĠĠ Ġprintln (" Test Ġ 4 Ġpassed ") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġ@ Order ( 5 ) čĊĠĠĠ Ġfun Ġdelete Function Test () Ġ= Ġrun Blocking Ġ{ čĊĠĠĠĠĠĠĠ Ġdel Lambda Function ( function Name ) čĊĠĠĠĠĠĠĠ Ġprintln (" Test Ġ 5 Ġpassed ") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġ@ Order ( 5 ) čĊĠĠĠ Ġfun Ġtest Lambda Scenario () Ġ= Ġrun Blocking Ġ{ čĊĠĠĠĠĠĠĠ Ġprintln (" Creating Ġa ĠLambda Ġfunction Ġnamed Ġ$ function Name Sc .") čĊĠĠĠĠĠĠĠ Ġval Ġfun Arn Ġ= Ġcreate Sc Function ( function Name Sc , Ġs 3 Bucket Name , Ġs 3 Key , Ġhandler , Ġrole ) čĊĠĠĠĠĠĠĠ Ġprintln (" The ĠAWS ĠLambda ĠAR N Ġis Ġ$ fun Arn ") čĊčĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġa Ġspecific ĠLambda Ġfunction . čĊĠĠĠĠĠĠĠ Ġprintln (" Getting Ġthe Ġ$ function Name Sc ĠAWS ĠLambda Ġfunction .") čĊĠĠĠĠĠĠĠ Ġget Function ( function Name Sc ) čĊčĊĠĠĠĠĠĠĠ Ġ// ĠList Ġthe ĠLambda Ġfunctions . čĊĠĠĠĠĠĠĠ Ġprintln (" Listing Ġall ĠAWS ĠLambda Ġfunctions .") čĊĠĠĠĠĠĠĠ Ġlist Functions Sc () čĊčĊĠĠĠĠĠĠĠ Ġ// ĠInvoke Ġthe ĠLambda Ġfunction . čĊĠĠĠĠĠĠĠ Ġprintln (" *** ĠInvoke Ġthe ĠLambda Ġfunction .") čĊĠĠĠĠĠĠĠ Ġinvoke Function Sc ( function Name Sc ) čĊčĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġthe ĠAWS ĠLambda Ġfunction Ġcode . čĊĠĠĠĠĠĠĠ Ġprintln (" *** ĠUpdate Ġthe ĠLambda Ġfunction Ġcode .") čĊĠĠĠĠĠĠĠ Ġupdate Function Code ( function Name Sc , Ġupdated Bucket Name , Ġs 3 Key ) čĊčĊĠĠĠĠĠĠĠ Ġ// Ġprintln (" *** ĠInvoke Ġthe Ġfunction Ġagain Ġafter Ġupdating Ġthe Ġcode .") čĊĠĠĠĠĠĠĠ Ġinvoke Function Sc ( function Name Sc ) čĊčĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġthe ĠAWS ĠLambda Ġfunction Ġconfiguration . čĊĠĠĠĠĠĠĠ Ġprintln (" Update Ġthe Ġrun Ġtime Ġof Ġthe Ġfunction .") čĊĠĠĠĠĠĠĠ ĠUpdate Function Configuration ( function Name Sc , Ġhandler ) čĊčĊĠĠĠĠĠĠĠ Ġ// ĠDelete Ġthe ĠAWS ĠLambda Ġfunction . čĊĠĠĠĠĠĠĠ Ġprintln (" Delete Ġthe ĠAWS ĠLambda Ġfunction .") čĊĠĠĠĠĠĠĠ Ġdel Function ( function Name Sc ) čĊĠĠĠ Ġ} č Ċ } čĊ