/* ĠSpotify ĠWeb ĠAPI , ĠKotlin ĠWrapper ; ĠMIT ĠLicense , Ġ 2 0 1 7 - 2 0 2 1 ; ĠOriginal Ġauthor : ĠAdam ĠR atz man Ġ*/ Ċ package Ġcom . adam rat z man . spotify . pub Ċ Ċ import Ġcom . adam rat z man . spotify . Generic Spot ify Api Ċ import Ġcom . adam rat z man . spotify . Spot ify Exception Ċ import Ġcom . adam rat z man . spotify . assert Fails With Suspend Ċ import Ġcom . adam rat z man . spotify . build Spot ify Api Ċ import Ġcom . adam rat z man . spotify . endpoints . pub . Search Api Ċ import Ġcom . adam rat z man . spotify . run Blocking Test Ċ import Ġcom . adam rat z man . spotify . utils . Market Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠSearch Api Test Ġ{ ĊĠĠĠ Ġvar Ġapi : ĠGeneric Spot ify Api ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Spot ify Api ()?. let Ġ{ Ġapi Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Pr ere q () Ġ= Ġapi Ġ!= Ġnull ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Search Multiple () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! test Pr ere q ()) Ġreturn @ run Blocking Test Ġelse Ġapi !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġapi !!. search . search (" lo ", Ġ* Search Api . Search Type . values ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery . albums ?. items ?. isNotEmpty () Ġ== Ġtrue Ġ&& Ġquery . tracks ?. items ?. isNotEmpty () Ġ== Ġtrue Ġ&& Ġquery . artists ?. items ?. isNotEmpty () Ġ== Ġtrue Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery . play lists ?. items ?. isNotEmpty () Ġ== Ġtrue Ġ&& Ġquery . shows ?. items ?. isNotEmpty () Ġ== Ġtrue Ġ&& Ġquery . episodes ?. items ?. isNotEmpty () Ġ== Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery 2 Ġ= Ġapi !!. search . search (" lo ", ĠSearch Api . Search Type . AR TI ST , ĠSearch Api . Search Type . PLAY LIST ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery 2 . albums Ġ== Ġnull Ġ&& Ġquery 2 . tracks Ġ== Ġnull Ġ&& Ġquery 2 . shows Ġ== Ġnull Ġ&& Ġquery 2 . episodes Ġ== Ġnull Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery 2 . artists ?. items ?. isNotEmpty () Ġ== Ġtrue Ġ&& Ġquery 2 . play lists ?. items ?. isNotEmpty () Ġ== Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery 3 Ġ= Ġapi !!. search . search (" lo ", ĠSearch Api . Search Type . SHOW , ĠSearch Api . Search Type . E PI SO DE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( query 3 . episodes ?. items ?. isNotEmpty () Ġ== Ġtrue Ġ&& Ġquery 3 . shows ?. items ?. isNotEmpty () Ġ== Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Search Track () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! test Pr ere q ()) Ġreturn @ run Blocking Test Ġelse Ġapi !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( api !!. search . search Track (" hello ", Ġ 1 , Ġ 1 , ĠMarket . US ). items . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With Suspend < Spot ify Exception . BadRequest Exception > Ġ{ Ġapi !!. search . search Track (" "). items . size Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Search Album () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! test Pr ere q ()) Ġreturn @ run Blocking Test Ġelse Ġapi !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( api !!. search . search Album (" le ĠdÃ© but "). items . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With Suspend < Spot ify Exception . BadRequest Exception > Ġ{ Ġapi !!. search . search Album (" "). items . size Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Search Playlist () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! test Pr ere q ()) Ġreturn @ run Blocking Test Ġelse Ġapi !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( api !!. search . search Playlist (" test "). items . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With Suspend < Spot ify Exception . BadRequest Exception > Ġ{ Ġapi !!. search . search Playlist (" "). items . size Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Search Artist () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! test Pr ere q ()) Ġreturn @ run Blocking Test Ġelse Ġapi !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( api !!. search . search Artist (" am ir "). items . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With Suspend < Spot ify Exception . BadRequest Exception > Ġ{ Ġapi !!. search . search Artist (" "). items . size Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Search Show () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! test Pr ere q ()) Ġreturn @ run Blocking Test Ġelse Ġapi !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( api !!. search Ġas ? ĠSearch Api )?. let Ġ{ Ġclient Search Api Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( client Search Api . search Show (" f ", Ġmarket Ġ= ĠMarket . US ). items . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With Suspend < Spot ify Exception . BadRequest Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Search Api . search Show ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Ġ= ĠMarket . US ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). items . size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Search Episode () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! test Pr ere q ()) Ġreturn @ run Blocking Test Ġelse Ġapi !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( api !!. search Ġas ? ĠSearch Api )?. let Ġ{ Ġclient Search Api Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( client Search Api . search Episode (" f ", Ġmarket Ġ= ĠMarket . US ). items . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With Suspend < Spot ify Exception . BadRequest Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Search Api . search Episode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Ġ= ĠMarket . US ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). items . size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ