package Ġcom . bad oo . ri bs . routing . state . feature . operation Ċ Ċ import Ġcom . bad oo . ri bs . core . helper . Test Router . Configuration Ċ import Ġcom . bad oo . ri bs . core . helper . Test Router . Configuration . C 1 Ċ import Ġcom . bad oo . ri bs . core . helper . Test Router . Configuration . C 2 Ċ import Ġcom . bad oo . ri bs . core . helper . Test Router . Configuration . C 3 Ċ import Ġcom . bad oo . ri bs . core . helper . Test Router . Configuration . O 1 Ċ import Ġcom . bad oo . ri bs . core . helper . Test Router . Configuration . O 2 Ċ import Ġcom . bad oo . ri bs . core . helper . Test Router . Configuration . O 3 Ċ import Ġcom . bad oo . ri bs . routing . Routing Ċ import Ġcom . bad oo . ri bs . routing . Routing . Identifier Ċ import Ġcom . bad oo . ri bs . routing . history . Routing History Element Ċ import Ġcom . bad oo . ri bs . routing . source . back stack . Elements Ċ import Ġcom . bad oo . ri bs . routing . source . back stack . operation . Remove Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . Test Ċ Ċ class ĠRemove Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġremove : ĠRemove < Configuration > ĊĊĠĠĠ Ġval Ġelements : ĠElements < Configuration > Ġ= ĠlistOf < Routing History Element < Configuration >>( ĊĠĠĠĠĠĠĠ ĠRouting History Element ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouting Ġ= ĠRouting < Configuration >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= ĠIdentifier ( id Ġ= Ġ 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Ġ= ĠC 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠRouting History Element ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouting Ġ= ĠRouting < Configuration >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= ĠIdentifier ( id Ġ= Ġ 2 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Ġ= ĠC 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverlay s Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRouting < Configuration >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= ĠIdentifier ( id Ġ= Ġ 2 0 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Ġ= ĠO 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠRouting History Element ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouting Ġ= ĠRouting < Configuration >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= ĠIdentifier ( id Ġ= Ġ 3 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Ġ= ĠC 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverlay s Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRouting < Configuration >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= ĠIdentifier ( id Ġ= Ġ 3 0 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Ġ= ĠO 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRouting < Configuration >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= ĠIdentifier ( id Ġ= Ġ 3 0 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Ġ= ĠO 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRouting < Configuration >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= ĠIdentifier ( id Ġ= Ġ 3 0 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Ġ= ĠO 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Remove Ġisn 't Ġapplicable Ġwhen Ġidentifier Ġisn 't Ġfound Ġin Ġhistory `() Ġ{ ĊĠĠĠĠĠĠĠ Ġremove Ġ= ĠRemove ( Identifier ( id Ġ= Ġ- 1 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġapplicable Ġ= Ġremove . is Applicable ( elements ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( applic able ). isEqualTo ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Remove Ġis Ġapplicable Ġwhen Ġback Ġstack Ġhas Ġa Ġcontent Ġelement Ġwith Ġtarget Ġidentifier `() Ġ{ ĊĠĠĠĠĠĠĠ Ġremove Ġ= ĠRemove ( Identifier ( id Ġ= Ġ 2 0 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġapplicable Ġ= Ġremove . is Applicable ( elements ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( applic able ). isEqualTo ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Remove Ġis Ġapplicable Ġwhen Ġback Ġstack Ġhas Ġan Ġoverlay Ġelement Ġwith Ġtarget Ġidentifier `() Ġ{ ĊĠĠĠĠĠĠĠ Ġremove Ġ= ĠRemove ( Identifier ( id Ġ= Ġ 3 0 2 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġapplicable Ġ= Ġremove . is Applicable ( elements ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( applic able ). isEqualTo ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Remove Ġreturns Ġoriginal Ġback Ġstack Ġif Ġidentifier Ġisn 't Ġfound `() Ġ{ ĊĠĠĠĠĠĠĠ Ġremove Ġ= ĠRemove ( Identifier ( id Ġ= Ġ- 1 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġremove . invoke ( elements ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġelements ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Remove Ġremoves Ġcorrect Ġcontent Ġelement Ġwith Ġtarget Ġidentifier `() Ġ{ ĊĠĠĠĠĠĠĠ Ġremove Ġ= ĠRemove ( Identifier ( id Ġ= Ġ 2 0 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġremove . invoke ( elements ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠlistOf ( elements [ 0 ], Ġelements [ 2 ]) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Remove Ġremoves Ġcorrect Ġoverlay Ġelement Ġwith Ġtarget Ġidentifier `() Ġ{ ĊĠĠĠĠĠĠĠ Ġremove Ġ= ĠRemove ( Identifier ( id Ġ= Ġ 3 0 2 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġremove . invoke ( elements ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠlistOf ( elements [ 0 ], Ġelements [ 1 ], Ġelements [ 2 ]. copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverlay s Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelements [ 2 ]. overlay s [ 0 ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelements [ 2 ]. overlay s [ 2 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) ĊĠĠĠ Ġ} Ċ } Ċ