package Ġdao Ċ Ċ import Ġcom . mongodb . rx . client . Mongo Clients Ċ import Ġcommon . db . Membership Event Ċ import Ġcommon . db . dao . Mongo DAO Ċ import Ġorg . junit . jupiter . api . Assertions . assert DoesNot Throw Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . time . LocalDateTime Ċ Ċ class ĠMembers hip s DAO Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdao Ġ= ĠMongo DAO ( Mongo DAO . DEFAULT _ URL , Ġ" test ") ĊĠĠĠ Ġprivate Ġval Ġdb Ġ= ĠMongo Clients ĊĠĠĠĠĠĠĠ Ġ. create ( Mongo DAO . DEFAULT _ URL ) ĊĠĠĠĠĠĠĠ Ġ. get Database (" test ") ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġclean () Ġ{ ĊĠĠĠĠĠĠĠ Ġdb . get Collection (" vis its "). drop (). to Blocking (). single () ĊĠĠĠĠĠĠĠ Ġdb . get Collection (" membership s "). drop (). to Blocking (). single () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Add Event () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdao . membership DAO . add Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMembers hip Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMembers hip Event . EventType . CREATED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). to Blocking (). single () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġdb . get Collection (" membership s "). count (). to Blocking (). first ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfill Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 L .. 3 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . get Collection (" membership s ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. insert One ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMembers hip Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMembers hip Event . EventType . CREATED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). to Document () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Blocking () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. single () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet All Events () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfill Data () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġdao . membership DAO . getAll Events (). count (). to Blocking (). first ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet All Events ForUser () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfill Data () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġdao . membership DAO . getAll Events ForUser ( 1 ). count (). to Blocking (). first ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġdao . membership DAO . getAll Events ForUser ( 4 ). count (). to Blocking (). first ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Count () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert DoesNot Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfill Data () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġdao . membership DAO . getCount (). to Blocking (). first ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ