package Ġcom . tom cz . sample . register Ċ Ċ import Ġcom . tom cz . m vi . test . Base Coroutine Test Ċ import Ġcom . tom cz . m vi . test . processor Test Ċ import Ġcom . tom cz . sample . counter . Counter ViewModel Ċ import Ġcom . tom cz . sample . counter . state . Counter Effect Ċ import Ġcom . tom cz . sample . counter . state . Counter Event Ċ import Ġcom . tom cz . sample . counter . state . Counter State Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠCounter ViewModel Test Ġ: ĠBase Coroutine Test () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠCounter ViewModel Ġ= ĠCounter ViewModel () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġincrease Ġevent Ġemitted Ġthen Ġstate Ġchanged `() Ġ= Ġprocessor Test ( ĊĠĠĠĠĠĠĠ Ġgiven Ġ= ĠviewModel :: processor , ĊĠĠĠĠĠĠĠ Ġwhen Event Ġ= ĠCounter Event . Increase , ĊĠĠĠĠĠĠĠ Ġthen States Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCounter State ( value Ġ= Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCounter State ( value Ġ= Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġdecrease Ġevent Ġemitted Ġthen Ġstate Ġchanged `() Ġ= Ġprocessor Test ( ĊĠĠĠĠĠĠĠ Ġgiven Ġ= ĠviewModel :: processor , ĊĠĠĠĠĠĠĠ Ġwhen Event Ġ= ĠCounter Event . De crease , ĊĠĠĠĠĠĠĠ Ġthen States Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCounter State ( value Ġ= Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCounter State ( value Ġ= Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġnavigate Ġto Ġsecond Ġscreen Ġevent Ġemitted Ġthen Ġeffect Ġemitted `() Ġ= Ġprocessor Test ( ĊĠĠĠĠĠĠĠ Ġgiven Ġ= ĠviewModel :: processor , ĊĠĠĠĠĠĠĠ Ġwhen Event Ġ= ĠCounter Event . Navigate To Second Screen , ĊĠĠĠĠĠĠĠ Ġthen States Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCounter State ( value Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġthen Effects Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCounter Effect . Navigate To Second Screen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ