package Ġstudio . crud . crud framework . field mapper . transformer Ċ Ċ import Ġstudio . crud . crud framework . field mapper . annotation . String Trim Length Ċ import Ġstudio . crud . crud framework . field mapper . transformer . annotation . Enum Type Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġstri kt . api . expect That Ċ import Ġstri kt . api . expect Throws Ċ import Ġstri kt . assertions . isEqualTo Ċ import Ġstri kt . assertions . isNull Ċ import Ġjava . lang . reflect . Field Ċ import Ġjava . util .* Ċ Ċ class ĠTransformer UnitTests Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Comma Delimit edString ToList Transformer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest String Ġ= Ġ" var 1 , var 2 , var 3 , var 4 " ĊĠĠĠĠĠĠĠ Ġval Ġexpected Outcome Ġ= ĠArrays . asList (" var 1 ", Ġ" var 2 ", Ġ" var 3 ", Ġ" var 4 ") ĊĠĠĠĠĠĠĠ Ġval Ġtransformer Ġ= ĠCom ma Delimit edString ToList Transformer () ĊĠĠĠĠĠĠĠ Ġval Ġoutcome : ĠList < String ?> Ġ= Ġtransformer . transform ( Test Po jo . getField (" test String "), ĠTest Po jo . getField (" test String List "), Ġtest String , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) Ġas ĠList < String ?> ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest String List To Comma Delimit edString Transformer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest String List Ġ= ĠArrays . asList (" var 1 ", Ġ" var 2 ", Ġ" var 3 ", Ġ" var 4 ") ĊĠĠĠĠĠĠĠ Ġval Ġexpected Outcome Ġ= Ġ" var 1 , var 2 , var 3 , var 4 " ĊĠĠĠĠĠĠĠ Ġval Ġtransformer Ġ= ĠString List To Comma Delimit edString Transformer () ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= Ġtransformer . transform ( Test Po jo . getField (" test String List "), ĠTest Po jo . getField (" test String "), Ġtest String List , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Currency Double To Long Transformer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Double Ġ= Ġ 1 1 2 . 2 ĊĠĠĠĠĠĠĠ Ġval Ġexpected Outcome : ĠLong Ġ= Ġ 1 1 2 2 0 ĊĠĠĠĠĠĠĠ Ġval Ġtransformer Ġ= ĠCurrency Double To Long Transformer () ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= Ġtransformer . transform ( Test Po jo . getField (" test Double "), ĠTest Po jo . getField (" test Long "), Ġtest Double , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Long To Currency Double Transformer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Long : ĠLong Ġ= Ġ 1 1 2 2 0 ĊĠĠĠĠĠĠĠ Ġval Ġexpected Outcome Ġ= Ġ 1 1 2 . 2 ĊĠĠĠĠĠĠĠ Ġval Ġtransformer Ġ= ĠLong To Currency Double Transformer () ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= Ġtransformer . transform ( Test Po jo . getField (" test Long "), ĠTest Po jo . getField (" test Double "), Ġtest Long , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Outcome ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Date To Long Transformer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Date Ġ= ĠDate ( 1 0 0 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Outcome Ġ= Ġtest Date . time ĊĠĠĠĠĠĠĠ Ġval Ġtransformer Ġ= ĠDate To Long Transformer () ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= Ġtransformer . transform ( Test Po jo . getField (" test Date "), ĠTest Po jo . getField (" test Long "), Ġtest Date , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Long ToDate Transformer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Long : ĠLong Ġ= Ġ 1 0 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġexpected Outcome Ġ= ĠDate ( test Long ) ĊĠĠĠĠĠĠĠ Ġval Ġtransformer Ġ= ĠLong ToDate Transformer () ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= Ġtransformer . transform ( Test Po jo . getField (" test Long "), ĠTest Po jo . getField (" test Date "), Ġtest Long , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest ToString Transformer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Int Ġ= Ġ 1 3 0 4 0 5 ĊĠĠĠĠĠĠĠ Ġval Ġexpected Outcome Ġ= Ġtest Int . toString () ĊĠĠĠĠĠĠĠ Ġval Ġtransformer Ġ= ĠToString Transformer () ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= Ġtransformer . transform ( Test Po jo . getField (" test Int "), ĠTest Po jo . getField (" test String "), Ġtest Int , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Default Transformer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= ĠDefault Transformer (). transform ( Test Po jo . getField (" test Long "), ĠTest Po jo . getField (" test Long "), Ġ 1 L , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( 1 L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Comma Delimit edString To Enum List Transformer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest String Ġ= Ġ" First , Third " ĊĠĠĠĠĠĠĠ Ġval Ġexpected Outcome Ġ= ĠArrays . asList ( Test Enum . First , ĠTest Enum . Third ) ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= ĠCom ma Delimit edString To Enum List Transformer (). transform ( Test Po jo . getField (" test String "), ĠTest Po jo . getField (" test Enum List "), Ġtest String , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Enum List To Comma Delimit edString () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Enum List Ġ= ĠArrays . asList ( Test Enum . Second , ĠTest Enum . First , ĠTest Enum . Second ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Outcome Ġ= Ġ" Second , First , Second " ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= ĠEnum List To Comma Delimit edString (). transform ( Test Po jo . getField (" test Enum List "), ĠTest Po jo . getField (" test String "), Ġtest Enum List , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Enum ToString Transformer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Enum Ġ= ĠTest Enum . Third ĊĠĠĠĠĠĠĠ Ġval Ġexpected Outcome Ġ= Ġ" Third " ĊĠĠĠĠĠĠĠ Ġval Ġenum ToString Transformer Ġ= ĠEnum ToString Transformer () ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= Ġenum ToString Transformer . transform ( Test Po jo . getField (" test Enum "), ĠTest Po jo . getField (" test String "), Ġtest Enum , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test ĠString Trim Transformer Ġfails Ġon Ġmissing Ġ@ String Trim Length Ġannotation `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtransformer Ġ= ĠString Trim Transformer () ĊĠĠĠĠĠĠĠ Ġexpect Throws < IllegalStateException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransformer . transform ( Test Po jo . getField (" test String "), ĠTest Po jo . getField (" test String "), Ġ" test ", ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test ĠString Trim Transformer Ġreturns Ġnull Ġon Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtransformer Ġ= ĠString Trim Transformer () ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= Ġtransformer . transform ( Test Po jo . getField (" test String Trim "), ĠTest Po jo . getField (" test String Trim "), Ġnull , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test ĠString Trim Transformer Ġhappy Ġflow `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtransformer Ġ= ĠString Trim Transformer () ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ" testing 1 2 3 " ĊĠĠĠĠĠĠĠ Ġval Ġexpected Outcome Ġ= Ġ" test i " ĊĠĠĠĠĠĠĠ Ġval Ġoutcome Ġ= Ġtransformer . transform ( Test Po jo . getField (" test String Trim "), ĠTest Po jo . getField (" test String Trim "), Ġinput , ĠTest Po jo . INSTANCE , ĠTest Po jo . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġexpect That ( outcome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected Outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠTest Po jo Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtest String : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtest String List : ĠList < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtest Long : ĠLong ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtest Double : ĠDouble ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtest Int : ĠInt ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtest Date : ĠDate ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtest Enum Ġ= ĠTest Enum . Third ĊĊĠĠĠĠĠĠĠ Ġ@ Enum Type ( Test Enum :: class ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtest Enum List : ĠList < Test Enum >? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ@ String Trim Length ( 5 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtest String Trim : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠINSTANCE Ġ= ĠTest Po jo () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġget Field ( name : ĠString ?): ĠField Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Po jo :: class . java . getDeclared Field ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġenum Ġclass ĠTest Enum Ġ{ ĊĠĠĠĠĠĠĠ ĠFirst , ĠSecond , ĠThird ĊĠĠĠ Ġ} Ċ }