package Ġio . monkey patch . k aval . kot lint est Ċ Ċ import Ġio . kot est . core . spec . style . Describe Spec Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . kot est . matchers . string . start With Ċ import Ġio . monkey patch . k aval . core . Invalid Ċ import Ġio . monkey patch . k aval . core . Valid Ċ Ċ class ĠResult Matchers Spec Ġ: ĠDescribe Spec () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġreason Ġ= Ġ" pl af " ĊĠĠĠ Ġprivate Ġval Ġinvalid Ġ= ĠInvalid ( reason ) ĊĠĠĠ Ġprivate Ġval Ġfield Ġ= Ġ" field " ĊĠĠĠ Ġprivate Ġval Ġinvalid Field Ġ= ĠInvalid ( field , Ġreason ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġdescribe (" be Valid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatcher Ġ= Ġbe Valid () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġsuccess Ġwhen Ġvalid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( Valid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġinvalid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( invalid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ" Invalid : Ġ$ reason Ġshould Ġbe ĠValid " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ" Invalid : Ġ$ reason Ġshould Ġnot Ġbe ĠValid " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescribe (" be Invalid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatcher Ġ= Ġbe Invalid () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġsuccess Ġwhen Ġinvalid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( invalid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġinvalid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( Valid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ" Valid Ġshould Ġbe ĠInvalid " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ" Valid Ġshould Ġnot Ġbe ĠInvalid " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescribe (" be Invalid On Field ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatcher Ġ= Ġbe Invalid On Field ( field ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġsuccess Ġwhen Ġinvalid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( invalid Field ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġvalid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( Valid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ" Valid Ġshould Ġbe ĠInvalid Ġon Ġfield Ġ$ field " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ" Valid Ġshould Ġnot Ġbe ĠInvalid Ġon Ġfield Ġ$ field " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġinvalid Ġwithout Ġfield ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( invalid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ" Invalid : Ġ$ reason Ġshould Ġbe ĠInvalid Ġon Ġfield Ġ$ field " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ" Invalid : Ġ$ reason Ġshould Ġnot Ġbe ĠInvalid Ġon Ġfield Ġ$ field " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġinvalid Ġwith Ġanother Ġfield ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( Invalid ("_ $ field ", Ġreason )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ" Invalid : Ġ[_ $ field ] Ġ$ reason Ġshould Ġbe ĠInvalid Ġon Ġfield Ġ$ field " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ" Invalid : Ġ[_ $ field ] Ġ$ reason Ġshould Ġnot Ġbe ĠInvalid Ġon Ġfield Ġ$ field " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescribe (" be Invalid With Reason ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatcher Ġ= Ġbe Invalid With Reason ( reason ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġsuccess Ġwhen Ġinvalid Ġwith Ġreason ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( invalid Field ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġvalid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( Valid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ" Valid Ġshould Ġbe ĠInvalid Ġwith Ġreason Ġ'$ reason '" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ" Valid Ġshould Ġnot Ġbe ĠInvalid Ġwith Ġreason Ġ'$ reason '" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġinvalid Ġwithout Ġreason ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( Invalid ("_ $ reason ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ" Invalid : Ġ_$ reason Ġshould Ġbe ĠInvalid Ġwith Ġreason Ġ'$ reason '" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ" Invalid : Ġ_$ reason Ġshould Ġnot Ġbe ĠInvalid Ġwith Ġreason Ġ'$ reason '" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescribe (" be Invalid With All Re asons ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreason 2 Ġ= Ġ" plo uf " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinvalid 2 Ġ= ĠInvalid ( reason 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatcher Ġ= Ġbe Invalid With All Re asons ( reason , Ġreason 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġsuccess Ġwhen Ġinvalid Ġwith Ġreasons ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( invalid Ġconcat Ġinvalid 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġsuccess Ġwhen Ġinvalid Ġwith Ġreasons Ġand Ġfield ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( invalid Field Ġconcat Ġinvalid 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġvalid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( Valid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ" Valid Ġshould Ġbe ĠInvalid Ġwith Ġreasons Ġ$ reason , Ġ$ reason 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ" Valid Ġshould Ġnot Ġbe ĠInvalid Ġwith Ġreasons Ġ$ reason , Ġ$ reason 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġinvalid Ġonly Ġone Ġreason ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( invalid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ"$ invalid Ġshould Ġbe ĠInvalid Ġwith Ġreasons Ġ$ reason , Ġ$ reason 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ"$ invalid Ġshould Ġnot Ġbe ĠInvalid Ġwith Ġreasons Ġ$ reason , Ġ$ reason 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġinvalid Ġonly Ġno Ġreason ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġother Invalid Ġ= ĠInvalid ("_ $ reason ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( other Invalid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ"$ other Invalid Ġshould Ġbe ĠInvalid Ġwith Ġreasons Ġ$ reason , Ġ$ reason 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ"$ other Invalid Ġshould Ġnot Ġbe ĠInvalid Ġwith Ġreasons Ġ$ reason , Ġ$ reason 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescribe (" be Invalid With Any ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatcher Ġ= Ġbe Invalid With Any ( start With (" pl ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġsuccess Ġwhen Ġinvalid Ġwith Ġreason ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( invalid Field ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġvalid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( Valid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ" Valid Ġshould Ġbe ĠInvalid Ġwith Ġany Ġreason " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ" Valid Ġshould Ġnot Ġbe ĠInvalid Ġwith Ġany Ġreason " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġa Ġfailure Ġwhen Ġinvalid Ġwith Ġanother Ġreason ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġother Ġ= ĠInvalid ("_ $ reason ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmatcher . test ( other ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . passed () ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failure Message () ĠshouldBe Ġ"$ other Ġshould Ġbe ĠInvalid Ġwith Ġany Ġreason , Ġ\" _ pl af \" Ġshould Ġstart Ġwith Ġ\" pl \" Ġ( div erge d Ġat Ġindex Ġ 0 )" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . neg ated Failure Message () ĠshouldBe Ġ"$ other Ġshould Ġnot Ġbe ĠInvalid Ġwith Ġany Ġreason , Ġ\" _ pl af \" Ġshould Ġstart Ġwith Ġ\" pl \" Ġ( div erge d Ġat Ġindex Ġ 0 )" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ