package Ġcom . am central 3 6 5 . service Ċ Ċ import Ġcom . am central 3 6 5 . service . builtins . roles . Execution Target Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . Assertions Ċ Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . OutputStream Ċ Ċ import Ġcom . am central 3 6 5 . service . builtins . roles . Script ĊĊ Ċ internal Ġclass ĠReceiver Host Test Ġ{ ĊĊĠĠĠ Ġprivate Ġclass ĠTest Execution Target Host : ĠExecution Target (" thread X ", Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbase Dir : ĠString ? Ġ= Ġ" base Dir X " ĊĊĠĠĠĠĠĠĠ Ġvar Ġexists Calls Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġcopy Executable File Calls Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġcreate Directories Calls Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġcopy File Calls Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexists ( path Str : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexists Calls ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpath Str Ġ== Ġ" pass " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcopy Executable File ( content Stream : ĠInputStream , ĠfileName : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy Executable File Calls ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcopy File ( content Stream : ĠInputStream , ĠfileName : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy File Calls ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Directories ( dir Path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Directories Calls ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġnot Ġneeded ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġreal Exec ( commands : ĠList < String >, ĠinputStream : ĠInputStream ?, ĠoutputStream : ĠOutputStream ): ĠStatus Message Ġ= ĠStatus Message . OK ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconnect (): ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprepare ( script : ĠScript ): ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdisconnect () Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcleanup ( script : ĠScript ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute ( script : ĠScript , ĠoutputStream : ĠOutputStream , ĠinputStream : ĠInputStream ?): ĠStatus Message Ġ= ĠStatus Message . OK ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert Calls ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget : ĠTest Execution Target Host , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexists Calls : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy File Calls : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy Executable File Calls : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Directories Calls : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( exists Calls , Ġtarget . exists Calls ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( copy File Calls , Ġtarget . copy File Calls ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( copy Executable File Calls , Ġtarget . copy Executable File Calls ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( create Directories Calls , Ġtarget . create Directories Calls ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠ Ġ/*@ BeforeEach ĊĠĠĠ Ġfun Ġbefore () Ġ{ ĊĠĠĠĠĠĠĠ Ġscript . assign Main (" test Script ") ĊĠĠĠ Ġ}*/ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` verify Ġfile Ġexists Ġ- Ġpositive `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item (" pass ", Ġverify Path Exists Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġhost . apply ( item ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target , Ġexists Calls Ġ= Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` verify Ġfile Ġexists Ġ- Ġnegative `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item (" no - pass ", Ġverify Path Exists Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġorg . junit . jupiter . api . assert Throws < Status Exception > Ġ{ Ġhost . apply ( item ) Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 0 4 , Ġe . code ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target , Ġexists Calls Ġ= Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` inline Ġ- Ġhappy Ġpath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item ("", Ġ" content X ". byte InputStream ()) ĊĠĠĠĠĠĠĠ Ġhost . apply ( item ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( script . has Main ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target , Ġcopy Executable File Calls Ġ= Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` inline Ġ- Ġhas Ġmain `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġscript . assign Main (" main X ") ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item ("", Ġ" content X ". byte InputStream ()) ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġorg . junit . jupiter . api . assert Throws < Status Exception > Ġ{ Ġhost . apply ( item ) Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 1 2 , Ġe . code ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (" both Ġmain Ġand Ġthe Ġinline Ġcontent " Ġin Ġe . message !! ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` inline Ġ- Ġno Ġcontent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item ("", Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġorg . junit . jupiter . api . assert Throws < Status Exception > Ġ{ Ġhost . apply ( item ) Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 1 2 , Ġe . code ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (" there Ġis Ġno Ġinput " Ġin Ġe . message !! ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` directory Ġ- Ġhappy Ġpath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item (" dir X ", Ġis Directory Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġhost . apply ( item ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target , Ġcreate Directories Calls Ġ= Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ//@ Test ĊĠĠĠ Ġfun Ġ` directory Ġ- Ġno Ġbase Ġdir `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĠĠĠĠĠĠĠ Ġtarget . base Dir Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item (" dir X ", Ġis Directory Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġorg . junit . jupiter . api . assert Throws < Status Exception > Ġ{ Ġhost . apply ( item ) Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 0 0 , Ġe . code ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (" does Ġnot Ġdefine Ġbase Ġdirectory " Ġin Ġe . message !! ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` directory Ġ- Ġblank Ġdir Ġpath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item (" Ġ", Ġis Directory Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġorg . junit . jupiter . api . assert Throws < Status Exception > Ġ{ Ġhost . apply ( item ) Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 1 2 , Ġe . code ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (" empty Ġdirectory " Ġin Ġe . message !! ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` directory Ġ- Ġabsolute Ġpath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item ("/ abs Dir X ", Ġis Directory Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġorg . junit . jupiter . api . assert Throws < Status Exception > Ġ{ Ġhost . apply ( item ) Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 1 2 , Ġe . code ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (" Absolute Ġpaths " Ġin Ġe . message !! ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` file Ġ- Ġhappy Ġpath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item (" file X ", Ġ" content X ". byte InputStream ()) ĊĠĠĠĠĠĠĠ Ġhost . apply ( item ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target , Ġcopy File Calls Ġ= Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ//@ Test ĊĠĠĠ Ġfun Ġ` file Ġ- Ġno Ġbase Ġdir `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġtarget . base Dir Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item (" file X ", Ġ" content X ". byte InputStream ()) ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġorg . junit . jupiter . api . assert Throws < Status Exception > Ġ{ Ġhost . apply ( item ) Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 5 0 0 , Ġe . code ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (" does Ġnot Ġdefine Ġthe Ġbase Ġdirectory " Ġin Ġe . message !! ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` file Ġ- Ġno Ġcontent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item (" file X ") ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġorg . junit . jupiter . api . assert Throws < Status Exception > Ġ{ Ġhost . apply ( item ) Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 0 0 , Ġe . code ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (" The Ġinput Ġstream Ġis Ġrequired " Ġin Ġe . message !! ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` file Ġ- Ġabsolute Ġpath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠTransfer Manager . Item ("/ file X ", Ġ" content X ". byte InputStream ()) ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġorg . junit . jupiter . api . assert Throws < Status Exception > Ġ{ Ġhost . apply ( item ) Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 1 2 , Ġe . code ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (" Absolute Ġpaths " Ġin Ġe . message !! ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` file Ġ- Ġblank Ġ 2 nd Ġpath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ 1 st Ġis Ġok ĊĠĠĠĠĠĠĠ Ġval Ġitem 1 Ġ= ĠTransfer Manager . Item (" file X ", Ġ" content X ". byte InputStream ()) ĊĠĠĠĠĠĠĠ Ġhost . apply ( item 1 ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target , Ġcopy File Calls Ġ= Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġblank Ġpaths Ġin Ġ 2 nd Ġare Ġnot Ġallowed ĊĠĠĠĠĠĠĠ Ġval Ġitem 2 Ġ= ĠTransfer Manager . Item (" Ġ", Ġ" content X ". byte InputStream ()) ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġorg . junit . jupiter . api . assert Throws < Status Exception > Ġ{ Ġhost . apply ( item 2 ) Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 1 2 , Ġe . code ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (" both Ġinline Ġand Ġregular Ġfiles " Ġin Ġe . message !! ) Ġ{ Ġ" message : Ġ${ e . message }" Ġ} ĊĠĠĠĠĠĠĠ Ġassert Calls ( target , Ġcopy File Calls Ġ= Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` file Ġ- Ġno Ġmain `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠScript ( target Role Name Ġ= Ġ" role X ", Ġlocation Ġ= Ġnull , Ġscript Main Ġ= Ġnull , Ġscript Args Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠTest Execution Target Host () ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= ĠReceiver Host ( script , Ġtarget ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ 1 st Ġis Ġok ĊĠĠĠĠĠĠĠ Ġval Ġitem 1 Ġ= ĠTransfer Manager . Item (" file X ", Ġ" content X ". byte InputStream ()) ĊĠĠĠĠĠĠĠ Ġhost . apply ( item 1 ) ĊĠĠĠĠĠĠĠ Ġassert Calls ( target , Ġcopy File Calls Ġ= Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġblank Ġpaths Ġin Ġ 2 nd Ġare Ġnot Ġallowed ĊĠĠĠĠĠĠĠ Ġval Ġitem 2 Ġ= ĠTransfer Manager . Item (" file Y ", Ġ" content Y ". byte InputStream ()) ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġorg . junit . jupiter . api . assert Throws < Status Exception > Ġ{ Ġhost . apply ( item 2 ) Ġ} ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 4 0 0 , Ġe . code ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue (" more Ġthan Ġone Ġfile Ġand Ġno Ġ' main '" Ġin Ġe . message !! ) Ġ{ Ġ" message : Ġ${ e . message }" Ġ} ĊĠĠĠĠĠĠĠ Ġassert Calls ( target , Ġcopy File Calls Ġ= Ġ 1 ) ĊĠĠĠ Ġ} Ċ } Ċ