package Ġunit Ċ import Ġcore . entity . Build Config Ċ import Ġcore . entity . Build Config Default Ċ import Ġcore . entity . Build Status Ċ import Ġcore . entity . Message Ċ import Ġcore . use case . Post Status UseCase Ċ import Ġdata . Console Datasource Ċ import Ġio . reactivex . Observable Ċ import Ġorg . am sh ove . k lu ent .* Ċ import Ġorg . junit . Test Ċ Ċ class ĠPost Status UseCase Tests Ġ{ ĊĊĠĠĠ Ġval Ġkey Ġ= Ġ" AD fds " ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġpost Ġis Ġcalled , Ġpass Ġparameters Ġto Ġdatasource `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdatasource Ġ: ĠPost Status UseCase . Datasource Ġ= Ġmock () ĊĠĠĠĠĠĠĠ Ġval Ġuse case Ġ= ĠPost Status UseCase ( listOf ( datasource ), Ġmock (), Ġmock ()) ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ" build Ġin Ġprogress " ĊĠĠĠĠĠĠĠ ĠWhen Ġcalling Ġdatasource . name () Ġit Returns Ġ" asdf " ĊĠĠĠĠĠĠĠ ĠWhen Ġcalling Ġdatasource . isActive () Ġit Returns Ġtrue ĊĠĠĠĠĠĠĠ ĠWhen Ġcalling Ġdatasource . is Remote () Ġit Returns Ġfalse ĊĠĠĠĠĠĠĠ ĠWhen Ġcalling Ġdatasource . post ( Build Status . PENDING , Ġmessage , Ġkey ) Ġit Returns ĠObservable . just ( true ) ĊĠĠĠĠĠĠĠ Ġuse case . post ( Build Status . PENDING , Ġmessage , Ġkey ) ĊĠĠĠĠĠĠĠ ĠVerify Ġon Ġdatasource Ġthat Ġdatasource . post ( Build Status . PENDING , Ġmessage , Ġkey ) Ġwas Ġcalled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġpost Ġis Ġnot Ġactivated , Ġthen Ġremove Ġremote Ġdatas ources `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource 1 Ġ= ĠConsole Datasource () ĊĠĠĠĠĠĠĠ Ġval Ġsource 2 Ġ: ĠPost Status UseCase . Datasource Ġ= Ġmock () ĊĠĠĠĠĠĠĠ ĠWhen Ġcalling Ġsource 2 . is Remote () Ġit Returns Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ: ĠBuild Config Ġ= ĠBuild Config Default () ĊĠĠĠĠĠĠĠ Ġconfig . is Post Activated Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġmessage Queue Ġ: ĠMutable List < Message > Ġ= Ġmutable ListOf () ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠPost Status UseCase ( listOf ( source 1 , Ġsource 2 ), Ġconfig , Ġmessage Queue ). remove Invalid () ĊĊĠĠĠĠĠĠĠ Ġlist . contains ( source 2 ) ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠ Ġmessage Queue . size ĠshouldBe Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġpost Ġis Ġactivated Ġand Ġthere Ġare Ġno Ġremote Ġdatas ources , Ġshow Ġa Ġmessage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource 1 Ġ= ĠConsole Datasource () ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ: ĠBuild Config Ġ= ĠBuild Config Default () ĊĠĠĠĠĠĠĠ Ġconfig . is Post Activated Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġmessage Queue Ġ: ĠMutable List < Message > Ġ= Ġmutable ListOf () ĊĊĠĠĠĠĠĠĠ ĠPost Status UseCase ( listOf ( source 1 ), Ġconfig , Ġmessage Queue ). remove Invalid () ĊĊĠĠĠĠĠĠĠ Ġmessage Queue . size ĠshouldBe Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġpost Ġis Ġactivated Ġand Ġthere Ġare Ġun committed Ġchanges , Ġthen Ġremove Ġremote Ġdatas ources Ġand Ġshow Ġa Ġmessage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource 1 Ġ= ĠConsole Datasource () ĊĠĠĠĠĠĠĠ Ġval Ġsource 2 Ġ: ĠPost Status UseCase . Datasource Ġ= Ġmock () ĊĠĠĠĠĠĠĠ ĠWhen Ġcalling Ġsource 2 . is Remote () Ġit Returns Ġtrue ĊĠĠĠĠĠĠĠ ĠWhen Ġcalling Ġsource 2 . isActive () Ġit Returns Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ: ĠBuild Config Ġ= ĠBuild Config Default () ĊĠĠĠĠĠĠĠ Ġconfig . allow Un committed Changes Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġconfig . is Post Activated Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconfig . git . is All Commit ted Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġmessage Queue Ġ: ĠMutable List < Message > Ġ= Ġmutable ListOf () ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠPost Status UseCase ( listOf ( source 1 , Ġsource 2 ), Ġconfig , Ġmessage Queue ). remove Invalid () ĊĊĠĠĠĠĠĠĠ Ġlist . contains ( source 2 ) ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠ Ġmessage Queue . size ĠshouldBe Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġpost Ġis Ġactivated Ġand Ġthere Ġare Ġall Ġchanges Ġare Ġcommitted , Ġthen Ġshow Ġa Ġmessage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource 1 Ġ= ĠConsole Datasource () ĊĠĠĠĠĠĠĠ Ġval Ġsource 2 Ġ: ĠPost Status UseCase . Datasource Ġ= Ġmock () ĊĠĠĠĠĠĠĠ ĠWhen Ġcalling Ġsource 2 . is Remote () Ġit Returns Ġtrue ĊĠĠĠĠĠĠĠ ĠWhen Ġcalling Ġsource 2 . isActive () Ġit Returns Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ: ĠBuild Config Ġ= ĠBuild Config Default () ĊĠĠĠĠĠĠĠ Ġconfig . is Post Activated Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconfig . git . is All Commit ted Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġmessage Queue Ġ: ĠMutable List < Message > Ġ= Ġmutable ListOf () ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠPost Status UseCase ( listOf ( source 1 , Ġsource 2 ), Ġconfig , Ġmessage Queue ). remove Invalid () ĊĊĠĠĠĠĠĠĠ Ġlist . contains ( source 2 ) ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠ Ġmessage Queue . size ĠshouldBe Ġ 1 ĊĠĠĠ Ġ} Ċ } ĊĊ