package Ġorg . training . bookmarks Ċ Ċ import Ġorg . assertj . core . api . Assertions Ċ import Ġorg . junit . Test ĊĊ Ċ class ĠEvent Publisher Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` publish Ġonly Ġto Ġthe Ġright Ġlisteners `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġevent 2 Ġ= ĠEvent 2 () ĊĠĠĠĠĠĠĠ Ġval Ġreceived Events Ġ= ĠArrayList < Event >() ĊĠĠĠĠĠĠĠ Ġval Ġevent Publisher Ġ= ĠEvent Publisher () ĊĠĠĠĠĠĠĠ Ġevent Publisher . register ( Event 1 :: class . java ) Ġ{ Ġe Ġ-> Ġ Ġreceived Events . add ( e )} ĊĠĠĠĠĠĠĠ Ġevent Publisher . register ( Event 2 :: class . java ) Ġ{ Ġe Ġ-> Ġ Ġreceived Events . add ( e )} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġevent Publisher . publish ( event 2 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( received Events ). contains Exactly ( event 2 ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEvent 2 Ġ: ĠEvent Ġ{ Ċ Ċ } Ċ Ċ class ĠEvent 1 Ġ: ĠEvent Ġ{ Ċ Ċ } Ċ