package Ġequality Ċ Ċ import Ġdev . k ord . common . entity . Snow flake Ċ import Ġdev . k ord . core . behavior . channel . Channel Behavior Ċ import Ġdev . k ord . core . entity . K ord Entity Ċ import Ġmock K ord Ċ import Ġkotlin . test . assertEquals Ċ Ċ interface ĠChannel Equality Test < T : ĠK ord Entity > Ġ: ĠEntity Equality Test < T > Ġ{ ĊĊĠĠĠ Ġ@ kotlin . test . Test ĊĠĠĠ Ġfun Ġ` Channel Ġis Ġequal Ġto ĠChannel Ġwith Ġthe Ġsame Ġid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġrandom Id () ĊĠĠĠĠĠĠĠ Ġval Ġk ord Ġ= Ġmock K ord () ĊĠĠĠĠĠĠĠ Ġval Ġfake Channel : ĠK ord Entity Ġ= ĠChannel Behavior ( id , Ġk ord ) ĊĠĠĠĠĠĠĠ Ġval Ġchannel : ĠK ord Entity Ġ= Ġnew Entity ( id ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( fake Channel , Ġchannel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun < T : ĠK ord Entity > Ġinvoke ( supplier : Ġ( Snow flake ) Ġ-> ĠT ) Ġ= Ġobject : ĠChannel Equality Test < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġnew Entity ( id : ĠSnow flake ): ĠT Ġ= Ġsupplier ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }