/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 ĠL ingo Champ ĠInc . Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// 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 Ġcom . li ul ish uo . ok download . kotlin Ċ Ċ import Ġcom . li ul ish uo . ok download . Download Task Ċ import Ġcom . li ul ish uo . ok download . core . cause . End Cause Ċ import Ġcom . li ul ish uo . ok download . core . cause . Resume Failed Cause Ċ import Ġcom . li ul ish uo . ok download . core . listener . assist . Listener 1 Ass ist Ċ import Ġcom . li ul ish uo . ok download . kotlin . listener . create Listener 3 Ċ import Ġcom . li ul ish uo . ok download . kotlin . listener . on Canceled Ċ import Ġcom . li ul ish uo . ok download . kotlin . listener . on Completed Ċ import Ġcom . li ul ish uo . ok download . kotlin . listener . on Connected Ċ import Ġcom . li ul ish uo . ok download . kotlin . listener . onError Ċ import Ġcom . li ul ish uo . ok download . kotlin . listener . on Progress Ċ import Ġcom . li ul ish uo . ok download . kotlin . listener . on Retry Ċ import Ġcom . li ul ish uo . ok download . kotlin . listener . on Started Ċ import Ġcom . li ul ish uo . ok download . kotlin . listener . on Warn Ċ import Ġio . mock k . Mock K Annotations Ċ import Ġio . mock k . confirm Verified Ċ import Ġio . mock k . every Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠDownload Listener 3 Extension Test Ġ{ ĊĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġon Retry : Ġon Retry ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġon Connected : Ġon Connected ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġon Progress : Ġon Progress ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġmock Exception : ĠException ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġresume Failed Cause : ĠResume Failed Cause ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġon Started : Ġon Started ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġon Completed : Ġon Completed ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġon Canceled : Ġon Canceled ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġon Warn : Ġon Warn ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar ĠonError : ĠonError ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġmock Task : ĠDownload Task ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġmock Listener 1 Model : ĠListener 1 Ass ist . Listener 1 Model ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ= ĠMock K Annotations . init ( this , Ġrelax ed Ġ= Ġtrue ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` create ĠDownload Task Listener 3 Ġwith Ġonly Ġterminal Ġcallback `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmock Terminal Ġ= Ġmock k < () Ġ-> ĠUnit >() ĊĠĠĠĠĠĠĠ Ġval Ġlistener 3 Ġ= Ġcreate Listener 3 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Terminal . invoke () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġblock Count Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Offset Ġ= Ġ 1 0 0 L ĊĠĠĠĠĠĠĠ Ġval Ġtotal Length Ġ= Ġ 3 0 0 L ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmock Terminal . invoke () Ġ} Ġreturns ĠUnit ĊĊĠĠĠĠĠĠĠ Ġlistener 3 . task End ( mock Task , ĠEnd Cause . SAME _ TASK _ BUSY , Ġmock Exception , Ġmock Listener 1 Model ) ĊĠĠĠĠĠĠĠ Ġlistener 3 . retry ( mock Task , Ġresume Failed Cause ) ĊĠĠĠĠĠĠĠ Ġlistener 3 . connected ( mock Task , Ġblock Count , Ġcurrent Offset , Ġtotal Length ) ĊĠĠĠĠĠĠĠ Ġlistener 3 . task Start ( mock Task , Ġmock Listener 1 Model ) ĊĠĠĠĠĠĠĠ Ġlistener 3 . task End ( mock Task , ĠEnd Cause . COMPLETED , Ġnull , Ġmock Listener 1 Model ) ĊĠĠĠĠĠĠĠ Ġlistener 3 . task End ( mock Task , ĠEnd Cause . C ANCE LED , Ġnull , Ġmock Listener 1 Model ) ĊĠĠĠĠĠĠĠ Ġlistener 3 . task End ( mock Task , ĠEnd Cause . ERROR , Ġmock Exception , Ġmock Listener 1 Model ) ĊĠĠĠĠĠĠĠ Ġlistener 3 . progress ( mock Task , Ġcurrent Offset , Ġtotal Length ) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 4 ) Ġ{ Ġmock Terminal . invoke () Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( mock Terminal ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` create ĠDownload Task Listener 3 Ġwith Ġall Ġcallbacks `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmock Terminal Ġ= Ġmock k < () Ġ-> ĠUnit >() ĊĠĠĠĠĠĠĠ Ġval Ġlistener 3 Ġ= Ġcreate Listener 3 ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Started , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Connected , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Progress , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Completed , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Canceled , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Warn , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Retry , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Terminal ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġblock Count Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Offset Ġ= Ġ 1 0 0 L ĊĠĠĠĠĠĠĠ Ġval Ġtotal Length Ġ= Ġ 3 0 0 L ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmock Terminal . invoke () Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġon Warn . invoke ( mock Task ) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġon Retry . invoke ( mock Task , Ġresume Failed Cause ) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġon Connected . invoke ( mock Task , Ġblock Count , Ġcurrent Offset , Ġtotal Length ) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġon Started . invoke ( mock Task ) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġon Completed . invoke ( mock Task ) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġon Canceled . invoke ( mock Task ) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠonError . invoke ( mock Task , Ġmock Exception ) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġon Progress . invoke ( mock Task , Ġcurrent Offset , Ġtotal Length ) Ġ} Ġreturns ĠUnit ĊĊĠĠĠĠĠĠĠ Ġlistener 3 . task End ( mock Task , ĠEnd Cause . SAME _ TASK _ BUSY , Ġmock Exception , Ġmock Listener 1 Model ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġon Warn . invoke ( mock Task ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġmock Terminal . invoke () Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( on Warn ) ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( mock Terminal ) ĊĊĠĠĠĠĠĠĠ Ġlistener 3 . retry ( mock Task , Ġresume Failed Cause ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġon Retry . invoke ( mock Task , Ġresume Failed Cause ) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( on Retry ) ĊĊĠĠĠĠĠĠĠ Ġlistener 3 . connected ( mock Task , Ġblock Count , Ġcurrent Offset , Ġtotal Length ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġon Connected . invoke ( mock Task , Ġblock Count , Ġcurrent Offset , Ġtotal Length ) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( on Connected ) ĊĊĠĠĠĠĠĠĠ Ġlistener 3 . task Start ( mock Task , Ġmock Listener 1 Model ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġon Started . invoke ( mock Task ) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( on Started ) ĊĊĠĠĠĠĠĠĠ Ġlistener 3 . task End ( mock Task , ĠEnd Cause . COMPLETED , Ġnull , Ġmock Listener 1 Model ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġon Completed . invoke ( mock Task ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 2 ) Ġ{ Ġmock Terminal . invoke () Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( on Completed ) ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( mock Terminal ) ĊĊĠĠĠĠĠĠĠ Ġlistener 3 . task End ( mock Task , ĠEnd Cause . C ANCE LED , Ġnull , Ġmock Listener 1 Model ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġon Canceled . invoke ( mock Task ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 3 ) Ġ{ Ġmock Terminal . invoke () Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( on Canceled ) ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( mock Terminal ) ĊĊĠĠĠĠĠĠĠ Ġlistener 3 . task End ( mock Task , ĠEnd Cause . ERROR , Ġmock Exception , Ġmock Listener 1 Model ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ ĠonError . invoke ( mock Task , Ġmock Exception ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 4 ) Ġ{ Ġmock Terminal . invoke () Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( onError ) ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( mock Terminal ) ĊĊĠĠĠĠĠĠĠ Ġlistener 3 . progress ( mock Task , Ġcurrent Offset , Ġtotal Length ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġon Progress . invoke ( mock Task , Ġcurrent Offset , Ġtotal Length ) Ġ} ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( on Progress ) ĊĠĠĠ Ġ} Ċ }