package Ġwatch . craft . scrap ers Ċ Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġwatch . craft .* Ċ import Ġwatch . craft . Format . CAN Ċ import Ġwatch . craft . Sc raper . Node . Sc rap ed Item Ċ import Ġjava . net . URI Ċ import Ġkotlin . text . Regex Option . IGNORE _ CASE Ċ Ċ class ĠBr ick Sc raper Test Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġval ĠITE MS Ġ= Ġexecute Sc raper ( Brick Sc raper (), Ġdate String Ġ= Ġ" 2 0 2 0 - 0 7 - 1 5 ") ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` find s Ġall Ġthe Ġbe ers `() Ġ{ ĊĠĠĠ ĠassertEquals ( 1 7 , ĠITE MS . size ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` extract s Ġbeer Ġdetails `() Ġ{ ĊĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠ ĠSc rap ed Item ( ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Spring ĠN ED IP A ", ĊĠĠĠĠĠĠĠ Ġsummary Ġ= Ġ" New ĠEngland ĠDouble ĠIP A ", ĊĠĠĠĠĠĠĠ Ġab v Ġ= Ġ 8 . 0 , ĊĠĠĠĠĠĠĠ Ġoffers Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠ ĠOffer ( total Price Ġ= Ġ 5 . 8 5 , Ġquantity Ġ= Ġ 1 , Ġsize Ml Ġ= Ġ 4 4 0 , Ġformat Ġ= ĠCAN ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġavailable Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġthumbnail Url Ġ= ĠURI (" https :// cdn . shop ify . com / s / files / 1 / 0 3 6 0 / 1 7 0 7 / 8 4 1 2 / products / BB _ T all _ can _ mock up _ N ED IP A _ right _ label _ v 5 _ 1 _ 2 5 0 x 2 5 0 . jpg ") ĊĠĠĠĠĠ Ġ), ĊĠĠĠĠĠ ĠITE MS . by Name (" Spring ĠN ED IP A "). no Desc () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` extract s Ġdescription `() Ġ{ ĊĠĠĠ ĠassertNotNull ( ITEMS . by Name (" Spring ĠN ED IP A "). desc ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` ident ifies Ġmixed `() Ġ{ ĊĠĠĠ Ġval Ġitems Ġ= ĠITE MS . filter Ġ{ Ġit . mixed Ġ} ĊĊĠĠĠ ĠassertFalse ( items . isEmpty ()) ĊĠĠĠ ĠassertFalse ( items . any Ġ{ Ġit . only Offer (). quantity Ġ== Ġ 1 Ġ}) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` cle ans Ġup Ġmulti - pack Ġnames `() Ġ{ ĊĠĠĠ Ġval Ġitem Ġ= ĠITE MS . first Ġ{ Ġit . name Ġ== Ġ" Pe ck ham ĠP ale " Ġ&& Ġit . only Offer (). quantity Ġ> Ġ 1 Ġ} ĊĊĠĠĠ ĠassertFalse ( item . name . contains (" case ", Ġignore Case Ġ= Ġtrue )) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` ign ores Ġnon - be ers `() Ġ{ ĊĠĠĠ ĠassertFalse ( ITEMS . any Ġ{ Ġit . name . contains (" don ate | stub b by ". to Regex ( IGNORE _ CASE )) Ġ}) ĊĠ Ġ} Ċ } ĊĊ