package Ġcom . m alt . task Ċ Ċ import Ġcom . m alt . task . test . Task Builder Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġstri kt . api . expect That Ċ import Ġstri kt . api . expect Throws Ċ import Ġstri kt . assertions . isFalse Ċ import Ġstri kt . assertions . isTrue Ċ Ċ internal Ġclass ĠTask Spec ifications Test Ġ{ ĊĊĠĠĠ Ġval Ġsome Other TaskId Ġ= ĠTask Id . generate () ĊĠĠĠ Ġval Ġsome Other OwnerId Ġ= ĠTask OwnerId (" some Ġother Ġowner Ġid ") ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠTask Id Is Specification Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask Id Is ( task . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask Id Is ( some Other TaskId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠTask OwnerId Is Specification Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask OwnerId Is ( task . owner Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask OwnerId Is ( some Other OwnerId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠAnd Task Specification Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġmatch Ġwhen Ġboth Ġchildren Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask Id Is ( task . id ) Ġand ĠTask OwnerId Is ( task . owner Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch Ġwhen Ġonly Ġleft Ġchild Ġmatches `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask Id Is ( task . id ) Ġand ĠTask OwnerId Is ( some Other OwnerId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch Ġwhen Ġonly Ġright Ġchild Ġmatches `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask Id Is ( some Other TaskId ) Ġand ĠTask OwnerId Is ( task . owner Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch Ġwhen Ġno Ġchild Ġmatches `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask Id Is ( some Other TaskId ) Ġand ĠTask OwnerId Is ( some Other OwnerId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠOr Task Specification Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġmatch Ġwhen Ġboth Ġchildren Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask Id Is ( task . id ) Ġor ĠTask OwnerId Is ( task . owner Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġmatch Ġwhen Ġonly Ġleft Ġchild Ġmatches `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask Id Is ( task . id ) Ġor ĠTask OwnerId Is ( some Other OwnerId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġmatch Ġwhen Ġonly Ġright Ġchild Ġmatches `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask Id Is ( some Other TaskId ) Ġor ĠTask OwnerId Is ( task . owner Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch Ġwhen Ġno Ġchild Ġmatches `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= ĠTask Id Is ( some Other TaskId ) Ġor ĠTask OwnerId Is ( some Other OwnerId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠNot Task Specification Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġ! TaskId Is ( task . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġ! TaskId Is ( some Other TaskId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠAll Of Task Specification Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġthrow Ġwhen Ġcalled Ġwithout Ġspecifications `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Of () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġmatch Ġwhen Ġall Ġchildren Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġall Of ( TaskId Is ( task . id ), ĠTask OwnerId Is ( task . owner Id ), ĠTask Id Is ( task . id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch Ġwhen Ġone Ġchild Ġdoesn 't Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġall Of ( TaskId Is ( task . id ), ĠTask OwnerId Is ( task . owner Id ), ĠTask Id Is ( some Other TaskId )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch Ġwhen Ġseveral Ġchildren Ġdon 't Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġall Of ( TaskId Is ( task . id ), ĠTask OwnerId Is ( some Other OwnerId ), ĠTask Id Is ( some Other TaskId )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch Ġwhen Ġno Ġchild Ġmatches `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġall Of ( TaskId Is ( some Other TaskId ), ĠTask OwnerId Is ( some Other OwnerId ), ĠTask Id Is ( some Other TaskId )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠAny Of Task Specification Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġthrow Ġwhen Ġcalled Ġwithout Ġspecifications `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġany Of () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġmatch Ġwhen Ġall Ġchildren Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġany Of ( TaskId Is ( task . id ), ĠTask OwnerId Is ( task . owner Id ), ĠTask Id Is ( task . id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġmatch Ġwhen Ġone Ġchild Ġmatches `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġany Of ( TaskId Is ( task . id ), ĠTask OwnerId Is ( some Other OwnerId ), ĠTask Id Is ( some Other TaskId )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch Ġwhen Ġno Ġchild Ġmatches `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġany Of ( TaskId Is ( some Other TaskId ), ĠTask OwnerId Is ( some Other OwnerId ), ĠTask Id Is ( some Other TaskId )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠNone Of Task Specification Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġthrow Ġwhen Ġcalled Ġwithout Ġspecifications `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnone Of () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch Ġwhen Ġall Ġchildren Ġmatch `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġnone Of ( TaskId Is ( task . id ), ĠTask OwnerId Is ( task . owner Id ), ĠTask Id Is ( task . id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġmatch Ġwhen Ġone Ġchild Ġmatches `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġnone Of ( TaskId Is ( task . id ), ĠTask OwnerId Is ( some Other OwnerId ), ĠTask Id Is ( some Other TaskId )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġmatch Ġwhen Ġno Ġchild Ġmatches `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspec Ġ= Ġnone Of ( TaskId Is ( some Other TaskId ), ĠTask OwnerId Is ( some Other OwnerId ), ĠTask Id Is ( some Other TaskId )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( spec Ġis Satisf ied By Ġtask ). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }