import Ġio . github . rc ap rar o . kal id ation . constraints . function . future Ċ import Ġio . github . rc ap rar o . kal id ation . constraints . function . future Or Present Ċ import Ġio . github . rc ap rar o . kal id ation . constraints . function . past Ċ import Ġio . github . rc ap rar o . kal id ation . constraints . function . past Or Present Ċ import Ġio . github . rc ap rar o . kal id ation . dsl . constraints Ċ import Ġio . github . rc ap rar o . kal id ation . dsl . property Ċ import Ġio . github . rc ap rar o . kal id ation . dsl . validation Spec Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . fail Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Z onedDateTime Ċ Ċ private Ġdata Ġclass ĠTemp oral TestClass ( val Ġld Field : ĠLocalDateTime , Ġval Ġz d Field : ĠZ onedDateTime ) Ċ Ċ class ĠTemp oral Validation Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġvalidation Ġof ĠTemp oral Ġfields `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġvalidation Spec Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstraints < Temporal TestClass > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( Temporal TestClass :: ld Field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpast () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpast Or Present () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty ( Temporal TestClass :: zd Field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuture () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuture Or Present () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġd sl Test Ġ= ĠTemp oral TestClass ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now (). plus Days ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ onedDateTime . now (). minus Days ( 1 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvalidated Ġ= Ġspec . validate ( dsl Test ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( validated . is Invalid ) ĊĊĠĠĠĠĠĠĠ Ġvalidated . fold ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( it ). extract ing (" fieldName ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly In Any Order ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" zd Field ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" zd Field ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ld Field ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ld Field " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġfail (" The Ġvalidation Ġshould Ġnot Ġbe Ġvalid ") Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }