package Ġcom . cogn if ide . ap mt . tests . asset Ċ Ċ import Ġcom . cogn if ide . ap mt . TestCase Ċ import Ġcom . cogn if ide . ap mt . User Ċ import Ġcom . cogn if ide . ap mt . actions . asset . Create Asset Ċ import Ġcom . cogn if ide . ap mt . actions . asset . Remove Asset Ċ import Ġcom . cogn if ide . ap mt . config . Configuration Provider Ċ import Ġcom . cogn if ide . ap mt . tests . Allowed Ċ import Ġcom . cogn if ide . ap mt . tests . Ap mt Base Test Ċ import Ġcom . cogn if ide . ap mt . tests . Denied Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test Instance Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ Ċ @ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) Ċ @ DisplayName (" Check Ġuser Ġpermissions Ġto Ġremove Ġasset ") Ċ abstract Ġclass ĠRemove Asset Test ( var arg Ġtest Cases : ĠTestCase ) Ġ: ĠAp mt Base Test (* test Cases ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġauthor Instance Ġ= ĠConfiguration Provider . author Instance ĊĊĠĠĠ Ġ@ DisplayName (" User Ġcan Ġremove Ġasset ") ĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġ@ Allowed ĊĠĠĠ Ġfun Ġuser Can Remove Assets ( user : ĠUser , Ġpath : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcreate Asset Ġ= ĠCreate Asset ( author Instance , ĠConfiguration Provider . ap mt User , Ġpath ) ĊĠĠĠĠĠĠĠ Ġcreate Asset . execute () ĊĠĠĠĠĠĠĠ Ġadd Undo Action ( create Asset ) ĊĊĠĠĠĠĠĠĠ ĠRemove Asset ( author Instance , Ġuser , Ġpath ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assertThat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 2 0 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" User Ġcan Ġnot Ġremove Ġasset ") ĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġ@ Denied ĊĠĠĠ Ġfun Ġuser Cannot Remove Assets ( user : ĠUser , Ġpath : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcreate Asset Ġ= ĠCreate Asset ( author Instance , ĠConfiguration Provider . ap mt User , Ġpath ) ĊĠĠĠĠĠĠĠ Ġcreate Asset . execute () ĊĠĠĠĠĠĠĠ Ġadd Undo Action ( create Asset ) ĊĊĠĠĠĠĠĠĠ ĠRemove Asset ( author Instance , Ġuser , Ġpath ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assertThat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 4 0 3 ) ĊĠĠĠ Ġ} Ċ } Ċ