/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠMat thew ĠN el son Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ**/ Ċ package Ġio . mat the wn el son . k mp . tor . manager . internal . ext Ċ Ċ import Ġio . mat the wn el son . k mp . tor . manager . common . event . Tor Manager Event .* Ċ import Ġio . mat the wn el son . k mp . tor . manager . common . state . Tor Network State Ċ import Ġio . mat the wn el son . k mp . tor . manager . common . state . Tor State Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠAddress Info Ext UnitTest Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġinfo Ġ= ĠAddress Info ( socks Ġ= Ġset Of (" 1 2 7 . 0 . 0 . 1 : 9 0 5 0 ")) ĊĠĠĠ Ġprivate Ġval Ġnull Info Ġ= ĠAddress Info . NULL _ VALUES ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven NonNull Ports _ when Tor StateChange On To Off _ ports N ul led Out () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġold Ġ= ĠState ( Tor State . On ( 1 0 0 ), ĠTor Network State . Enabled ) ĊĠĠĠĠĠĠĠ Ġval Ġnew Ġ= ĠState ( Tor State . Off , Ġold . network State ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġinfo . on StateChange ( old , Ġnew ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( result ?. isNull Ġ== Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven NonNull Ports _ when Network Disabled _ ports N ul led Out () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġold Ġ= ĠState ( Tor State . On ( 1 0 0 ), ĠTor Network State . Enabled ) ĊĠĠĠĠĠĠĠ Ġval Ġnew Ġ= Ġold . copy ( network State Ġ= ĠTor Network State . Disabled ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġinfo . on StateChange ( old , Ġnew ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( result ?. isNull Ġ== Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven NonNull Ports And Network Enabled _ when Boot str apped _ self Returned () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġold Ġ= ĠState ( Tor State . On ( 9 5 ), ĠTor Network State . Enabled ) ĊĠĠĠĠĠĠĠ Ġval Ġnew Ġ= Ġold . copy ( tor State Ġ= ĠTor State . On ( 1 0 0 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġinfo . on StateChange ( old , Ġnew ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( info , Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven Null Ports And Network Enabled _ when Boot str apped _ self Is Returned () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġold Ġ= ĠState ( Tor State . On ( 9 5 ), ĠTor Network State . Enabled ) ĊĠĠĠĠĠĠĠ Ġval Ġnew Ġ= Ġold . copy ( tor State Ġ= ĠTor State . On ( 1 0 0 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġnull Info . on StateChange ( old , Ġnew ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( null Info , Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven NonNull Ports And Boot str apped _ when Network Re Enabled _ self Is Returned () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġold Ġ= ĠState ( Tor State . On ( 1 0 0 ), ĠTor Network State . Disabled ) ĊĠĠĠĠĠĠĠ Ġval Ġnew Ġ= Ġold . copy ( network State Ġ= ĠTor Network State . Enabled ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġinfo . on StateChange ( old , Ġnew ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( info , Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven Null Ports And Boot str apped _ when Network Re Enabled _ self Is Returned () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġold Ġ= ĠState ( Tor State . On ( 1 0 0 ), ĠTor Network State . Disabled ) ĊĠĠĠĠĠĠĠ Ġval Ġnew Ġ= Ġold . copy ( network State Ġ= ĠTor Network State . Enabled ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġnull Info . on StateChange ( old , Ġnew ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( null Info , Ġresult ) ĊĠĠĠ Ġ} Ċ } Ċ