/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 , ĠB loom box , ĠLLC . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠSource Ġand Ġobject Ġcomputer Ġcode Ġcontained Ġherein Ġis Ġthe Ġprivate Ġintel lectual Ċ Ġ* Ġproperty Ġof ĠB loom box , Ġa ĠCalifornia ĠLimited ĠLi ability ĠCorporation . ĠUse Ġof Ġthis Ċ Ġ* Ġcode Ġin Ġsource Ġform Ġrequires Ġpermission Ġin Ġwriting Ġbefore Ġuse Ġor Ġthe Ċ Ġ* Ġassembly , Ġdistribution , Ġor Ġpublishing Ġof Ġderivative Ġworks , Ġfor Ġcommercial Ċ Ġ* Ġpurposes Ġor Ġany Ġother Ġpurpose , Ġfrom Ġa Ġd uly Ġauthorized Ġoff icer Ġof ĠMoment um Ċ Ġ* ĠIde as ĠCo . Ċ Ġ* Ċ Ġ* Ġ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 Ġb loom box . client . menu Ċ Ċ import Ġb loom box . client . ClientException Ċ import Ġb loom box . client . services . menu . Menu Client Ċ import Ġb loom box . client . services . menu . Menu Client Error Ċ import Ġb loom box . client . test . Client RP CT est Ċ import Ġio . grpc . Status Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertNotNull Ċ import Ġkotlin . test . assertTrue Ċ import Ġorg . junit . Test Ġas Ġtest ĊĊ Ċ /** Ċ Ġ* ĠTest Ġmenu Ġretrieval Ġmethods Ġon Ġthe ĠMenu ĠAPI . Ċ Ġ*/ Ċ class ĠGet Menu Test : ĠClient RP CT est () Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPartner ĠID Ġto Ġtest Ġthe Ġmenu Ġwith . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġconst Ġval Ġpartner ID Ġ= Ġ" cal iva " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLocation ĠID Ġto Ġtest Ġthe Ġmenu Ġwith . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġconst Ġval Ġlocation ID Ġ= Ġ" s jc " ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠTest Ġfetching Ġbasic Ġmenu . ĊĠĠ Ġ*/ Ċ // Ġ Ġ@ test Ċ // Ġ Ġfun ĠtestGet Basic Menu () Ġ{ Ċ // ĠĠĠ Ġwith Client Ġ{ Ġclient Ġ-> Ċ // ĠĠĠĠĠ Ġval Ġresponse Ġ= Ġclient . platform . menu (). retrieve ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠMenu Client . Menu Context ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpartner Ġ= Ġpartner ID , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġlocation ID )) Ċ // Ċ // ĠĠĠĠĠ ĠassertNotNull ( response , Ġ" response Ġfrom Ġserver Ġfor Ġmenu Ġshould Ġnot Ġbe Ġnull ") Ċ // ĠĠĠĠĠ ĠassertTrue ( response . has Catalog (), Ġ" response Ġfrom Ġserver Ġshould Ġspecify Ġmenu Ġdata ") Ċ // ĠĠĠ Ġ} Ċ // Ġ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠTest Ġfetching Ġbasic Ġmenu Ġasynchronously . ĊĠĠ Ġ*/ Ċ // Ġ Ġ@ test Ċ // Ġ Ġfun ĠtestGet Basic Menu Async () Ġ{ Ċ // ĠĠĠ Ġwith Client Ġ{ Ġclient Ġ-> Ċ // ĠĠĠĠĠ Ġval Ġoperation Ġ= Ġclient . platform . menu (). retrieve ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠMenu Client . Menu Context ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpartner Ġ= Ġpartner ID , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġlocation ID ), Ġfalse , Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ// Ġmenu Ġresponse Ċ // ĠĠĠĠĠĠĠ ĠassertNotNull ( it , Ġ" response Ġfrom Ġserver Ġfor Ġmenu Ġshould Ġnot Ġbe Ġnull ") Ċ // ĠĠĠĠĠĠĠ ĠassertTrue ( it . has Catalog (), Ġ" response Ġfrom Ġserver Ġshould Ġspecify Ġmenu Ġdata ") Ċ // ĠĠĠĠĠ Ġ}, Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ// Ġerror Ġcallback Ċ // ĠĠĠĠĠĠĠ ĠassertTrue ( false , Ġ" async Ġmenu Ġretrieval Ġfailed ") Ċ // ĠĠĠĠĠ Ġ}) Ċ // Ċ // ĠĠĠĠĠ Ġoperation . get ( 1 0 0 0 0 , ĠTimeUnit . SECONDS ) Ċ // ĠĠĠ Ġ} Ċ // Ġ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠTest Ġfetching Ġbasic Ġmenu Ġwith Ġdefault Ġcontext . ĊĠĠ Ġ*/ Ċ // Ġ Ġ@ test Ċ // Ġ Ġfun ĠtestGet Basic Menu Default Context () Ġ{ Ċ // ĠĠĠ Ġwith Client Ġ{ Ġclient Ġ-> Ċ // ĠĠĠĠĠ Ġval Ġresponse Ġ= Ġclient . platform . menu (). retrieve () Ċ // ĠĠĠĠĠ ĠassertNotNull ( response , Ġ" response Ġfrom Ġserver Ġfor Ġmenu Ġshould Ġnot Ġbe Ġnull ") Ċ // ĠĠĠĠĠ ĠassertTrue ( response . has Catalog (), Ġ" response Ġfrom Ġserver Ġshould Ġspecify Ġmenu Ġdata ") Ċ // ĠĠĠ Ġ} Ċ // Ġ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠTest Ġfetching Ġbasic Ġmenu , Ġasynchronously , Ġwith Ġdefault Ġcontext . ĊĠĠ Ġ*/ Ċ // Ġ Ġ@ test Ċ // Ġ Ġfun ĠtestGet Basic Menu Default Context Async () Ġ{ Ċ // ĠĠĠ Ġwith Client Ġ{ Ġclient Ġ-> Ċ // ĠĠĠĠĠ Ġval Ġresponse Ġ= Ġclient . platform . menu (). retrieve () Ċ // ĠĠĠĠĠ ĠassertNotNull ( response , Ġ" response Ġfrom Ġserver Ġfor Ġmenu Ġshould Ġnot Ġbe Ġnull ") Ċ // ĠĠĠĠĠ ĠassertTrue ( response . has Catalog (), Ġ" response Ġfrom Ġserver Ġshould Ġspecify Ġmenu Ġdata ") Ċ // ĠĠĠ Ġ} Ċ // Ġ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠTest Ġfetching Ġbasic Ġmenu , Ġbut Ġwith Ġan Ġinvalid Ġpartner . ĊĠĠ Ġ*/ Ċ // Ġ Ġ@ test ( expected Ġ= ĠClient Exception :: class ) Ċ // Ġ Ġfun ĠtestGet Basic Menu Invalid Partner () Ġ{ Ċ // ĠĠĠ Ġwith Client Ġ{ Ġclient Ġ-> Ċ // ĠĠĠĠĠ Ġtry Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġclient . platform . menu (). retrieve ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMenu Client . Menu Context ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpartner Ġ= Ġ"", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġlocation ID )) Ċ // ĠĠĠĠĠ Ġ} Ġcatch Ġ( ce : ĠClient Exception ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ// Ġmake Ġsure Ġit Ġfails Ġfor Ġthe Ġright Ġreasons Ċ // ĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT , Ġce . status (), Ġ" status Ġshould Ġmatch ĠINVALID _ ARGUMENT ") Ċ // ĠĠĠĠĠĠĠ ĠassertEquals ( Menu Client Error . PART NER _ INVALID . message (), Ġce . message (), Ġ" message Ġfor ĠINVALID _ PART NER Ġshould Ġbe Ġused ") Ċ // ĠĠĠĠĠĠĠ Ġthrow Ġce Ċ // ĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ġ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠTest Ġfetching Ġbasic Ġmenu , Ġbut Ġwith Ġan Ġinvalid Ġlocation . ĊĠĠ Ġ*/ Ċ // Ġ Ġ@ test ( expected Ġ= ĠClient Exception :: class ) Ċ // Ġ Ġfun ĠtestGet Basic Menu Invalid Location () Ġ{ Ċ // ĠĠĠ Ġwith Client Ġ{ Ġclient Ġ-> Ċ // ĠĠĠĠĠ Ġtry Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġclient . platform . menu (). retrieve ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMenu Client . Menu Context ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpartner Ġ= Ġpartner ID , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ"")) Ċ // ĠĠĠĠĠ Ġ} Ġcatch Ġ( ce : ĠClient Exception ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ// Ġmake Ġsure Ġit Ġfails Ġfor Ġthe Ġright Ġreasons Ċ // ĠĠĠĠĠĠĠ ĠassertEquals ( Status . INVALID _ ARGUMENT , Ġce . status (), Ġ" status Ġshould Ġmatch ĠINVALID _ ARGUMENT ") Ċ // ĠĠĠĠĠĠĠ ĠassertEquals ( Menu Client Error . LOCATION _ INVALID . message (), Ġce . message (), Ġ" message Ġfor ĠINVALID _ LOCATION Ġshould Ġbe Ġused ") Ċ // ĠĠĠĠĠĠĠ Ġthrow Ġce Ċ // ĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ġ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠTest Ġfetching Ġbasic Ġmenu , Ġbut Ġwith Ġa Ġpartner Ġand Ġlocation Ġthat Ġare Ġknown Ġnot Ġto Ġexist . ĊĠĠ Ġ*/ Ċ // Ġ Ġ@ test ( expected Ġ= ĠClient Exception :: class ) Ċ // Ġ Ġfun ĠtestGet Basic Menu DoesNotExist () Ġ{ Ċ // ĠĠĠ Ġwith Client Ġ{ Ġclient Ġ-> Ċ // ĠĠĠĠĠ Ġval Ġresult Ġ= Ġclient . platform . menu (). retrieve ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠMenu Client . Menu Context ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpartner Ġ= Ġ" b unk - partner - id ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġ" b unk - location - id ")) Ċ // Ċ // ĠĠĠĠĠ ĠassertFalse (" catalog Ġshould Ġnot Ġbe Ġreturned Ġwhen Ġit Ġcould Ġnot Ġbe Ġfound ", Ġ{ Ġresult . has Catalog () Ġ}) Ċ // ĠĠĠ Ġ} Ċ // Ġ Ġ} Ċ } Ċ