package Ġorg . simple . clin ic . new entry Ċ Ċ import Ġcom . spotify . mob ius . test . Next Matchers . has Effects Ċ import Ġcom . spotify . mob ius . test . Next Matchers . has Model Ċ import Ġcom . spotify . mob ius . test . Next Matchers . has No Effects Ċ import Ġcom . spotify . mob ius . test . Next Matchers . has No Model Ċ import Ġcom . spotify . mob ius . test . Update Spec Ċ import Ġcom . spotify . mob ius . test . Update Spec . assertThat Next Ċ import Ġorg . junit . Test Ċ import Ġorg . simple . clin ic . MAX _ ALLOWED _ PAT IENT _ AGE Ċ import Ġorg . simple . clin ic . MIN _ ALLOWED _ PAT IENT _ AGE Ċ import Ġorg . simple . clin ic . patient . Gender Ċ import Ġorg . simple . clin ic . patient . Patient Entry ValidationError Ċ import Ġorg . simple . clin ic . patient . Reminder Consent . Denied Ċ import Ġorg . simple . clin ic . patient . Reminder Consent . Granted Ċ import Ġorg . simple . clin ic . registration . phone . In dian PhoneNumber Validator Ċ import Ġorg . simple . clin ic . util . Just Ċ import Ġorg . simple . clin ic . util . Test User Clock Ċ import Ġorg . simple . clin ic . util . User Clock Ċ import Ġorg . simple . clin ic . widgets . age and date of birth . User Input Age Validator Ċ import Ġorg . simple . clin ic . widgets . age and date of birth . User Input Date Validator Ċ import Ġorg . th reet en . bp . LocalDate Ċ import Ġorg . th reet en . bp . format . DateTime Formatter Ċ import Ġjava . util . Locale Ċ Ċ class ĠPatient Entry Update Test Ġ{ ĊĠ Ġprivate Ġval ĠphoneNumber Validator Ġ= ĠIn dian PhoneNumber Validator () ĊĠ Ġprivate Ġval Ġuser Clock : ĠUser Clock Ġ= ĠTest User Clock ( LocalDate . parse (" 2 0 2 0 - 0 1 - 0 1 ")) ĊĠ Ġprivate Ġval Ġdate OfBirth Format Ġ= ĠDateTime Formatter . of Pattern (" dd / MM / yyyy ", ĠLocale . EN GL ISH ) ĊĠ Ġprivate Ġval Ġdo b Validator Ġ= ĠUser Input Date Validator ( user Clock , Ġdate OfBirth Format ) ĊĠ Ġprivate Ġval Ġage Validator Ġ= ĠUser Input Age Validator ( user Clock , Ġdate OfBirth Format ) ĊĠ Ġprivate Ġval Ġupdate Ġ= ĠPatient Entry Update ( phoneNumber Validator , Ġdo b Validator , Ġage Validator ) ĊĠ Ġprivate Ġval Ġupdate Spec Ġ= ĠUpdate Spec ( update ) ĊĠ Ġprivate Ġval Ġdefault Model Ġ= ĠPatient Entry Model . DEFAULT ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġgr ants Ġreminder Ġconsent , Ġupdate Ġthe Ġmodel `() Ġ{ ĊĠĠĠ Ġval Ġgranted Ġ= ĠGr anted ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( default Model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Reminder Consent Changed ( gr anted )) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Model ( default Model . reminder Consent Changed ( gr anted )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Effects () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġden ies Ġreminder Ġconsent , Ġupdate Ġthe Ġmodel `() Ġ{ ĊĠĠĠ Ġval Ġdenied Ġ= ĠDen ied ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( default Model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Reminder Consent Changed ( den ied )) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Model ( default Model . reminder Consent Changed ( den ied )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Effects () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ// Tests Ġfor Ġvalidation Ġerrors Ġin ĠPatient ĠEntry ĠScreen ĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġleaves Ġfull Ġname Ġfield Ġempty , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . FULL _ NAME _ EMPTY ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed ("") ĊĠĠĠĠĠĠĠ Ġ. age Changed (" 2 1 ") ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġent ers Ġphone Ġnumber Ġwhich Ġis Ġtoo Ġshort , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . PHONE _ NUMBER _ LENGTH _ TOO _ SHORT ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. age Changed (" 2 1 ") ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġent ers Ġphone Ġnumber Ġwhich Ġis Ġtoo Ġlong , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . PHONE _ NUMBER _ LENGTH _ TOO _ LONG ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. age Changed (" 2 1 ") ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 3 8 3 8 3 8 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġdoesn 't Ġenter Ġdate Ġof Ġbirth Ġand Ġage , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . BOTH _ DATE OF B IR TH _ AND _ AGE _ AB SENT ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġent ers Ġinvalid Ġdate Ġof Ġbirth , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . INVALID _ DATE _ OF _ B IR TH ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. date OfBirth Changed (" 0 2 - 1 9 - 2 0 0 0 ") ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġent ers Ġdate Ġof Ġbirth Ġin Ġfuture , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . DATE _ OF _ B IR TH _ IN _ F UT URE ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. date OfBirth Changed (" 0 2 / 0 2 / 2 0 2 1 ") ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġleaves Ġgender Ġfield Ġempty , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . MISSING _ G ENDER ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. age Changed (" 1 2 ") ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġleaves Ġcol ony Ġor Ġv illage Ġfield Ġempty , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . COL ONY _ OR _ V ILL AGE _ EMPTY ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. age Changed (" 1 2 ") ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġleaves Ġdistrict Ġfield Ġempty , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . DI STRICT _ EMPTY ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. age Changed (" 1 2 ") ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġuser Ġleaves Ġstate Ġfield Ġempty , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . STATE _ EMPTY ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. age Changed (" 1 2 ") ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġage Ġexceeds Ġmax Ġlimit , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . AGE _ EX CE ED S _ MAX _ LIMIT ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. age Changed ( MAX _ ALLOWED _ PAT IENT _ AGE . plus ( 1 ). toString ()) ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġage Ġexceeds Ġmin Ġlimit , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . AGE _ EX CE ED S _ MIN _ LIMIT ) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. age Changed ( MIN _ ALLOWED _ PAT IENT _ AGE . minus ( 1 ). toString ()) ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġdate Ġof Ġbirth Ġexceeds Ġmax Ġlimit , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . DO B _ EX CE ED S _ MAX _ LIMIT ) ĊĠĠĠ Ġval Ġentered Date Ġ= Ġdate OfBirth Format . format ( LocalDate . now ( user Clock ). minus Years ( MAX _ ALLOWED _ PAT IENT _ AGE . to Long (). plus ( 1 ))) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. date OfBirth Changed ( enter ed Date ) ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġthe Ġdate Ġof Ġbirth Ġexceeds Ġmin Ġlimit , Ġthen Ġshow Ġerror `() Ġ{ ĊĠĠĠ Ġval Ġerrors : ĠList < Patient Entry ValidationError > Ġ= ĠlistOf ( Patient Entry ValidationError . DO B _ EX CE ED S _ MIN _ LIMIT ) ĊĠĠĠ Ġval Ġentered Date Ġ= Ġdate OfBirth Format . format ( LocalDate . now ( user Clock )) ĊĠĠĠ Ġval Ġmodel Ġ= Ġdefault Model ĊĠĠĠĠĠĠĠ Ġ. fullName Changed (" Name ") ĊĠĠĠĠĠĠĠ Ġ. date OfBirth Changed ( enter ed Date ) ĊĠĠĠĠĠĠĠ Ġ. gender Changed ( Just ( Gender . Male )) ĊĠĠĠĠĠĠĠ Ġ. phoneNumber Changed (" 7 7 2 1 0 8 4 8 4 0 ") ĊĠĠĠĠĠĠĠ Ġ. street Address Changed (" street ") ĊĠĠĠĠĠĠĠ Ġ. col ony Or V illage Changed (" v illage ") ĊĠĠĠĠĠĠĠ Ġ. district Changed (" district ") ĊĠĠĠĠĠĠĠ Ġ. state Changed (" state ") ĊĠĠĠĠĠĠĠ Ġ. zone Changed (" zone ") ĊĊĠĠĠ Ġupdate Spec ĊĠĠĠĠĠĠĠ Ġ. given ( model ) ĊĠĠĠĠĠĠĠ Ġ. ` when `( Save Clicked ) ĊĠĠĠĠĠĠĠ Ġ. then ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat Next ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas No Model (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Effects ( Show Validation Errors ( errors ) Ġas ĠPatient Entry Effect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠ Ġ} Ċ Ċ } Ċ