package Ġunit Ċ Ċ import ĠRegistry Ċ import Ġcore . entity . Build Config Default Ċ import Ġcore . use case . Handle Build Finished UseCase Ċ import Ġcore . use case . Post Stats UseCase Ċ import Ġcore . use case . Post Status UseCase Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . reactivex . Observable Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠHandle Build Finished UseCase Tests Ġ{ ĊĠĠĠ Ġval Ġstats Datasource Ġ: ĠPost Stats UseCase . Datasource Ġ= Ġmock k () ĊĠĠĠ Ġval Ġpost Stats UseCase Ġ= ĠPost Stats UseCase ( listOf ( stats Datasource )) ĊĠĠĠ Ġval Ġstatus Datasource Ġ: ĠPost Status UseCase . Datasource Ġ= Ġmock k () ĊĠĠĠ Ġval Ġpost Status UseCase Ġ= ĠPost Status UseCase ( listOf ( status Datasource ), Ġmock k (), Ġmock k ()) ĊĠĠĠ Ġval Ġconfig Ġ= ĠBuild Config Default (). apply Ġ{ Ġreports Ġ= Ġ"./ src / test / test Files " Ġ} ĊĠĠĠ Ġval Ġregistry Ġ= ĠRegistry ( config ) ĊĠĠĠ Ġval Ġsummar ies Ġ= Ġregistry . provide Get Summary Use Cases () ĊĊĊĠĠĠ Ġ@ Before Ġfun Ġbefore () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstatus Datasource . name () Ġ} Ġreturns Ġ" asdf " ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstatus Datasource . isActive () Ġ} Ġreturns Ġtrue ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstatus Datasource . is Remote () Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstatus Datasource . post ( any (), Ġany (), Ġany ()) Ġ} Ġreturns ĠObservable . just ( true ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstats Datasource . post Stats ( any ()) Ġ} Ġreturns ĠObservable . just ( true ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstats Datasource . post Stats ( any ()) Ġ} Ġreturns ĠObservable . just ( true ) ĊĠĠĠĠĠĠĠ Ġconfig . artifacts Path Ġ= Ġ"./ build / test Files / build Checks " ĊĠĠĠĠĠĠĠ Ġconfig . artifacts Branch Ġ= Ġ"" ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġfun Ġ` when Ġplugin Ġis Ġnot Ġactivated , Ġnothing Ġis Ġposted `() Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġconfig . is Checks Activated Ġ= Ġfalse Ċ // ĠĠĠĠĠĠĠ Ġval Ġuse case Ġ= ĠHandle Build Finished UseCase ( post Status UseCase , Ġpost Stats UseCase , Ġsummar ies , Ġconfig , Ġmutable ListOf ()) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġuse case . invoke () Ċ // Ċ // ĠĠĠĠĠĠĠ ĠVerify Not Called Ġon Ġstatus Datasource Ġthat Ġstatus Datasource . post ( any (), Ġany (), Ġany ()) Ġwas Ġcalled Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġfun Ġ` when Ġthe Ġbuild Ġfinishes Ġun successfully Ġand Ġplugin Ġis Ġactivated , Ġpost Ġfailure Ġstatus Ġfor Ġeach Ġtype `() Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġconfig . is Checks Activated Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠ Ġval Ġuse case Ġ= ĠHandle Build Finished UseCase ( post Status UseCase , Ġpost Stats UseCase , Ġsummar ies , Ġconfig , Ġmutable ListOf ()) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġuse case . invoke () Ċ // Ċ // ĠĠĠĠĠĠĠ Ġverify ( status Datasource , Ġtimes ( sum maries . size )). post ( any (), Ġany (), Ġany ()) Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` when Ġthe Ġbuild Ġfinishes Ġsuccessfully Ġand Ġplugin Ġis Ġactivated , Ġhandle Ġsuccess Ġstatus Ġfor Ġeach Ġtype `() Ġ{ ĊĠĠĠĠĠĠĠ Ġconfig . is Checks Activated Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġprint (" sum maries : Ġ" Ġ+ Ġsummar ies . filter Ġ{ Ġit . value () Ġ!= Ġnull Ġ}. size ) ĊĠĠĠĠĠĠĠ Ġval Ġuse case Ġ= ĠHandle Build Finished UseCase ( post Status UseCase , Ġpost Stats UseCase , Ġsummar ies , Ġconfig , Ġmutable ListOf ()) ĊĊĠĠĠĠĠĠĠ Ġuse case . invoke () ĊĊĠĠĠĠĠĠĠ Ġio . mock k . verify ( exact ly Ġ= Ġsummar ies . size ) Ġ{ Ġstatus Datasource . post ( any (), Ġany (), Ġany ()) } ĊĠĠĠĠĠĠĠ Ġio . mock k . verify Ġ{ Ġstats Datasource . post Stats ( any ()) Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ