package Ġcom . fib el att i . core . android Ċ Ċ import Ġcom . fib el att i . core . Instant Executor Extension Ċ import Ġcom . fib el att i . core . arch components . Event Ċ import Ġcom . fib el att i . core . arch components . Event Observer Ċ import Ġcom . fib el att i . core . arch components . Mutable Live Event Ċ import Ġcom . fib el att i . core . test . extension . mock Ċ import Ġcom . fib el att i . core . test . extension . shouldBe Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ import Ġorg . mockito . Mockito . verify Ċ Ċ @ Extend With ( Instant Executor Extension :: class ) Ċ class ĠEvent Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmock Value Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġevent : ĠEvent < Boolean > ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Ġ= ĠEvent ( mock Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwhen Get Content Is Called For The First Time Then Value Is Returned () Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . getContent () ĠshouldBe Ġmock Value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven Get Content Was Already Called When Get Content Is Called Again Then Null Is Returned () Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetContent () ĠshouldBe Ġmock Value ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetContent () ĠshouldBe Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven Get Content Was Already Called When Peek Content Is Called Then Value Is Returned () Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetContent () ĠshouldBe Ġmock Value ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetContent () ĠshouldBe Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpeek Content () ĠshouldBe Ġmock Value ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwhen Post Value Is Called Then Observer Function Is Called () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠG IV EN ĊĠĠĠĠĠĠĠ Ġval Ġmock On Event Ġ= Ġmock <( Boolean ) Ġ-> ĠUnit >() ĊĠĠĠĠĠĠĠ Ġval Ġlive Event Ġ= ĠMutable Live Event < Boolean >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserve Fore ver ( Event Observer ( mock On Event )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠ Ġlive Event . post Value ( event ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠ Ġverify ( mock On Event ). invoke ( mock Value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven Post Value Was Already Called When Post Value Is Called Again Then Observer Function IsNot Called Again () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠG IV EN ĊĠĠĠĠĠĠĠ Ġval Ġmock On Event Ġ= Ġmock <( Boolean ) Ġ-> ĠUnit >() ĊĠĠĠĠĠĠĠ Ġval Ġlive Event Ġ= ĠMutable Live Event < Boolean >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserve Fore ver ( Event Observer ( mock On Event )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠ Ġlive Event . post Value ( event ) ĊĠĠĠĠĠĠĠ Ġlive Event . post Value ( event ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠ Ġverify ( mock On Event ). invoke ( mock Value ) ĊĠĠĠ Ġ} Ċ } Ċ