package Ġuk . n hs . n hs x . test helper . mocks Ċ Ċ import Ġcom . amazonaws . services . s 3 . model . S 3 Object Ċ import Ġuk . n hs . n hs x . core . ContentType Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . Bucket Name Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . ByteArray Source Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . Locator Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . Meta Header Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . Object Key Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . S 3 Storage Ċ import Ġjava . net . URL Ċ import Ġjava . util . Date Ċ import Ġjava . util . Optional Ċ Ċ open Ġclass ĠFake S 3 Storage Ġ: ĠS 3 Storage Ġ{ ĊĠĠĠ Ġvar Ġcount : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġlateinit Ġvar Ġbucket : ĠBucket Name ĊĠĠĠ Ġlateinit Ġvar Ġname : ĠObject Key ĊĠĠĠ Ġlateinit Ġvar ĠcontentType : ĠContentType ĊĠĠĠ Ġlateinit Ġvar Ġbytes : ĠByteArray Source ĊĠĠĠ Ġval Ġmeta : ĠMutable List < Meta Header > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġval Ġexists : ĠOptional < S 3 Object > Ġ= ĠOptional . empty () ĊĊĠĠĠ Ġoverride Ġfun Ġupload ( ĊĠĠĠĠĠĠĠ Ġlocator : ĠLoc ator , ĊĠĠĠĠĠĠĠ ĠcontentType : ĠContentType , ĊĠĠĠĠĠĠĠ Ġbytes : ĠByteArray Source , ĊĠĠĠĠĠĠĠ Ġmeta Headers : ĠList < Meta Header > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġover writing ( locator , ĠcontentType , Ġbytes , Ġmeta Headers . toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Signed URL ( locator : ĠLoc ator , Ġexpiration : ĠDate ) Ġ= ĊĠĠĠĠĠĠĠ ĠOptional . of ( URL (" https :// example . com ")) ĊĊĠĠĠ Ġprivate Ġfun Ġover writing ( ĊĠĠĠĠĠĠĠ Ġlocator : ĠLoc ator , ĊĠĠĠĠĠĠĠ ĠcontentType : ĠContentType , ĊĠĠĠĠĠĠĠ Ġbytes : ĠByteArray Source , ĊĠĠĠĠĠĠĠ Ġmeta : ĠList < Meta Header > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠ Ġbucket Ġ= Ġlocator . bucket ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġlocator . key ĊĠĠĠĠĠĠĠ Ġthis . contentType Ġ= ĠcontentType ĊĠĠĠĠĠĠĠ Ġthis . bytes Ġ= Ġbytes ĊĠĠĠĠĠĠĠ Ġthis . meta Ġ+= Ġmeta ĊĠĠĠ Ġ} Ċ } Ċ