package Ġcom . sd . demo . stream Ċ Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġcom . sd . demo . stream . utils . Test Default Stream Ċ import Ġcom . sd . demo . stream . utils . Test Sticky Stream Ċ import Ġcom . sd . demo . stream . utils . Test Stream Ċ import Ġcom . sd . lib . stream . Default Stream Manager Ċ import Ġcom . sd . lib . stream . F Stream Ċ import Ġcom . sd . lib . stream . F Stream Manager Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġjava . lang . reflect . Method Ċ Ċ /** Ċ Ġ* ĠInstrument ed Ġtest , Ġwhich Ġwill Ġexecute Ġon Ġan ĠAndroid Ġdevice . Ċ Ġ* Ċ Ġ* ĠSee Ġ[ testing Ġdocumentation ]( http :// d . android . com / tools / testing ). Ċ Ġ*/ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠExample Instrument ed Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Normal () Ġ{ ĊĠĠĠĠĠĠĠ ĠDefault Stream Manager . register ( Test Default Stream :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġstream 0 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" hello Ġtag " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstream 1 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstream 2 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstream 3 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 3 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠF Stream Manager . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 1 ). set Priority (- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 3 ). set Priority ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , ĠF Stream Manager . getConnection ( stream 0 ) !!. get Priority ( Test Stream :: class . java )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (- 1 , ĠF Stream Manager . getConnection ( stream 1 ) !!. get Priority ( Test Stream :: class . java )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , ĠF Stream Manager . getConnection ( stream 2 ) !!. get Priority ( Test Stream :: class . java )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , ĠF Stream Manager . getConnection ( stream 3 ) !!. get Priority ( Test Stream :: class . java )) ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Result Ġ= Ġmutable ListOf < Any ?> () ĊĠĠĠĠĠĠĠ Ġval Ġproxy Ġ= ĠF Stream . Proxy Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Result Filter ( object Ġ: ĠF Stream . Result Filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfilter ( method : ĠMethod , Ġmethod Params : ĠArray < Any ?> ?, Ġresults : ĠList < Any ?> ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Result . addAll ( results ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresults . last () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ( Test Stream :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġlist Result . clear () ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 1 ", Ġproxy . getContent (" http ")) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 3 , Ġlist Result . size ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 3 ", Ġlist Result [ 0 ]) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 2 ", Ġlist Result [ 1 ]) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 1 ", Ġlist Result [ 2 ]) ĊĊĠĠĠĠĠĠĠ Ġval Ġstream 4 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 4 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠF Stream Manager . register ( stream 4 ) ĊĊĠĠĠĠĠĠĠ Ġlist Result . clear () ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 1 ", Ġproxy . getContent (" http ")) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 4 , Ġlist Result . size ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 3 ", Ġlist Result [ 0 ]) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 2 ", Ġlist Result [ 1 ]) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 4 ", Ġlist Result [ 2 ]) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 1 ", Ġlist Result [ 3 ]) ĊĊĠĠĠĠĠĠĠ ĠDefault Stream Manager . unregister ( Test Default Stream :: class . java ) ĊĠĠĠĠĠĠĠ ĠF Stream Manager . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 4 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( null , ĠF Stream Manager . getConnection ( stream 0 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( null , ĠF Stream Manager . getConnection ( stream 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( null , ĠF Stream Manager . getConnection ( stream 2 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( null , ĠF Stream Manager . getConnection ( stream 3 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( null , ĠF Stream Manager . getConnection ( stream 4 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Default Stream () Ġ{ ĊĠĠĠĠĠĠĠ ĠDefault Stream Manager . register ( Test Default Stream :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġproxy Ġ= ĠF Stream . Proxy Builder (). build ( Test Stream :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġproxy . getContent (" http ") ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" default @ http ", Ġresult ) ĊĊĠĠĠĠĠĠĠ ĠDefault Stream Manager . unregister ( Test Default Stream :: class . java ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( null , Ġproxy . getContent (" http ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Dispatch Callback Before () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstream 1 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstream 2 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstream 3 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 3 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠF Stream Manager . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġproxy Ġ= ĠF Stream . Proxy Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Dispatch Callback ( object Ġ: ĠF Stream . Dispatch Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore Dispatch ( stream : ĠF Stream , Ġmethod : ĠMethod , Ġmethod Params : ĠArray < Any ?> ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter Dispatch ( stream : ĠF Stream , Ġmethod : ĠMethod , Ġmethod Params : ĠArray < Any ?> ?, Ġmethod Result : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ( Test Stream :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġproxy . getContent (" http ") ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( null , Ġresult ) ĊĊĠĠĠĠĠĠĠ ĠF Stream Manager . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Dispatch Callback After () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstream 1 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstream 2 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstream 3 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 3 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠF Stream Manager . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Result Ġ= Ġmutable ListOf < Any ?> () ĊĠĠĠĠĠĠĠ Ġval Ġproxy Ġ= ĠF Stream . Proxy Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Result Filter ( object Ġ: ĠF Stream . Result Filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfilter ( method : ĠMethod , Ġmethod Params : ĠArray < Any ?> ?, Ġresults : ĠList < Any ?> ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Result . addAll ( results ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresults . last () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Dispatch Callback ( object Ġ: ĠF Stream . Dispatch Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore Dispatch ( stream : ĠF Stream , Ġmethod : ĠMethod , Ġmethod Params : ĠArray < Any ?> ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter Dispatch ( stream : ĠF Stream , Ġmethod : ĠMethod , Ġmethod Params : ĠArray < Any ?> ?, Ġmethod Result : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 2 " Ġ== Ġmethod Result ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ( Test Stream :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġproxy . getContent (" http ") ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 2 ", Ġresult ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , Ġlist Result . size ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 1 ", Ġlist Result [ 0 ]) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 2 ", Ġlist Result [ 1 ]) ĊĊĠĠĠĠĠĠĠ ĠF Stream Manager . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Dispatch Break () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstream 1 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstream 2 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF Stream Manager . getConnection ( this ) !!. break Dispatch ( Test Stream :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstream 3 Ġ= Ġobject Ġ: ĠTest Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetContent ( url : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" 3 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠF Stream Manager . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . register ( stream 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Result Ġ= Ġmutable ListOf < Any ?> () ĊĠĠĠĠĠĠĠ Ġval Ġproxy Ġ= ĠF Stream . Proxy Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Result Filter ( object Ġ: ĠF Stream . Result Filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfilter ( method : ĠMethod , Ġmethod Params : ĠArray < Any ?> ?, Ġresults : ĠList < Any ?> ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Result . addAll ( results ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresults . last () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ( Test Stream :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġproxy . getContent (" http ") ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 2 ", Ġresult ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , Ġlist Result . size ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 1 ", Ġlist Result [ 0 ]) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" 2 ", Ġlist Result [ 1 ]) ĊĊĠĠĠĠĠĠĠ ĠF Stream Manager . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Sticky () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstream 1 Ġ= Ġobject Ġ: ĠTest Sticky Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġnotify Content ( content : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġcontent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠF Stream Manager . register ( stream 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġproxy Ġ= ĠF Stream . Proxy Builder (). set Sticky ( true ). build ( Test Sticky Stream :: class . java ) ĊĠĠĠĠĠĠĠ Ġproxy . notify Content (" http ") ĊĊĠĠĠĠĠĠĠ Ġvar Ġsticky Content : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġstream 2 Ġ= Ġobject Ġ: ĠTest Sticky Stream Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġnotify Content ( content : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsticky Content Ġ= Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Tag For Stream ( clazz : ĠClass < out ĠF Stream >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠF Stream Manager . register ( stream 2 ). sticky Invoke () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" http ", Ġsticky Content ) ĊĊĠĠĠĠĠĠĠ ĠF Stream Manager . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . unregister ( stream 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }