package Ġcom . github . kot l inte le gram bot . network . apic lient Ċ Ċ import Ġcom . github . kot l inte le gram bot . entities . Chat Id Ċ import Ġcom . github . kot l inte le gram bot . test utils . api MethodName Ċ import Ġcom . github . kot l inte le gram bot . test utils . decoded Body Ċ import Ġjunit . framework . TestCase . assertEquals Ċ import Ġokhttp 3 . mock webserver . Mock Response Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠProm ote Chat Member IT Ġ: ĠApi Client IT () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` correct Ġrequest Ġwith Ġall Ġmandatory Ġarguments `() Ġ{ ĊĠĠĠĠĠĠĠ Ġgiven Prom ote Chat Member Success Response () ĊĊĠĠĠĠĠĠĠ Ġsut . prom ote Chat Member ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchat Id Ġ= ĠChat Id . from Id ( ANY _ CHAT _ ID ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠANY _ USER _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Anonymous Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Change Info Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Post Messages Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Edit Messages Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Delete Messages Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Invite Users Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Restrict Members Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Pin Messages Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Prom ote Members Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġmock WebServer . take Request () ĊĠĠĠĠĠĠĠ ĠassertEquals (" prom ote Chat Member ", Ġrequest . api MethodName ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" chat _ id =$ ANY _ CHAT _ ID & user _ id =$ ANY _ USER _ ID ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . decoded Body ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` correct Ġrequest Ġwith Ġall Ġarguments `() Ġ{ ĊĠĠĠĠĠĠĠ Ġgiven Prom ote Chat Member Success Response () ĊĊĠĠĠĠĠĠĠ Ġsut . prom ote Chat Member ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchat Id Ġ= ĠChat Id . from Id ( ANY _ CHAT _ ID ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠANY _ USER _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Anonymous Ġ= ĠIS _ AN ONY MO US , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Change Info Ġ= ĠCAN _ CHANGE _ INFO , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Post Messages Ġ= ĠCAN _ POST _ MESSAGES , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Edit Messages Ġ= ĠCAN _ EDIT _ MESSAGES , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Delete Messages Ġ= ĠCAN _ DELETE _ MESSAGES , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Invite Users Ġ= ĠCAN _ INV ITE _ USERS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Restrict Members Ġ= ĠCAN _ RE STRICT _ MEMBER S , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Pin Messages Ġ= ĠCAN _ PIN _ MESSAGES , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Prom ote Members Ġ= ĠCAN _ PRO MOTE _ MEMBER S , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġmock WebServer . take Request () ĊĠĠĠĠĠĠĠ ĠassertEquals (" prom ote Chat Member ", Ġrequest . api MethodName ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" chat _ id =$ ANY _ CHAT _ ID & user _ id =$ ANY _ USER _ ID & is _ anonymous =$ IS _ AN ONY MO US " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& can _ change _ info =$ CAN _ CHANGE _ INFO & can _ post _ messages =$ CAN _ POST _ MESSAGES " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& can _ edit _ messages =$ CAN _ EDIT _ MESSAGES & can _ delete _ messages =$ CAN _ DELETE _ MESSAGES " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& can _ invite _ users =$ CAN _ INV ITE _ USERS & can _ restrict _ members =$ CAN _ RE STRICT _ MEMBER S " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& can _ pin _ messages =$ CAN _ PIN _ MESSAGES & can _ prom ote _ members =$ CAN _ PRO MOTE _ MEMBER S ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . decoded Body ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` successful Ġresponse Ġis Ġreturned Ġcorrectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġgiven Prom ote Chat Member Success Response () ĊĊĠĠĠĠĠĠĠ Ġval Ġpromote Chat Member Result Ġ= Ġsut . prom ote Chat Member ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchat Id Ġ= ĠChat Id . from Id ( ANY _ CHAT _ ID ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠANY _ USER _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Anonymous Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Change Info Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Post Messages Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Edit Messages Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Delete Messages Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Invite Users Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Restrict Members Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Pin Messages Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Prom ote Members Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġpromote Chat Member Result . get OrNull ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgiven Prom ote Chat Member Success Response () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpromote Chat Member ResponseBody Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ok ": Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" result ": Ġtrue ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġval Ġmocked Success Response Ġ= ĠMock Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Response Code ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Body ( prom ote Chat Member ResponseBody ) ĊĠĠĠĠĠĠĠ Ġmock WebServer . enqueue ( mocked Success Response ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠANY _ CHAT _ ID Ġ= Ġ 3 5 1 2 3 5 2 3 L ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠANY _ USER _ ID Ġ= Ġ 1 2 1 2 4 1 2 4 L ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIS _ AN ONY MO US Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCAN _ CHANGE _ INFO Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCAN _ POST _ MESSAGES Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCAN _ EDIT _ MESSAGES Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCAN _ DELETE _ MESSAGES Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCAN _ INV ITE _ USERS Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCAN _ RE STRICT _ MEMBER S Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCAN _ PIN _ MESSAGES Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCAN _ PRO MOTE _ MEMBER S Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ