package Ġes . at ru j illo . mj ml . integration . service Ċ Ċ import Ġes . at ru j illo . mj ml . config . template . Template Factory Ċ import Ġes . at ru j illo . mj ml . exception . Mj ml Api ErrorException Ċ import Ġes . at ru j illo . mj ml . service . auth . Mj ml Auth Factory Ċ import Ġes . at ru j illo . mj ml . service . impl . Mj ml Rest Service Ċ import Ġes . at ru j illo . mj ml . util . TestUtils .* Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . thy me leaf . context . Context Ċ import Ġorg . thy me leaf . exceptions . Template Input Exception Ċ import Ġjava . io . File Ċ import Ġjava . net . URL Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ@ author ĠAr nal do ĠTr uj illo Ċ Ġ*/ Ċ internal Ġclass ĠM j ml Rest Service Kt Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtemplate : ĠString ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġprivate Ġfun ĠsetUp Tests () Ġ{ ĊĠĠĠĠĠĠĠ Ġtemplate Ġ= ĠTemplate Factory . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with String Template () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. template ( HEL LO _ WORLD _ MJ ML ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build Template () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġthat Ġvalid Ġm j ml Ġtemplate Ġis Ġconverted Ġto Ġhtml Ġusing ĠM j ml Service ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Integration ĠAPI Ġtest ") ĊĠĠĠ Ġinternal Ġfun Ġtest That Mj ml Api Respond Correct ly () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( MJ ML _ APP _ ID , Ġ" You Ġhave Ġto Ġconfigure Ġenvironment Ġvariable ĠM J ML _ APP _ ID ") ĊĠĠĠĠĠĠĠ ĠassertNotNull ( MJ ML _ SECRET _ KEY , Ġ" You Ġhave Ġto Ġconfigure Ġenvironment Ġvariable ĠM J ML _ SECRET _ KEY ") ĊĊĠĠĠĠĠĠĠ Ġval Ġauth Conf Ġ= ĠM j ml Auth Factory . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Environment Credentials () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. mj ml Key Names ( MJ ML _ APP _ ID , ĠM J ML _ SECRET _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġm j ml Service Ġ= ĠM j ml Rest Service ( auth Conf ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġm j ml Service . transp ile Mj ml To Html ( template ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( response ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( response . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġthat Ġvalid Ġm j ml Ġtemplate Ġis Ġconverted Ġto Ġhtml Ġusing ĠM j ml Service ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Read me ĠTemplate ĠAPI Ġtest ") ĊĠĠĠ Ġinternal Ġfun Ġtest That Read me Template Example Is Correct () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( MJ ML _ APP _ ID , Ġ" You Ġhave Ġto Ġconfigure Ġenvironment Ġvariable ĠM J ML _ APP _ ID ") ĊĠĠĠĠĠĠĠ ĠassertNotNull ( MJ ML _ SECRET _ KEY , Ġ" You Ġhave Ġto Ġconfigure Ġenvironment Ġvariable ĠM J ML _ SECRET _ KEY ") ĊĊĠĠĠĠĠĠĠ Ġval Ġreadme Template Ġ= ĠFile ( Objects . requireNonNull < URL >( java Class . class Loader . getResource (" template / readme - template . mj ml ")). file ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġ" Dog ĠGallery " ĊĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġ" This Ġis Ġmy Ġdog ĠB il bo , Ġmodeling Ġfor Ġthe Ġcamera " ĊĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠContext ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġcontext . set Variable (" my Title ", Ġtitle ) ĊĠĠĠĠĠĠĠ Ġcontext . set Variable (" my Description ", Ġdescription ) ĊĊĠĠĠĠĠĠĠ Ġtemplate Ġ= ĠTemplate Factory . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with File Template () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. template ( readme Template ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. template Context ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build Template () ĊĊĠĠĠĠĠĠĠ Ġval Ġauth Conf Ġ= ĠM j ml Auth Factory . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Environment Credentials () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. mj ml Key Names ( MJ ML _ APP _ ID , ĠM J ML _ SECRET _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġm j ml Service Ġ= ĠM j ml Rest Service ( auth Conf ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġm j ml Service . transp ile Mj ml To Html ( template ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( response ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( response . isEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( response . contains ( title )) ĊĠĠĠĠĠĠĠ ĠassertTrue ( response . contains ( description )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġthat Ġvalid Ġm j ml Ġtemplate Ġis Ġconverted Ġto Ġhtml Ġusing ĠM j ml Service ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Test ĠError ĠHandling Ġwith ĠInvalid ĠCredentials ") ĊĠĠĠ Ġinternal Ġfun Ġtest That Api Return Error Without Valid Credentials () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġinvalid AppId Ġ= ĠUUID . randomUUID (). toString () ĊĠĠĠĠĠĠĠ Ġval Ġinvalid SecretKey Ġ= ĠUUID . randomUUID (). toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġauth Conf Ġ= ĠM j ml Auth Factory . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Memory Credentials () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. mj ml Credentials ( invalid AppId , Ġinvalid SecretKey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġm j ml Service Ġ= ĠM j ml Rest Service ( auth Conf ) ĊĊĠĠĠĠĠĠĠ ĠassertThrows ( Mj ml Api ErrorException :: class . java ) Ġ{ Ġm j ml Service . transp ile Mj ml To Html ( template ) Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġthat Ġa Ġmalformed Ġtemplate Ġreturn Ġa ĠTh y me leaf Ġerror ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Test ĠTh y me leaf ĠError ĠWhen ĠMal formed ĠTemplate ") ĊĠĠĠ Ġinternal Ġfun Ġtest That Template Building Return Error With Malformed Template () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠassertThrows ( Template Input Exception :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate Factory . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with String Template () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. template ( MAL FOR MED _ TEMPLATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build Template () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġthat Ġunsupported Ġversion Ġm j ml Ġtemplate Ġreturn Ġerror ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Test ĠError ĠHandling Ġwith ĠInvalid ĠSupported ĠVersion ") ĊĠĠĠ Ġinternal Ġfun Ġtest That Version 4 Template Return Ok () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( MJ ML _ APP _ ID , Ġ" You Ġhave Ġto Ġconfigure Ġenvironment Ġvariable ĠM J ML _ APP _ ID ") ĊĠĠĠĠĠĠĠ ĠassertNotNull ( MJ ML _ SECRET _ KEY , Ġ" You Ġhave Ġto Ġconfigure Ġenvironment Ġvariable ĠM J ML _ SECRET _ KEY ") ĊĊĠĠĠĠĠĠĠ Ġval Ġunsupported Version Template Ġ= ĠTemplate Factory . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with String Template () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. template ( MJ ML _ VERSION 4 _ TEMPLATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build Template () ĊĊĠĠĠĠĠĠĠ Ġval Ġauth Conf Ġ= ĠM j ml Auth Factory . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Environment Credentials () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. mj ml Key Names ( MJ ML _ APP _ ID , ĠM J ML _ SECRET _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġm j ml Service Ġ= ĠM j ml Rest Service ( auth Conf ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġ Ġm j ml Service . transp ile Mj ml To Html ( unsupported Version Template ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( response ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( response . isEmpty ()) ĊĠĠĠ Ġ} Ċ Ċ } Ċ