/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠG ab riel ĠFre itas ĠV as con ce los Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . gab ri elf v . bill er . add bill . domain . validators Ċ Ċ import Ġcom . gab ri elf v . bill er . add bill . domain . Either Ċ import Ġcom . gab ri elf v . bill er . add bill . domain . entities . errors . Expiry Day Error Ċ import Ġcom . gab ri elf v . bill er . add bill . domain . to Left Ċ import Ġcom . gab ri elf v . core . test . is A Ċ import Ġorg . hamcrest . Core Matchers .` is ` Ċ import Ġorg . hamcrest . Matcher Assert . assertThat Ċ import Ġorg . junit . Test Ċ Ċ class ĠExp iry Day Validator Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġregular Days Are Valid () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdays Ġ= Ġ 1 .. 2 8 ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= ĠExp iry Day Validator () ĊĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġdays . map Ġ{ Ġsubject . execute ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġresults . forEach Ġ{ ĠassertThat ( it , Ġis A < Either . Right <* >> ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdays Below One Are Not Regular Month Days () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdays Ġ= ĠlistOf ( 0 , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= ĠExp iry Day Validator () ĊĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġdays . map Ġ{ Ġsubject . execute ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġresults . forEach Ġ{ ĠassertThat ( it , Ġis A < Either . Left <* >> ()) Ġ} ĊĠĠĠĠĠĠĠ Ġresults . forEach Ġ{ ĠassertThat ( it . to Left (), Ġ` is `( Expiry Day Error . Not A Recurring Month Day )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġrecur ring Days Not Recurring In Fe bruary Are Unsafe () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdays Ġ= ĠlistOf ( 2 9 , Ġ 3 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= ĠExp iry Day Validator () ĊĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġdays . map Ġ{ Ġsubject . execute ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġresults . forEach Ġ{ ĠassertThat ( it , Ġis A < Either . Left <* >> ()) Ġ} ĊĠĠĠĠĠĠĠ Ġresults . forEach Ġ{ ĠassertThat ( it . to Left (), Ġ` is `( Expiry Day Error . Not Safe For Fe bruary )) Ġ} ĊĠĠĠ Ġ} Ċ }