/* Ċ Ġ* Ċ Ġ* Ġ Ġ* ĠCopyright Ġ 2 0 1 9 ĠThe ĠHy ve Ċ Ġ* Ġ Ġ* Ċ Ġ* Ġ Ġ* Ġ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 Ġorg . radar base . connect . upload . api Ċ Ċ import Ġorg . apache . kafka . connect . source . Source Record Ċ import Ġorg . hamcrest . Matcher Assert . assertThat Ċ import Ġorg . hamcrest . Matchers .* Ċ import Ġorg . junit . jupiter . api . After All Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Before All Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . Test Instance Ċ import Ġorg . radar base . connect . upload . converter . Converter Log Repository Ċ import Ġorg . radar base . connect . upload . converter . Log Repository Ċ import Ġorg . radar base . connect . upload . converter . phone . Accel erometer Converter Factory Ċ import Ġorg . radar base . connect . upload . util . TestBase . Companion . base Uri Ċ import Ġorg . radar base . connect . upload . util . TestBase . Companion . client Credentials Author izer Ċ import Ġorg . radar base . connect . upload . util . TestBase . Companion . create Record And Upload Content Ċ import Ġorg . radar base . connect . upload . util . TestBase . Companion . get AccessToken Ċ import Ġorg . radar base . connect . upload . util . TestBase . Companion . httpClient Ċ import Ġorg . radar base . connect . upload . util . TestBase . Companion . source TypeName Ċ import Ġorg . radar base . connect . upload . util . TestBase . Companion . upload Backend Config Ċ import Ġorg . radar base . j ersey . G ri zz ly Server Ċ import Ġorg . radar base . j ersey . config . Config Loader Ċ import Ġorg . radar base . upload . Config Ċ import Ġorg . radar base . upload . do a . entity . Record Status Ċ import Ġorg . radar base . upload . inject . Management Portal Enh ancer Factory Ċ import Ġjava . io . File ĊĊ Ċ @ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) Ċ class ĠUpload Backend Client IntegrationTest Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġupload Backend Client : ĠUpload Backend Client ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlog Repository : ĠLog Repository ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġconfig : ĠConfig ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġserver : ĠG ri zz ly Server ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠaccessToken : ĠString ĊĊĠĠĠ Ġprivate Ġval Ġsource Type Ġ= Ġsource TypeName ĊĊĠĠĠ Ġprivate Ġval ĠfileName Ġ= Ġ" TEST _ ACC . csv " ĊĊĊĠĠĠ Ġ@ Before All ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġupload Backend Client Ġ= ĠUpload Backend Client ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Credentials Author izer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠhttpClient , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Uri ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġlog Repository Ġ= ĠConverter Log Repository () ĊĊĠĠĠĠĠĠĠ ĠaccessToken Ġ= Ġget AccessToken () ĊĊĠĠĠĠĠĠĠ Ġconfig Ġ= Ġupload Backend Config ĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= ĠConfig Loader . load Resources ( Management Portal Enh ancer Factory :: class . java , Ġconfig ) ĊĊĠĠĠĠĠĠĠ Ġserver Ġ= ĠG ri zz ly Server ( config . base Uri , Ġresources ) ĊĠĠĠĠĠĠĠ Ġserver . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After All ĊĠĠĠ Ġfun Ġclean Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġserver . shutdown () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġrequest All Connectors () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconnector s Ġ= Ġupload Backend Client . request All Connectors () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( connectors ) ĊĠĠĠĠĠĠĠ ĠassertThat ( connectors . source Types , Ġnot ( empty ())) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( connectors . source Types . find Ġ{ Ġit . name Ġ== Ġsource Type Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġrequest Connector Configurations () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconnector s Ġ= Ġupload Backend Client . request Connector Config ( source Type ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( connectors ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( source Type , Ġconnector s . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Record Creation To Conversion Work Flow () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcreated Record Ġ= Ġcreate Record And Upload Content ( accessToken , Ġsource Type , ĠfileName ) ĊĠĠĠĠĠĠĠ Ġretrieve File ( created Record ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrecords Ġ= Ġpoll Records () ĊĊĠĠĠĠĠĠĠ Ġval Ġsource Type Ġ= Ġupload Backend Client . request Connector Config ( source Type ) ĊĊĠĠĠĠĠĠĠ Ġval Ġconverter Ġ= ĠAcc eler ometer Converter Factory () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. converter ( empty Map (), Ġsource Type , Ġupload Backend Client , Ġlog Repository ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrecord To Process Ġ= Ġrecords . records . first Ġ{ Ġrecord DTO Ġ-> Ġrecord DTO . source Type Ġ== Ġsource TypeName Ġ} ĊĠĠĠĠĠĠĠ Ġcreated Record . metadata Ġ= Ġupload Backend Client . update Status ( record To Process . id !! , Ġrecord To Process . metadata !!. copy ( status Ġ= Ġ" PROCESS ING ", Ġmessage Ġ= Ġ" The Ġrecord Ġis Ġbeing Ġprocessed ")) ĊĠĠĠĠĠĠĠ Ġval Ġconverted Records Ġ= Ġmutable ListOf < Source Record >() ĊĠĠĠĠĠĠĠ Ġconverter . convert ( records . records . first (), Ġconverted Records :: add ) ĊĠĠĠĠĠĠĠ ĠassertThat ( converted Records , Ġnot ( null Value ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( converted Records , Ġnot ( empty ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpoll Records (): ĠRecord Container DTO Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpoll Config Ġ= ĠPoll DTO ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupported Converters Ġ= Ġset Of ( source Type ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġrecords Ġ= Ġupload Backend Client . poll Records ( poll Config ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( records ) ĊĠĠĠĠĠĠĠ ĠassertThat ( records . records , Ġnot ( empty ())) ĊĠĠĠĠĠĠĠ Ġrecords . records . forEach Ġ{ Ġrecord DTO Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( record DTO . metadata ?. status , ĠequalTo ( Record Status . QUE U ED . toString ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln (" Pol led Ġ${ records . records . count ()} Ġrecords ") ĊĠĠĠĠĠĠĠ Ġreturn Ġrecords ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġretrieve File ( record Id : ĠRecord DTO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupload Backend Client . retrieve File ( record Id , ĠfileName ) Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Data Ġ= Ġresponse . bytes () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( response Data . size . to Long (), ĠequalTo ( File ( fileName ). length ())) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( response Data , ĠequalTo ( File ( fileName ). read Bytes ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ