/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠSt am ina ĠDevelopment Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġpw . st am ina . pubsub 4 k . publish Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġorg . am sh ove . k lu ent . shouldBe Ċ import Ġorg . am sh ove . k lu ent . shouldBe Empty Ċ import Ġorg . am sh ove . k lu ent . shouldBe InstanceOf Ċ import Ġorg . am sh ove . k lu ent . should Equal Ċ import Ġorg . mockito . Mockito . RET URNS _ DE EP _ ST UB S Ċ import Ġorg . spe k framework . spe k 2 . Spe k Ċ import Ġorg . spe k framework . spe k 2 . style . specification . describe Ċ import Ġpw . st am ina . pubsub 4 k . subscribe . Subscription Ċ Ċ object ĠEmpty Publisher Spec Ġ: ĠSpe k ({ ĊĊĠĠĠ Ġdescribe (" An Ġempty Ġpublisher ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpublisher Ġby Ġmemoized Ġ{ ĠEmpty Publisher < Any >() Ġ} ĊĊĠĠĠĠĠĠĠ Ġit (" subscriptions Ġshould Ġbe Ġempty ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublisher . subscriptions . shouldBe Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescribe (" publishing Ġmessage ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġby Ġmemoized Ġ{ Ġpublisher . publish ( Unit ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġdo Ġnothing Ġand Ġreturn Ġunit ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĠshouldBe ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescribe (" re moving Ġsubscription ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġby Ġmemoized Ġ{ Ġpublisher . removed ( mock ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġitself ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĠshouldBe Ġpublisher ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescribe (" adding Ġsubscription ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsubscription Ġby Ġmemoized Ġ{ Ġmock < Subscription < Any >>( default Answer Ġ= ĠRET URNS _ DE EP _ ST UB S ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġby Ġmemoized Ġ{ Ġpublisher . added ( subscription ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġreturn Ġsingle Ġsubscription Ġpublisher ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ĠshouldBe InstanceOf ĠSingle Subscription Publisher :: class ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" returned Ġpublisher Ġshould Ġcontain Ġspecified Ġsubscription ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . subscriptions Ġshould Equal Ġset Of ( subscription ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ })