package Ġorg . simple . clin ic . edit patient Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . any Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Return Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . eq Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . in Order Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . never Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . verify Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . subjects . Publish Subject Ċ import Ġjunit params . JUnit Params Runner Ċ import Ġjunit params . Parameters Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . simple . shared Test Code . TestData Ċ import Ġorg . simple . clin ic . edit patient . Edit Patient State . NOT _ SA V ING _ PAT IENT Ċ import Ġorg . simple . clin ic . edit patient . Edit Patient ValidationError . Both Date OfBirth And Age Ad sent Ċ import Ġorg . simple . clin ic . edit patient . Edit Patient ValidationError . Col ony Or V illage Empty Ċ import Ġorg . simple . clin ic . edit patient . Edit Patient ValidationError . Date OfBirth In Future Ċ import Ġorg . simple . clin ic . edit patient . Edit Patient ValidationError . Date OfBirth ParseError Ċ import Ġorg . simple . clin ic . edit patient . Edit Patient ValidationError . District Empty Ċ import Ġorg . simple . clin ic . edit patient . Edit Patient ValidationError . FullName Empty Ċ import Ġorg . simple . clin ic . edit patient . Edit Patient ValidationError . PhoneNumber Empty Ċ import Ġorg . simple . clin ic . edit patient . Edit Patient ValidationError . PhoneNumber Length Too Short Ċ import Ġorg . simple . clin ic . edit patient . Edit Patient ValidationError . State Empty Ċ import Ġorg . simple . clin ic . new entry . country . Bang l ade sh Input Fields Provider Ċ import Ġorg . simple . clin ic . new entry . country . Input Fields Factory Ċ import Ġorg . simple . clin ic . patient . Gender Ċ import Ġorg . simple . clin ic . patient . Patient Ċ import Ġorg . simple . clin ic . patient . Patient Address Ċ import Ġorg . simple . clin ic . patient . Patient Age Details Ċ import Ġorg . simple . clin ic . patient . Patient Age Details . Type . EX ACT Ċ import Ġorg . simple . clin ic . patient . Patient Age Details . Type . FROM _ AGE Ċ import Ġorg . simple . clin ic . patient . Patient PhoneNumber Ċ import Ġorg . simple . clin ic . patient . Patient Profile Ċ import Ġorg . simple . clin ic . patient . Patient Repository Ċ import Ġorg . simple . clin ic . patient . PhoneNumber Details Ċ import Ġorg . simple . clin ic . registration . phone . PhoneNumber Validator Ċ import Ġorg . simple . shared Test Code . util . Rx Errors Rule Ċ import Ġorg . simple . shared Test Code . util . Test User Clock Ċ import Ġorg . simple . shared Test Code . util . Test Utc Clock Ċ import Ġorg . simple . clin ic . util . scheduler . Tr amp oline Schedulers Provider Ċ import Ġorg . simple . shared Test Code . uuid . Fake Uuid Generator Ċ 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 . simple . clin ic . widgets . age and date of birth . User Input Date Validator . Result . Invalid . Date IsIn Future Ċ import Ġorg . simple . clin ic . widgets . age and date of birth . User Input Date Validator . Result . Invalid . Invalid Pattern Ċ import Ġorg . simple . mob ius . migration . Mob ius TestFixture Ċ import Ġjava . time . Duration Ċ import Ġjava . time . Instant Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . Month Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . util . Locale Ċ import Ġjava . util . UUID Ċ Ċ @ RunWith ( JUnit Params Runner :: class ) Ċ class ĠEdit Patient Screen Save Test Ġ{ ĊĊĠ Ġ@ get : Rule ĊĠ Ġval Ġrx Errors Rule Ġ= ĠRx Errors Rule () ĊĊĠ Ġprivate Ġval Ġui Events Ġ= ĠPublish Subject . create < Edit Patient Event >() ĊĠ Ġprivate Ġval Ġui : ĠEdit Patient Ui Ġ= Ġmock () ĊĠ Ġprivate Ġval Ġpatient Repository : ĠPatient Repository Ġ= Ġmock () ĊĠ Ġprivate Ġval Ġcountry Ġ= ĠTest Data . country () ĊĊĠ Ġprivate Ġval Ġut c Clock : ĠTest Utc Clock Ġ= ĠTest Utc Clock () ĊĠ Ġprivate Ġval Ġuser Clock : ĠTest User Clock Ġ= ĠTest User Clock ( LocalDate . parse (" 2 0 1 8 - 0 1 - 0 1 ")) ĊĠ Ġprivate Ġval Ġnext Year Ġ= Ġ" 2 0 1 9 " ĊĠ Ġprivate Ġval Ġdate OfBirth Format Ġ= ĠDateTime Formatter . of Pattern (" dd / MM / yyyy ", ĠLocale . EN GL ISH ) ĊĠ Ġprivate Ġval Ġgenerated Phone Uuid Ġ= ĠUUID . fromString (" ada 3 ea 2 4 - 8 1 9 b - 4 2 e 4 - ac 2 1 - 5 1 bcf 6 1 ce bac ") ĊĠ Ġprivate Ġval Ġuser Ġ= ĠTest Data . logged In User () ĊĊĠ Ġprivate Ġval Ġview Renderer Ġ= ĠEdit Patient View Renderer ( ui ) ĊĊĠ Ġprivate Ġval Ġinput Fields Factory Ġ= ĠInput Fields Factory ( Bang l ade sh Input Fields Provider ()) ĊĊĠ Ġprivate Ġval Ġview Effect Handler Ġ= ĠEdit Patient View Effect Handler ( ui ) ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġsave Ġis Ġclicked , Ġpatient Ġname Ġshould Ġbe Ġvalidated `() Ġ{ ĊĠĠĠ Ġval Ġpatient Ġ= ĠTest Data . patient () ĊĠĠĠ Ġval Ġaddress Ġ= ĠTest Data . patient Address () ĊĠĠĠ Ġval ĠphoneNumber : ĠPatient PhoneNumber ? Ġ= Ġnull ĊĊĠĠĠ Ġwhenever ( patient Repository . bang l ade sh National Id For Patient ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĠĠĠ Ġwhenever ( patient Repository . patient Profile ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĊĠĠĠ Ġscreen Created ( patient , Ġaddress , ĠphoneNumber ) ĊĊĠĠĠ Ġui Events . onNext ( PhoneNumber Changed ("")) ĊĠĠĠ Ġui Events . onNext ( Gender Changed ( Gender . Male )) ĊĠĠĠ Ġui Events . onNext ( Col ony Or V illage Changed (" Col ony ")) ĊĠĠĠ Ġui Events . onNext ( District Changed (" District ")) ĊĠĠĠ Ġui Events . onNext ( StateChanged (" State ")) ĊĠĠĠ Ġui Events . onNext ( Age Changed (" 1 ")) ĊĊĠĠĠ Ġui Events . onNext ( Name Changed ("")) ĊĠĠĠ Ġui Events . onNext ( Save Clicked ) ĊĊĠĠĠ Ġverify ( ui ). show Validation Errors ( set Of ( FullName Empty )) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġsave Ġis Ġclicked , Ġthe Ġcol ony Ġshould Ġbe Ġvalidated `() Ġ{ ĊĠĠĠ Ġval Ġpatient Ġ= ĠTest Data . patient () ĊĠĠĠ Ġval Ġaddress Ġ= ĠTest Data . patient Address () ĊĠĠĠ Ġval ĠphoneNumber : ĠPatient PhoneNumber ? Ġ= Ġnull ĊĊĠĠĠ Ġwhenever ( patient Repository . bang l ade sh National Id For Patient ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĠĠĠ Ġwhenever ( patient Repository . patient Profile ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĠĠĠ Ġscreen Created ( patient , Ġaddress , ĠphoneNumber ) ĊĊĠĠĠ Ġui Events . onNext ( PhoneNumber Changed ("")) ĊĠĠĠ Ġui Events . onNext ( Gender Changed ( Gender . Male )) ĊĠĠĠ Ġui Events . onNext ( District Changed (" District ")) ĊĠĠĠ Ġui Events . onNext ( StateChanged (" State ")) ĊĠĠĠ Ġui Events . onNext ( Name Changed (" Name ")) ĊĠĠĠ Ġui Events . onNext ( Age Changed (" 1 ")) ĊĊĠĠĠ Ġui Events . onNext ( Col ony Or V illage Changed ("")) ĊĠĠĠ Ġui Events . onNext ( Save Clicked ) ĊĊĠĠĠ Ġverify ( ui ). show Validation Errors ( set Of ( Col ony Or V illage Empty )) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġsave Ġis Ġclicked , Ġthe Ġdistrict Ġshould Ġbe Ġvalidated `() Ġ{ ĊĠĠĠ Ġval Ġpatient Ġ= ĠTest Data . patient () ĊĠĠĠ Ġval Ġaddress Ġ= ĠTest Data . patient Address () ĊĠĠĠ Ġval ĠphoneNumber : ĠPatient PhoneNumber ? Ġ= Ġnull ĊĊĠĠĠ Ġwhenever ( patient Repository . bang l ade sh National Id For Patient ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĠĠĠ Ġwhenever ( patient Repository . patient Profile ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĊĠĠĠ Ġscreen Created ( patient , Ġaddress , ĠphoneNumber ) ĊĊĠĠĠ Ġui Events . onNext ( PhoneNumber Changed ("")) ĊĠĠĠ Ġui Events . onNext ( Gender Changed ( Gender . Male )) ĊĠĠĠ Ġui Events . onNext ( Col ony Or V illage Changed (" Col ony ")) ĊĠĠĠ Ġui Events . onNext ( StateChanged (" State ")) ĊĠĠĠ Ġui Events . onNext ( Name Changed (" Name ")) ĊĠĠĠ Ġui Events . onNext ( Age Changed (" 1 ")) ĊĊĠĠĠ Ġui Events . onNext ( District Changed ("")) ĊĠĠĠ Ġui Events . onNext ( Save Clicked ) ĊĊĠĠĠ Ġverify ( ui ). show Validation Errors ( set Of ( District Empty )) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġsave Ġis Ġclicked , Ġthe Ġstate Ġshould Ġbe Ġvalidated `() Ġ{ ĊĠĠĠ Ġval Ġpatient Ġ= ĠTest Data . patient () ĊĠĠĠ Ġval Ġaddress Ġ= ĠTest Data . patient Address () ĊĠĠĠ Ġval ĠphoneNumber : ĠPatient PhoneNumber ? Ġ= Ġnull ĊĊĠĠĠ Ġwhenever ( patient Repository . bang l ade sh National Id For Patient ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĠĠĠ Ġwhenever ( patient Repository . patient Profile ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĊĠĠĠ Ġscreen Created ( patient , Ġaddress , ĠphoneNumber ) ĊĊĠĠĠ Ġui Events . onNext ( PhoneNumber Changed ("")) ĊĠĠĠ Ġui Events . onNext ( Gender Changed ( Gender . Male )) ĊĠĠĠ Ġui Events . onNext ( Col ony Or V illage Changed (" Col ony ")) ĊĠĠĠ Ġui Events . onNext ( District Changed (" District ")) ĊĠĠĠ Ġui Events . onNext ( Name Changed (" Name ")) ĊĠĠĠ Ġui Events . onNext ( Age Changed (" 1 ")) ĊĊĠĠĠ Ġui Events . onNext ( StateChanged ("")) ĊĠĠĠ Ġui Events . onNext ( Save Clicked ) ĊĊĠĠĠ Ġverify ( ui ). show Validation Errors ( set Of ( State Empty )) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġsave Ġis Ġclicked , Ġthe Ġage Ġshould Ġbe Ġvalidated `() Ġ{ ĊĠĠĠ Ġval Ġpatient Ġ= ĠTest Data . patient () ĊĠĠĠ Ġval Ġaddress Ġ= ĠTest Data . patient Address () ĊĠĠĠ Ġval ĠphoneNumber : ĠPatient PhoneNumber ? Ġ= Ġnull ĊĊĠĠĠ Ġwhenever ( patient Repository . bang l ade sh National Id For Patient ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĠĠĠ Ġwhenever ( patient Repository . patient Profile ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĊĠĠĠ Ġscreen Created ( patient , Ġaddress , ĠphoneNumber ) ĊĠĠĠ Ġui Events . onNext ( PhoneNumber Changed ("")) ĊĠĠĠ Ġui Events . onNext ( Gender Changed ( Gender . Male )) ĊĠĠĠ Ġui Events . onNext ( Col ony Or V illage Changed (" Col ony ")) ĊĠĠĠ Ġui Events . onNext ( District Changed (" District ")) ĊĠĠĠ Ġui Events . onNext ( Name Changed (" Name ")) ĊĠĠĠ Ġui Events . onNext ( StateChanged (" State ")) ĊĠĠĠ Ġui Events . onNext ( Age Changed ("")) ĊĠĠĠ Ġui Events . onNext ( Save Clicked ) ĊĊĠĠĠ Ġverify ( ui ). show Validation Errors ( set Of ( Both Date OfBirth And Age Ad sent )) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġ@ Parameters ( method Ġ= Ġ" params Ġfor Ġdate Ġof Ġbirth Ġshould Ġbe Ġvalidated ") ĊĠ Ġfun Ġ` when Ġsave Ġis Ġclicked , Ġthe Ġdate Ġof Ġbirth Ġshould Ġbe Ġvalidated `( ĊĠĠĠĠĠ Ġdate OfBirth Test Params : ĠDate OfBirth Test Params ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġval Ġpatient Ġ= ĠTest Data . patient () ĊĠĠĠ Ġval Ġaddress Ġ= ĠTest Data . patient Address () ĊĠĠĠ Ġval ĠphoneNumber : ĠPatient PhoneNumber ? Ġ= Ġnull ĊĊĠĠĠ Ġwhenever ( patient Repository . bang l ade sh National Id For Patient ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĠĠĠ Ġwhenever ( patient Repository . patient Profile ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĊĠĠĠ Ġscreen Created ( patient , Ġaddress , ĠphoneNumber ) ĊĠĠĠ Ġui Events . onNext ( PhoneNumber Changed ("")) ĊĠĠĠ Ġui Events . onNext ( Gender Changed ( Gender . Male )) ĊĠĠĠ Ġui Events . onNext ( Col ony Or V illage Changed (" Col ony ")) ĊĠĠĠ Ġui Events . onNext ( District Changed (" District ")) ĊĠĠĠ Ġui Events . onNext ( Name Changed (" Name ")) ĊĠĠĠ Ġui Events . onNext ( StateChanged (" State ")) ĊĠĠĠ Ġui Events . onNext ( Date OfBirth Changed ( date OfBirth Test Params . date OfBirth )) ĊĠĠĠ Ġui Events . onNext ( Save Clicked ) ĊĊĠĠĠ Ġverify ( ui ). show Validation Errors ( set Of ( date OfBirth Test Params . expected Error )) ĊĠ Ġ} ĊĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġprivate Ġfun Ġ` params Ġfor Ġdate Ġof Ġbirth Ġshould Ġbe Ġvalidated ` (): ĠList < Date OfBirth Test Params > Ġ{ ĊĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠDate OfBirth Test Params (" 2 0 / 4 0 - 8 0 ", ĠInvalid Pattern , ĠDate OfBirth ParseError ), ĊĠĠĠĠĠĠĠ ĠDate OfBirth Test Params (" 0 1 / 0 1 /$ next Year ", ĠDate IsIn Future , ĠDate OfBirth In Future ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġdata Ġclass ĠDate OfBirth Test Params ( ĊĠĠĠĠĠ Ġval Ġdate OfBirth : ĠString , ĊĠĠĠĠĠ Ġval Ġdo b Validation Result : ĠUser Input Date Validator . Result , ĊĠĠĠĠĠ Ġval Ġexpected Error : ĠEdit Patient ValidationError ĊĠ Ġ) ĊĊĠ Ġ@ Test ĊĠ Ġ@ Parameters ( method Ġ= Ġ" params Ġfor Ġsaving Ġpatient Ġon Ġsave Ġclicked ") ĊĠ Ġfun Ġ` when Ġsave Ġis Ġclicked , Ġthe Ġpatient Ġdetails Ġmust Ġbe Ġupdated Ġif Ġthere Ġare Ġno Ġerrors `( test Params : ĠSave Patient Test Params ) Ġ{ ĊĠĠĠ Ġval Ġ( existing Saved Patient , ĊĠĠĠĠĠĠĠ Ġexisting Saved Address , ĊĠĠĠĠĠĠĠ Ġexisting Saved PhoneNumber , ĊĠĠĠĠĠĠĠ Ġadvance Clock By , ĊĠĠĠĠĠĠĠ Ġinput Events , ĊĠĠĠĠĠĠĠ Ġshould Save Patient , ĊĠĠĠĠĠĠĠ Ġexpected Saved Patient , ĊĠĠĠĠĠĠĠ Ġexpected Saved Patient Address , ĊĠĠĠĠĠĠĠ Ġexpected Saved Patient PhoneNumber ĊĠĠĠ Ġ) Ġ= Ġtest Params ĊĊĠĠĠ Ġval Ġpatient Uuid Ġ= Ġexisting Saved Patient . uuid ĊĊĠĠĠ Ġwhenever ( patient Repository . update Patient ( any ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . update Address For Patient ( eq ( patient Uuid ), Ġany ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . update PhoneNumber For Patient ( eq ( patient Uuid ), Ġany ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . create PhoneNumber For Patient ( eq ( generated Phone Uuid ), Ġeq ( patient Uuid ), Ġany (), Ġany ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . bang l ade sh National Id For Patient ( patient Uuid )) Ġdo Return ĠObservable . never () ĊĠĠĠ Ġwhenever ( patient Repository . patient Profile ( patient Uuid )) Ġdo Return ĠObservable . never () ĊĊĠĠĠ Ġut c Clock . advance By ( advance Clock By ) ĊĠĠĠ Ġscreen Created ( existing Saved Patient , Ġexisting Saved Address , Ġexisting Saved PhoneNumber ) ĊĠĠĠ Ġinput Events . forEach Ġ{ Ġui Events . onNext ( it ) Ġ} ĊĠĠĠ Ġui Events . onNext ( Save Clicked ) ĊĊĠĠĠ Ġif Ġ(! should Save Patient ) Ġ{ ĊĠĠĠĠĠ Ġverify ( patient Repository , Ġnever ()). update Patient ( any ()) ĊĠĠĠĠĠ Ġverify ( patient Repository , Ġnever ()). update Address For Patient ( any (), Ġany ()) ĊĠĠĠĠĠ Ġverify ( patient Repository , Ġnever ()). update PhoneNumber For Patient ( any (), Ġany ()) ĊĠĠĠĠĠ Ġverify ( patient Repository , Ġnever ()). create PhoneNumber For Patient ( any (), Ġany (), Ġany (), Ġany ()) ĊĠĠĠĠĠ Ġverify ( ui , Ġnever ()). go Back () ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġverify ( patient Repository ). update Patient ( expected Saved Patient !! ) ĊĠĠĠ Ġverify ( patient Repository ). update Address For Patient ( expected Saved Patient . uuid , Ġexpected Saved Patient Address !! ) ĊĊĠĠĠ Ġif Ġ( expected Saved Patient PhoneNumber Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( existing Saved PhoneNumber Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnumber Details Ġ= ĠPhone Number Details . mobile ( expected Saved Patient PhoneNumber . number ) ĊĊĠĠĠĠĠĠĠ Ġverify ( patient Repository ). create PhoneNumber For Patient ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuuid Ġ= Ġgenerated Phone Uuid , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Uuid Ġ= Ġexpected Saved Patient PhoneNumber . patient Uuid , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Details Ġ= Ġnumber Details , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactive Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġverify ( patient Repository ). update PhoneNumber For Patient ( expected Saved Patient . uuid , Ġexpected Saved Patient PhoneNumber ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġverify ( patient Repository , Ġnever ()). create PhoneNumber For Patient ( any (), Ġany (), Ġany (), Ġany ()) ĊĠĠĠĠĠ Ġverify ( patient Repository , Ġnever ()). update PhoneNumber For Patient ( any (), Ġany ()) ĊĠĠĠ Ġ} ĊĠĠĠ Ġverify ( ui ). go Back () ĊĠ Ġ} ĊĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġprivate Ġfun Ġ` params Ġfor Ġsaving Ġpatient Ġon Ġsave Ġclicked ` (): ĠList < Save Patient Test Params > Ġ{ ĊĠĠĠ Ġval Ġone Year Ġ= ĠDuration . of Days ( 3 6 5 L ) ĊĠĠĠ Ġval Ġtwo Years Ġ= Ġone Year . plus ( one Year ) ĊĊĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġfalse , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCol ony Or V illage Changed (" Col ony "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Male ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 7 8 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate OfBirth Changed (" 2 0 / 0 5 / 1 9 8 5 ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Patient Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfullName Ġ= Ġ" Name ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= ĠGender . Male , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Details Ġ= ĠPatient Age Details ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Value Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage UpdatedAt Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate OfBirth Ġ= ĠLocalDate . of ( 1 9 8 5 , ĠMonth . MAY , Ġ 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Address Ġ= Ġ{ Ġit . copy ( district Ġ= Ġ" District ", Ġcol ony Or V illage Ġ= Ġ" Col ony ", Ġstate Ġ= Ġ" State ") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected PhoneNumber Ġ= Ġ{ Ġpatient Id , Ġalready Present PhoneNumber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalready Present PhoneNumber ?. copy ( number Ġ= Ġ" 1 2 3 4 5 6 7 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠTest Data . patient PhoneNumber ( patient Uuid Ġ= Ġpatient Id , Ġnumber Ġ= Ġ" 1 2 3 4 5 6 7 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġfalse , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadvance Clock By Ġ= Ġone Year , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCol ony Or V illage Changed (" Col ony "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Male ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 7 8 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate OfBirth Changed (""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAge Changed (" 2 2 ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Patient Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfullName Ġ= Ġ" Name ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= ĠGender . Male , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Details Ġ= ĠPatient Age Details ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Value Ġ= Ġ 2 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage UpdatedAt Ġ= ĠInstant . now ( utc Clock ). plus ( one Year ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate OfBirth Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Address Ġ= Ġ{ Ġit . copy ( district Ġ= Ġ" District ", Ġcol ony Or V illage Ġ= Ġ" Col ony ", Ġstate Ġ= Ġ" State ") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected PhoneNumber Ġ= Ġ{ Ġpatient Id , Ġalready Present PhoneNumber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalready Present PhoneNumber ?. copy ( number Ġ= Ġ" 1 2 3 4 5 6 7 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠTest Data . patient PhoneNumber ( patient Uuid Ġ= Ġpatient Id , Ġnumber Ġ= Ġ" 1 2 3 4 5 6 7 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġfalse , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCol ony Or V illage Changed (" Col ony "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Male ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Patient Ġ= Ġ{ Ġit . copy ( fullName Ġ= Ġ" Name ", Ġgender Ġ= ĠGender . Male ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Address Ġ= Ġ{ Ġit . copy ( district Ġ= Ġ" District ", Ġcol ony Or V illage Ġ= Ġ" Col ony ", Ġstate Ġ= Ġ" State ") Ġ}), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAge Changed (" 2 5 ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Patient Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfullName Ġ= Ġ" Name ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= ĠGender . Trans gender , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Details Ġ= ĠPatient Age Details ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Value Ġ= Ġ 2 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage UpdatedAt Ġ= ĠInstant . now ( utc Clock ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate OfBirth Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Address Ġ= Ġ{ Ġit . copy ( district Ġ= Ġ" District ", Ġstate Ġ= Ġ" State ") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected PhoneNumber Ġ= Ġ{ Ġpatient Id , Ġalready Present PhoneNumber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalready Present PhoneNumber ?. copy ( number Ġ= Ġ" 1 2 3 4 5 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠTest Data . patient PhoneNumber ( patient Uuid Ġ= Ġpatient Id , Ġnumber Ġ= Ġ" 1 2 3 4 5 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAge Changed (""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate OfBirth Changed (" 2 5 / 0 6 / 1 9 6 5 ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Patient Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfullName Ġ= Ġ" Name ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= ĠGender . Trans gender , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Details Ġ= ĠPatient Age Details ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Value Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage UpdatedAt Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate OfBirth Ġ= ĠLocalDate . parse (" 1 9 6 5 - 0 6 - 2 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Address Ġ= Ġ{ Ġit . copy ( district Ġ= Ġ" District ", Ġstate Ġ= Ġ" State ") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected PhoneNumber Ġ= Ġ{ Ġpatient Id , Ġalready Present PhoneNumber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalready Present PhoneNumber ?. copy ( number Ġ= Ġ" 1 2 3 4 5 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠTest Data . patient PhoneNumber ( patient Uuid Ġ= Ġpatient Id , Ġnumber Ġ= Ġ" 1 2 3 4 5 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadvance Clock By Ġ= Ġtwo Years , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAge Changed (" 2 5 ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Patient Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfullName Ġ= Ġ" Name ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= ĠGender . Trans gender , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Details Ġ= ĠPatient Age Details ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Value Ġ= Ġ 2 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage UpdatedAt Ġ= ĠInstant . now ( utc Clock ). plus ( two Years ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate OfBirth Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Address Ġ= Ġ{ Ġit . copy ( district Ġ= Ġ" District ", Ġstate Ġ= Ġ" State ") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected PhoneNumber Ġ= Ġ{ Ġpatient Id , Ġalready Present PhoneNumber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalready Present PhoneNumber ?. copy ( number Ġ= Ġ" 1 2 3 4 5 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠTest Data . patient PhoneNumber ( patient Uuid Ġ= Ġpatient Id , Ġnumber Ġ= Ġ" 1 2 3 4 5 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 7 ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Patient Ġ= Ġ{ Ġit . copy ( fullName Ġ= Ġ" Name Ġ 2 ", Ġgender Ġ= ĠGender . Trans gender ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected Address Ġ= Ġ{ Ġit . copy ( district Ġ= Ġ" District ", Ġstate Ġ= Ġ" State Ġ 2 ") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Expected PhoneNumber Ġ= Ġ{ Ġpatient Id , Ġalready Present PhoneNumber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalready Present PhoneNumber ?. copy ( number Ġ= Ġ" 1 2 3 4 5 6 7 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠTest Data . patient PhoneNumber ( patient Uuid Ġ= Ġpatient Id , Ġnumber Ġ= Ġ" 1 2 3 4 5 6 7 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 7 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAge Changed (" ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 7 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate OfBirth Changed (" 1 2 / 3 4 ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 7 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate OfBirth Changed (" 3 0 / 1 1 /$ next Year ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 7 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAge Changed (" ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 7 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAge Changed (""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate OfBirth Changed (" 3 0 / 1 1 /$ next Year ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 7 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAge Changed (""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate OfBirth Changed (" 3 0 / 1 1 ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġfalse , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 6 7 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhone Number Changed (" 1 2 3 4 5 ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġtrue , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (" State "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Trans gender )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠ Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatient Profile Ġ= Ġcreate Patient Profile ( should Add Number Ġ= Ġfalse , Ġshould Have Age Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠName Changed (" Name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDistrict Changed (" District "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠState Changed (""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender Changed ( Gender . Female )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Save Patient Ġ= Ġfalse ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġcreate Patient Profile ( ĊĠĠĠĠĠ Ġshould Add Number : ĠBoolean , ĊĠĠĠĠĠ Ġshould Have Age : ĠBoolean ĊĠ Ġ): ĠPatient Profile Ġ{ ĊĠĠĠ Ġval Ġpatient Uuid Ġ= ĠUUID . randomUUID () ĊĠĠĠ Ġval Ġaddress Uuid Ġ= ĠUUID . randomUUID () ĊĊĠĠĠ Ġval Ġpatient Ġ= Ġif Ġ( should Have Age ) Ġ{ ĊĠĠĠĠĠ ĠTest Data . patient ( ĊĠĠĠĠĠĠĠĠĠ Ġuuid Ġ= Ġpatient Uuid , ĊĠĠĠĠĠĠĠĠĠ Ġaddress Uuid Ġ= Ġaddress Uuid , ĊĠĠĠĠĠĠĠĠĠ Ġpatient Age Details Ġ= ĠPatient Age Details ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Value Ġ= Ġ 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage UpdatedAt Ġ= ĠInstant . now ( utc Clock ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate OfBirth Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ ĠTest Data . patient ( ĊĠĠĠĠĠĠĠĠĠ Ġuuid Ġ= Ġpatient Uuid , ĊĠĠĠĠĠĠĠĠĠ Ġaddress Uuid Ġ= Ġaddress Uuid , ĊĠĠĠĠĠĠĠĠĠ Ġpatient Age Details Ġ= ĠPatient Age Details ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage Value Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġage UpdatedAt Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate OfBirth Ġ= ĠLocalDate . now ( utc Clock ) ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠPatient Profile ( ĊĠĠĠĠĠĠĠ Ġpatient Ġ= Ġpatient , ĊĠĠĠĠĠĠĠ Ġaddress Ġ= ĠTest Data . patient Address ( uuid Ġ= Ġaddress Uuid ), ĊĠĠĠĠĠĠĠ Ġphone Numbers Ġ= Ġif Ġ( should Add Number ) ĠlistOf ( TestData . patient PhoneNumber ( patient Uuid Ġ= Ġpatient Uuid )) Ġelse Ġempty List (), ĊĠĠĠĠĠĠĠ Ġbusiness Ids Ġ= Ġempty List () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġcreate Save Patient Test Params ( ĊĠĠĠĠĠ Ġpatient Profile : ĠPatient Profile , ĊĠĠĠĠĠ Ġadvance Clock By : ĠDuration Ġ= ĠDuration . ZERO , ĊĠĠĠĠĠ Ġinput Events : ĠList < Edit Patient Event >, ĊĠĠĠĠĠ Ġshould Save Patient : ĠBoolean , ĊĠĠĠĠĠ Ġcreate Expected Patient : Ġ( Patient ) Ġ-> ĠPatient Ġ= Ġ{ Ġit Ġ}, ĊĠĠĠĠĠ Ġcreate Expected Address : Ġ( Patient Address ) Ġ-> ĠPatient Address Ġ= Ġ{ Ġit Ġ}, ĊĠĠĠĠĠ Ġcreate Expected PhoneNumber : Ġ( UUID , ĠPatient PhoneNumber ?) Ġ-> ĠPatient PhoneNumber ? Ġ= Ġ{ Ġ_, ĠphoneNumber Ġ-> ĠphoneNumber Ġ} ĊĠ Ġ): ĠSave Patient Test Params Ġ{ ĊĠĠĠ Ġval Ġexpected Patient PhoneNumber Ġ= Ġif Ġ( should Save Patient ) Ġ{ ĊĠĠĠĠĠ Ġval Ġalready Saved PhoneNumber Ġ= Ġif Ġ( patient Profile . phone Numbers . isEmpty ()) Ġnull Ġelse Ġpatient Profile . phone Numbers . first () ĊĠĠĠĠĠ Ġcreate Expected PhoneNumber ( patient Profile . patient . uuid , Ġalready Saved PhoneNumber ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpre Create Input Events Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠName Changed ( patient Profile . patient . fullName ), ĊĠĠĠĠĠĠĠ ĠDistrict Changed ( patient Profile . address . district ), ĊĠĠĠĠĠĠĠ ĠCol ony Or V illage Changed ( patient Profile . address . col ony Or V illage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ""), ĊĠĠĠĠĠĠĠ ĠState Changed ( patient Profile . address . state ), ĊĠĠĠĠĠĠĠ ĠGender Changed ( patient Profile . patient . gender ), ĊĠĠĠĠĠĠĠ ĠPhone Number Changed ( patient Profile . phone Numbers . first OrNull ()?. number ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ""), ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( patient Profile . patient . age Details . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠFROM _ AGE Ġ-> ĠAge Changed ( patient Profile . patient . age Details . age Value !!. toString ()) ĊĠĠĠĠĠĠĠĠĠ ĠEX ACT Ġ-> ĠDate OfBirth Changed ( date OfBirth Format . format ( patient Profile . patient . age Details . date OfBirth !! )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġreturn ĠSave Patient Test Params ( ĊĠĠĠĠĠĠĠ Ġpatient Profile . patient , ĊĠĠĠĠĠĠĠ Ġpatient Profile . address , ĊĠĠĠĠĠĠĠ Ġpatient Profile . phone Numbers . first OrNull (), ĊĠĠĠĠĠĠĠ Ġadvance Clock By , ĊĠĠĠĠĠĠĠ Ġpre Create Input Events Ġ+ Ġinput Events , ĊĠĠĠĠĠĠĠ Ġshould Save Patient , ĊĠĠĠĠĠĠĠ Ġif Ġ( should Save Patient ) Ġcreate Expected Patient ( patient Profile . patient ) Ġelse Ġnull , ĊĠĠĠĠĠĠĠ Ġif Ġ( should Save Patient ) Ġcreate Expected Address ( patient Profile . address ) Ġelse Ġnull , ĊĠĠĠĠĠĠĠ Ġexpected Patient PhoneNumber ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġdata Ġclass ĠSave Patient Test Params ( ĊĠĠĠĠĠ Ġval Ġexisting Saved Patient : ĠPatient , ĊĠĠĠĠĠ Ġval Ġexisting Saved Address : ĠPatient Address , ĊĠĠĠĠĠ Ġval Ġexisting Saved PhoneNumber : ĠPatient PhoneNumber ?, ĊĠĠĠĠĠ Ġval Ġadvance Clock By : ĠDuration , ĊĠĠĠĠĠ Ġval Ġinput Events : ĠList < Edit Patient Event >, ĊĠĠĠĠĠ Ġval Ġshould Save Patient : ĠBoolean , ĊĠĠĠĠĠ Ġval Ġexpected Saved Patient : ĠPatient ?, ĊĠĠĠĠĠ Ġval Ġexpected Saved Patient Address : ĠPatient Address ?, ĊĠĠĠĠĠ Ġval Ġexpected Saved Patient PhoneNumber : ĠPatient PhoneNumber ? ĊĠ Ġ) ĊĊĠ Ġ@ Test ĊĠ Ġ@ Parameters ( method Ġ= Ġ" params Ġfor Ġvalidating Ġall Ġfields Ġon Ġsave Ġclicks ") ĊĠ Ġfun Ġ` when Ġsave Ġis Ġclicked , Ġall Ġfields Ġshould Ġbe Ġvalidated `( validate Fields Test Params : ĠValidate Fields Test Params ) Ġ{ ĊĠĠĠ Ġval Ġ( already Present PhoneNumber , ĊĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠ Ġcol ony Or V illage , ĊĠĠĠĠĠĠĠ Ġdistrict , ĊĠĠĠĠĠĠĠ Ġstate , ĊĠĠĠĠĠĠĠ Ġage , ĊĠĠĠĠĠĠĠ Ġdate OfBirth , ĊĠĠĠĠĠĠĠ Ġexpected Errors , ĊĠĠĠĠĠĠĠ Ġentered PhoneNumber ĊĠĠĠ Ġ) Ġ= Ġvalidate Fields Test Params ĊĊĠĠĠ Ġval Ġpatient Ġ= ĠTest Data . patient () ĊĠĠĠ Ġval Ġaddress Ġ= ĠTest Data . patient Address () ĊĠĠĠ Ġval Ġpatient Uuid Ġ= Ġpatient . uuid ĊĠĠĠ Ġval ĠphoneNumber Ġ= Ġalready Present PhoneNumber ?. copy ( patient Uuid Ġ= Ġpatient Uuid ) ĊĊĠĠĠ Ġwhenever ( patient Repository . create PhoneNumber For Patient ( eq ( generated Phone Uuid ), Ġeq ( patient Uuid ), Ġany (), Ġany ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . update PhoneNumber For Patient ( eq ( patient Uuid ), Ġany ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . update Address For Patient ( eq ( patient Uuid ), Ġany ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . update Patient ( any ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . bang l ade sh National Id For Patient ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĠĠĠ Ġwhenever ( patient Repository . patient Profile ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĊĠĠĠ Ġscreen Created ( patient , Ġaddress , ĠphoneNumber ) ĊĊĠĠĠ Ġui Events . onNext ( Name Changed ( name )) ĊĠĠĠ Ġui Events . onNext ( PhoneNumber Changed ( enter ed PhoneNumber )) ĊĠĠĠ Ġui Events . onNext ( Col ony Or V illage Changed ( col ony Or V illage )) ĊĠĠĠ Ġui Events . onNext ( District Changed ( district )) ĊĠĠĠ Ġui Events . onNext ( StateChanged ( state )) ĊĠĠĠ Ġui Events . onNext ( Gender Changed ( Gender . Male )) ĊĊĠĠĠ Ġif Ġ( age Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġui Events . onNext ( Date OfBirth Changed ("")) ĊĠĠĠĠĠ Ġui Events . onNext ( Age Changed ( age )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( date OfBirth Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġui Events . onNext ( Age Changed ("")) ĊĠĠĠĠĠ Ġui Events . onNext ( Date OfBirth Changed ( date OfBirth )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( age Ġ== Ġnull Ġ&& Ġdate OfBirth Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġui Events . onNext ( Age Changed ("")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġui Events . onNext ( Save Clicked ) ĊĊĠĠĠ Ġif Ġ( expected Errors . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠ Ġ// ĠThis Ġis Ġorder Ġdependent Ġbecause Ġfinding Ġthe Ġfirst Ġfield ĊĠĠĠĠĠ Ġ// Ġwith Ġerror Ġis Ġonly Ġpossible Ġonce Ġthe Ġerrors Ġare Ġset . ĊĠĠĠĠĠ Ġval Ġin Order Ġ= Ġin Order ( ui ) ĊĊĠĠĠĠĠ Ġin Order . verify ( ui ). show Validation Errors ( expected Errors ) ĊĠĠĠĠĠ Ġin Order . verify ( ui ). scrollTo First Field WithError () ĊĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġverify ( ui , Ġnever ()). show Validation Errors ( any ()) ĊĠĠĠĠĠ Ġverify ( ui , Ġnever ()). scrollTo First Field WithError () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġprivate Ġfun Ġ` params Ġfor Ġvalidating Ġall Ġfields Ġon Ġsave Ġclicks ` (): ĠList < Validate Fields Test Params > Ġ{ ĊĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠValidate Fields Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Data . patient PhoneNumber (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( FullName Empty , ĠPhone Number Empty , ĠCol ony Or V illage Empty , ĠDistrict Empty , ĠState Empty ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠValidate Fields Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( FullName Empty , ĠCol ony Or V illage Empty , ĠDistrict Empty , ĠState Empty , ĠBoth Date OfBirth And Age Ad sent ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentered PhoneNumber Ġ= Ġ" 1 2 3 4 5 6 7 8 9 0 " ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠValidate Fields Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Data . patient PhoneNumber (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Col ony ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( FullName Empty , ĠPhone Number Length Too Short ( 6 ), ĠDistrict Empty , ĠState Empty ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentered PhoneNumber Ġ= Ġ" 1 2 3 4 " ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠValidate Fields Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Col ony ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( FullName Empty , ĠPhone Number Length Too Short ( 6 ), ĠDistrict Empty , ĠState Empty , ĠBoth Date OfBirth And Age Ad sent ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentered PhoneNumber Ġ= Ġ" 1 2 3 4 " ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠValidate Fields Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Data . patient PhoneNumber (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Col ony ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" District ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( FullName Empty , ĠState Empty , ĠBoth Date OfBirth And Age Ad sent ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 2 3 4 5 6 7 8 9 0 " ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠValidate Fields Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Col ony ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" District ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 1 / 0 1 /$ next Year ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( FullName Empty , ĠState Empty , ĠDate OfBirth In Future ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 2 3 4 5 6 7 8 9 0 " ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠValidate Fields Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Col ony ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" District ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" State ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( FullName Empty , ĠBoth Date OfBirth And Age Ad sent ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 2 3 3 4 5 6 7 8 9 0 " ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠValidate Fields Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Data . patient PhoneNumber (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Name ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Col ony ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" District ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" State ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty Set (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 2 3 4 5 6 7 8 9 0 " ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠValidate Fields Test Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Name ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Col ony ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" District ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" State ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 1 / 0 1 / 2 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty Set (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 2 3 4 5 6 7 8 9 0 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġdata Ġclass ĠValidate Fields Test Params ( ĊĠĠĠĠĠ Ġval Ġalready Present PhoneNumber : ĠPatient PhoneNumber ?, ĊĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠ Ġval Ġcol ony Or V illage : ĠString , ĊĠĠĠĠĠ Ġval Ġdistrict : ĠString , ĊĠĠĠĠĠ Ġval Ġstate : ĠString , ĊĠĠĠĠĠ Ġval Ġage : ĠString ?, ĊĠĠĠĠĠ Ġval Ġdate OfBirth : ĠString ?, ĊĠĠĠĠĠ Ġval Ġexpected Errors : ĠSet < Edit Patient ValidationError >, ĊĠĠĠĠĠ Ġval Ġentered PhoneNumber : ĠString Ġ= Ġ"" ĊĠ Ġ) ĊĊĠ Ġ@ Test ĊĠ Ġ@ Parameters ( method Ġ= Ġ" params Ġfor Ġvalidating Ġphone Ġnumbers ") ĊĠ Ġfun Ġ` when Ġsave Ġis Ġclicked , Ġinvalid Ġphone Ġnumbers Ġshould Ġshow Ġappropriate Ġerrors `( test Params : ĠValidate PhoneNumber Test Params ) Ġ{ ĊĠĠĠ Ġval Ġ( already Present PhoneNumber , ĊĠĠĠĠĠĠĠ Ġentered PhoneNumber , ĊĠĠĠĠĠĠĠ Ġexpected Error ĊĠĠĠ Ġ) Ġ= Ġtest Params ĊĊĠĠĠ Ġval Ġpatient Ġ= ĠTest Data . patient () ĊĠĠĠ Ġval Ġaddress Ġ= ĠTest Data . patient Address () ĊĠĠĠ Ġval Ġpatient Uuid Ġ= Ġpatient . uuid ĊĊĠĠĠ Ġwhenever ( patient Repository . create PhoneNumber For Patient ( eq ( generated Phone Uuid ), Ġeq ( patient Uuid ), Ġany (), Ġany ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . update Patient ( any ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . update Address For Patient ( eq ( patient Uuid ), Ġany ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . bang l ade sh National Id For Patient ( patient Uuid )) Ġdo Return ĠObservable . never () ĊĠĠĠ Ġwhenever ( patient Repository . patient Profile ( patient Uuid )) Ġdo Return ĠObservable . never () ĊĊĠĠĠ Ġscreen Created ( patient , Ġaddress , Ġalready Present PhoneNumber ) ĊĊĠĠĠ Ġui Events . onNext ( Gender Changed ( Gender . Male )) ĊĠĠĠ Ġui Events . onNext ( Col ony Or V illage Changed (" Col ony ")) ĊĠĠĠ Ġui Events . onNext ( District Changed (" District ")) ĊĠĠĠ Ġui Events . onNext ( StateChanged (" State ")) ĊĠĠĠ Ġui Events . onNext ( Name Changed (" Name ")) ĊĠĠĠ Ġui Events . onNext ( Age Changed (" 1 ")) ĊĊĠĠĠ Ġui Events . onNext ( PhoneNumber Changed ( enter ed PhoneNumber )) ĊĠĠĠ Ġui Events . onNext ( Save Clicked ) ĊĊĠĠĠ Ġverify ( ui ). show Validation Errors ( set Of ( expected Error )) ĊĠ Ġ} ĊĊĠ Ġ@ Suppress (" Unused ") ĊĠ Ġprivate Ġfun Ġ` params Ġfor Ġvalidating Ġphone Ġnumbers ` (): ĠList < Validate PhoneNumber Test Params > Ġ{ ĊĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠValidate PhoneNumber Test Params ( null , Ġ" 1 2 3 4 ", ĠPhone Number Length Too Short ( 6 )), ĊĠĠĠĠĠĠĠ ĠValidate PhoneNumber Test Params ( TestData . patient PhoneNumber (), Ġ"", ĠPhone Number Empty ), ĊĠĠĠĠĠĠĠ ĠValidate PhoneNumber Test Params ( TestData . patient PhoneNumber (), Ġ" 1 2 3 4 ", ĠPhone Number Length Too Short ( 6 )) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġdata Ġclass ĠValidate PhoneNumber Test Params ( ĊĠĠĠĠĠ Ġval Ġalready Present PhoneNumber : ĠPatient PhoneNumber ?, ĊĠĠĠĠĠ Ġval Ġentered PhoneNumber : ĠString , ĊĠĠĠĠĠ Ġval Ġexpected Error : ĠEdit Patient ValidationError ĊĠ Ġ) ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` when Ġsave Ġis Ġclicked Ġand Ġphone Ġnumber Ġis Ġnot Ġalready Ġsaved , Ġentering Ġa Ġblank Ġphone Ġnumber Ġshould Ġnot Ġshow Ġerrors `() Ġ{ ĊĠĠĠ Ġval Ġpatient Ġ= ĠTest Data . patient () ĊĠĠĠ Ġval Ġaddress Ġ= ĠTest Data . patient Address () ĊĊĠĠĠ Ġwhenever ( patient Repository . update Address For Patient ( eq ( patient . uuid ), Ġany ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . update Patient ( any ())). thenReturn ( Comp letable . complete ()) ĊĠĠĠ Ġwhenever ( patient Repository . bang l ade sh National Id For Patient ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĠĠĠ Ġwhenever ( patient Repository . patient Profile ( patient . uuid )) Ġdo Return ĠObservable . never () ĊĊĠĠĠ Ġscreen Created ( patient , Ġaddress , Ġnull ) ĊĊĠĠĠ Ġui Events . onNext ( Gender Changed ( Gender . Male )) ĊĠĠĠ Ġui Events . onNext ( Col ony Or V illage Changed (" Col ony ")) ĊĠĠĠ Ġui Events . onNext ( District Changed (" District ")) ĊĠĠĠ Ġui Events . onNext ( StateChanged (" State ")) ĊĠĠĠ Ġui Events . onNext ( Name Changed (" Name ")) ĊĠĠĠ Ġui Events . onNext ( Age Changed (" 1 ")) ĊĊĠĠĠ Ġui Events . onNext ( PhoneNumber Changed ("")) ĊĠĠĠ Ġui Events . onNext ( Save Clicked ) ĊĊĠĠĠ Ġverify ( ui , Ġnever ()). show Validation Errors ( any ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġscreen Created ( ĊĠĠĠĠĠ Ġpatient : ĠPatient , ĊĠĠĠĠĠ Ġaddress : ĠPatient Address , ĊĠĠĠĠĠ ĠphoneNumber : ĠPatient PhoneNumber ? ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġval Ġedit Patient Effect Handler Ġ= ĠEdit Patient Effect Handler ( ĊĠĠĠĠĠĠĠ Ġpatient Repository Ġ= Ġpatient Repository , ĊĠĠĠĠĠĠĠ Ġut c Clock Ġ= Ġut c Clock , ĊĠĠĠĠĠĠĠ Ġs chedulers Provider Ġ= ĠTr amp oline Schedulers Provider (), ĊĠĠĠĠĠĠĠ Ġcountry Ġ= Ġcountry , ĊĠĠĠĠĠĠĠ Ġuuid Generator Ġ= ĠFake Uuid Generator . fixed ( generated Phone Uuid ), ĊĠĠĠĠĠĠĠ ĠcurrentUser Ġ= Ġdagger . Lazy Ġ{ Ġuser Ġ}, ĊĠĠĠĠĠĠĠ Ġinput Fields Factory Ġ= Ġinput Fields Factory , ĊĠĠĠĠĠĠĠ Ġdate OfBirth Formatter Ġ= Ġdate OfBirth Format , ĊĠĠĠĠĠĠĠ Ġview Effects Consumer Ġ= Ġview Effect Handler :: handle ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġnumber Validator Ġ= ĠPhone Number Validator ( minimum Required Length Ġ= Ġ 6 ) ĊĊĠĠĠ Ġval Ġfixture Ġ= ĠMob ius TestFixture < Edit Patient Model , ĠEdit Patient Event , ĠEdit Patient Effect >( ĊĠĠĠĠĠĠĠ Ġevents Ġ= Ġui Events , ĊĠĠĠĠĠĠĠ Ġdefault Model Ġ= ĠEdit Patient Model . from ( patient , Ġaddress , ĠphoneNumber , Ġdate OfBirth Format , Ġnull , ĠNOT _ SA V ING _ PAT IENT , Ġfalse , Ġfalse ), ĊĠĠĠĠĠĠĠ Ġinit Ġ= ĠEdit Patient Init ( patient Ġ= Ġpatient , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis V illage Type A head Enabled Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠ Ġupdate Ġ= ĠEdit Patient Update ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Validator Ġ= Ġnumber Validator , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo b Validator Ġ= ĠUser Input Date Validator ( user Clock , Ġdate OfBirth Format ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġage Validator Ġ= ĠUser Input Age Validator ( user Clock , Ġdate OfBirth Format ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġeffect Handler Ġ= Ġedit Patient Effect Handler . build (), ĊĠĠĠĠĠĠĠ Ġmodel Update Listener Ġ= Ġview Renderer :: render ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfixture . start () ĊĠ Ġ} Ċ } Ċ