package Ġkotlin mud . mob . skill . impl Ċ Ċ import Ġassert k . assertThat Ċ import Ġassert k . assertions . has Size Ċ import Ġassert k . assertions . isEqualTo Ċ import Ġassert k . assertions . isNull Ċ import Ġkotlin mud . io . type . IO Status Ċ import Ġkotlin mud . item . type . Position Ċ import Ġkotlin mud . mob . skill . type . Skill Type Ċ import Ġkotlin mud . test . helper . create Test Service Ċ import Ġkotlin mud . test . helper . getId ent ifying Word Ċ import Ġorg . junit . Test Ċ Ċ class ĠDis arm Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Dis arm San ity () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġtest Ġ= Ġcreate Test Service () ĊĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġmob Ġ= Ġtest . create Player Mob Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . skills [ Skill Type . DIS ARM ] Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġtest . create Mob () ĊĠĠĠĠĠĠĠ Ġval Ġinitial Size Ġ= Ġtest . getStart Room (). items . size ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtest . run Action For IO Status ( mob , Ġ" dis arm Ġ${ getId ent ifying Word ( target )} ", ĠIO Status . OK ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠassertThat ( response . message . to Action Creator ). isEqualTo (" You Ġdis arm Ġ$ target Ġand Ġsend Ġtheir Ġweapon Ġf lying !") ĊĠĠĠĠĠĠĠ ĠassertThat ( response . message . to Target ). isEqualTo ("$ mob Ġdis arms Ġyou Ġand Ġsends Ġyour Ġweapon Ġf lying !") ĊĠĠĠĠĠĠĠ ĠassertThat ( response . message . to Observer s ). isEqualTo ("$ mob Ġdis arms Ġ$ target Ġand Ġsends Ġtheir Ġweapon Ġf lying !") ĊĊĠĠĠĠĠĠĠ Ġ// Ġand ĊĠĠĠĠĠĠĠ ĠassertThat ( target . get Equ ipped By Position ( Position . WE AP ON )). isNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( test . getStart Room (). items ). has Size ( initial Size Ġ+ Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Dis arm Requires Weapon () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġtest Ġ= Ġcreate Test Service () ĊĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġtest . create Mob Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . skills [ Skill Type . DIS ARM ] Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġtest . create Mob () ĊĠĠĠĠĠĠĠ Ġtarget . equ ipped . clear () ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtest . run Action (" dis arm Ġ${ getId ent ifying Word ( target )} ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠassertThat ( response . message . to Action Creator ). isEqualTo (" They Ġare Ġnot Ġequ ipped Ġwith Ġa Ġweapon .") ĊĠĠĠ Ġ} Ċ } Ċ