// ĠCopyright ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ // ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ċ package Ġcom . amazon . payments files . validation Ċ Ċ import Ġcom . amazon . payments files . Charge back Field Ċ import Ġcom . amazon . payments files . Field Required Ċ import Ġcom . amazon . payments files . context Checks Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . io . File Ċ Ċ class ĠCharge back Validator UnitTest Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġtest Path Ġ= Ġ" T st Resources / Charge back s /" ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠPositive Cases Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Short ĠCorrect ly ĠForm att ed ĠCharge back ĠFile ĠRaises ĠNo ĠErrors Ġnor ĠExceptions `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 0 , Ġcount Errors ( test Path Ġ+ Ġ" Basic . csv ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Long ĠCorrect ly ĠForm att ed ĠCharge back ĠFile ĠRaises ĠNo ĠErrors Ġnor ĠExceptions `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 0 , Ġcount Errors ( test Path Ġ+ Ġ" Long Good . csv ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠNegative Cases Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Empty ĠField ĠErrors ĠDet ected `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequired Field Count Ġ= Ġenum Values < Charge back Field >(). filter Ġ{ Ġit . required Ġ== ĠField Required . Always Ġ}. size ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( required Field Count , Ġcount Errors ( test Path Ġ+ Ġ" Empty Fields . csv ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Invalid ĠField ĠErrors ĠDet ected `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Field Count Ġ= Ġenum Values < Charge back Field >(). size ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( total Field Count , Ġcount Errors ( test Path Ġ+ Ġ" Bad Fields . csv ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` Context ĠCheck ĠField ĠErrors ĠDet ected `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( context Checks . size , Ġcount Errors ( test Path Ġ+ Ġ" Context Checks . csv ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcount Errors ( fileName : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġerror Counter Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( error Line Ġin ĠCharge back Validator (). validate ( File ( fileName ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( e Ġin Ġerror Line . errors ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Counter ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġerror Counter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ