/**
  * @test
  */
 public function I_can_get_all_codes_at_once_or_by_same_named_constant()
 {
     self::assertSame($expectedValues = ['short_bow', 'long_bow', 'short_composite_bow', 'long_composite_bow', 'power_bow', 'minicrossbow', 'light_crossbow', 'military_crossbow', 'heavy_crossbow', 'rock', 'throwing_dagger', 'light_throwing_axe', 'war_throwing_axe', 'throwing_hammer', 'shuriken', 'spear', 'javelin', 'sling'], RangedWeaponCode::getPossibleValues(), 'There are ' . (count($missingOrDifferent = array_diff_assoc($expectedValues, RangedWeaponCode::getPossibleValues())) > 0 ? 'missing values or different keys in given: ' . var_export($missingOrDifferent, true) : 'superfluous values or different keys in given: ' . var_export(array_diff_assoc(RangedWeaponCode::getPossibleValues(), $expectedValues), true)));
 }
예제 #2
0
 /**
  * @test
  */
 public function I_get_cover_of_two_for_every_ranged_weapon_and_zero_for_projectile()
 {
     $armourer = new Armourer(new Tables());
     foreach (RangedWeaponCode::getPossibleValues() as $rangedWeaponCode) {
         $rangedWeapon = RangedWeaponCode::getIt($rangedWeaponCode);
         if ($rangedWeapon->isProjectile()) {
             self::assertSame(0, $armourer->getCoverOfWeaponOrShield($rangedWeapon));
         } else {
             self::assertSame(2, $armourer->getCoverOfWeaponOrShield($rangedWeapon), "'{$rangedWeapon}' should has cover of 2");
         }
     }
 }