package Ġrs . d us k . engine . data . file Ċ Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider . Value Source Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* Ġ@ author ĠG reg ĠH ib ber d Ġ< greg @ greg hib ber d . com > Ċ Ġ* Ġ@ since ĠApril Ġ 0 4 , Ġ 2 0 2 0 Ċ Ġ*/ Ċ internal Ġclass ĠFile Loader Test Ġ{ ĊĊĊĠĠĠ Ġprivate Ġenum Ġclass ĠTest Enum Ġ{ ĊĠĠĠĠĠĠĠ ĠFIRST , ĊĠĠĠĠĠĠĠ ĠSE COND ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġdata Ġclass ĠTest Data ( val Ġmessage : ĠString , Ġval Ġvalue : ĠTest Enum ) ĊĊĠĠĠ Ġ@ Value Source ( ĊĠĠĠĠĠĠĠ Ġstrings Ġ= Ġ[ """ ĊĠĠĠĠĠĠĠ Ġmessage : Ġ" Test Ġmessage " ĊĠĠĠĠĠĠĠ Ġvalue : ĠSE COND ĊĠĠĠ Ġ"" ", Ġ""" ĊĠĠĠĠĠĠĠ Ġmessage : ĠTest Ġmessage ĊĠĠĠĠĠĠĠ Ġvalue : ĠSE COND ĊĠĠĠ Ġ""" ] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġfun Ġ` Load Ġdata `( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ" test . yml " ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( path ) ĊĠĠĠĠĠĠĠ Ġfile . write Text ( text ) ĊĠĠĠĠĠĠĠ Ġval Ġloader Ġ= ĠFile Loader () ĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġloader . load OrNull < TestData >( path ) ĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertNotNull ( result ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Test Ġmessage ", Ġresult !!. message ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Test Enum . SECOND , Ġresult . value ) ĊĠĠĠĠĠĠĠ Ġ// ĠTe ardown ĊĠĠĠĠĠĠĠ Ġfile . delete () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Load Ġno Ġdata `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ" invalid . yml " ĊĠĠĠĠĠĠĠ Ġval Ġloader Ġ= ĠFile Loader () ĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġloader . load OrNull < TestData >( path ) ĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertNull ( result ) ĊĠĠĠ Ġ} Ċ }