package Ġdev . number 6 . slack poster Ċ Ċ import Ġassert k . assertThat Ċ import Ġassert k . assertions . has Size Ċ import Ġassert k . assertions . isEqualTo Ċ import Ġcom . amazonaws . services . lambda . runtime . Lambda Logger Ċ import Ġcom . google . gson . Gson Ċ import Ġdev . number 6 . slack poster . d agger . D agger Test Slack Post er Component Ċ import Ġdev . number 6 . slack poster . d agger . Recording Slack Post er Adaptor Ċ import Ġdev . number 6 . slack poster . model . Channel Summary Image Builder Ċ import Ġdev . number 6 . slack poster . model . Present able Channel Summary Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠSlack Post er Component IntegrationTest Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġtest ee Ġ= ĠD agger Test Slack Post er Component . create () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġpost Correct Chat To Slack () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage : ĠChannel Summary Image Ġ= ĠChannel Summary Image Builder . final Image (). build () ĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= Ġtest ee . handler () ĊĠĠĠĠĠĠĠ Ġservice . handle New Image ( image , ĠFake Lambda Logger ()) ĊĠĠĠĠĠĠĠ Ġval Ġhttp Ġ= Ġtest ee . recording Http Adaptor () Ġas ĠRecord ing Slack Post er Adaptor ĊĠĠĠĠĠĠĠ ĠassertThat ( http . posts ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġchat Ġ= Ġhttp . posts [ 0 ] ĊĠĠĠĠĠĠĠ ĠassertThat ( chat . initial Message Line ). isEqualTo ( Present able Channel Summary ( image ). initial Message Line ) ĊĠĠĠĠĠĠĠ Ġchat . attachments . all Ġ{ Ġa Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPresent able Channel Summary ( image ). attachments . any Ġ{ Ġa 2 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa 2 . pre text Ġ== Ġa . pre text Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa 2 . fields . content Equals ( a . fields ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠFake Lambda Logger Ġ: ĠLambda Logger Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġlog ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġlog ( message : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException (" do in ' Ġw ut Ġnow ?") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }