package Ġkotlin mud . startup . validator Ċ Ċ import Ġassert k . fail Ċ import Ġkotlin mud . attributes . type . Attribute Ċ import Ġkotlin mud . item . type . ItemType Ċ import Ġkotlin mud . item . type . Position Ċ import Ġkotlin mud . item . type . Weapon Ċ import Ġkotlin mud . mob . fight . type . Damage Type Ċ import Ġkotlin mud . startup . exception . Item Validator Exception Ċ import Ġkotlin mud . test . helper . create Test Service Ċ import Ġorg . junit . Test Ċ Ċ class ĠItem Validator Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Item Validator Fails Without Position () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġtest Ġ= Ġcreate Test Service () ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġtest . create Item Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= ĠItem Type . EQ U IP MENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem Validator ( item ). validate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" expected Ġitem Ġvalidator Ġexception ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠItem Validator Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Item Validator Fails Weapon Without Weapon Type () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġtest Ġ= Ġcreate Test Service () ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġtest . create Item Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= ĠItem Type . EQ U IP MENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . position Ġ= ĠPosition . WE AP ON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . damage Type Ġ= ĠDamage Type . SL ASH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attack Verb Ġ= Ġ" slice " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attributes [ Attribute . HIT ] Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attributes [ Attribute . D AM ] Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem Validator ( item ). validate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" expected Ġitem Ġvalidator Ġexception ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠItem Validator Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Item Validator Fails Weapon Without Damage Type () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġtest Ġ= Ġcreate Test Service () ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġtest . create Item Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= ĠItem Type . EQ U IP MENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . position Ġ= ĠPosition . WE AP ON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . weapon Type Ġ= ĠWeapon . AX E ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attack Verb Ġ= Ġ" slice " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attributes [ Attribute . HIT ] Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attributes [ Attribute . D AM ] Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem Validator ( item ). validate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" expected Ġitem Ġvalidator Ġexception ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠItem Validator Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Item Validator Fails Weapon Without Attack Verb () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġtest Ġ= Ġcreate Test Service () ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġtest . create Item Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= ĠItem Type . EQ U IP MENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . position Ġ= ĠPosition . WE AP ON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . weapon Type Ġ= ĠWeapon . AX E ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . damage Type Ġ= ĠDamage Type . SL ASH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attributes [ Attribute . HIT ] Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attributes [ Attribute . D AM ] Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem Validator ( item ). validate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" expected Ġitem Ġvalidator Ġexception ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠItem Validator Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Item Validator Fails Weapon Without Hit () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġtest Ġ= Ġcreate Test Service () ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġtest . create Item Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= ĠItem Type . EQ U IP MENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . position Ġ= ĠPosition . WE AP ON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . weapon Type Ġ= ĠWeapon . AX E ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . damage Type Ġ= ĠDamage Type . SL ASH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attack Verb Ġ= Ġ" slice " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attributes [ Attribute . D AM ] Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem Validator ( item ). validate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" expected Ġitem Ġvalidator Ġexception ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠItem Validator Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Item Validator Fails Weapon Without D am () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsetup ĊĠĠĠĠĠĠĠ Ġval Ġtest Ġ= Ġcreate Test Service () ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġtest . create Item Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= ĠItem Type . EQ U IP MENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . position Ġ= ĠPosition . WE AP ON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . weapon Type Ġ= ĠWeapon . AX E ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . damage Type Ġ= ĠDamage Type . SL ASH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attack Verb Ġ= Ġ" slice " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . attributes [ Attribute . HIT ] Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠItem Validator ( item ). validate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" expected Ġitem Ġvalidator Ġexception ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠItem Validator Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ