/** * @test */ public function I_can_get_attack_number_modifier_by_distance() { $armourer = new Armourer($tables = $this->createTables()); $distance = $this->createDistanceWithBonus(123); $tables->shouldReceive('getContinuousAttackNumberByDistanceTable')->andReturn($continuousAttackNumberByDistanceTable = $this->mockery(ContinuousAttackNumberByDistanceTable::class)); $continuousAttackNumberByDistanceTable->shouldReceive('getAttackNumberModifierByDistance')->with($distance)->andReturn(112233); self::assertSame(112233, $armourer->getAttackNumberModifierByDistance($distance, $this->createEncounterRange(456), $this->createMaximalRange(789)), 'Should match to modification from' . ContinuousAttackNumberByDistanceTable::class); self::assertSame(112233, $armourer->getAttackNumberModifierByDistance($distance, $this->createEncounterRange(123), $this->createMaximalRange(789))); self::assertSame(112233 + (1 - 123), $armourer->getAttackNumberModifierByDistance($distance, $this->createEncounterRange(1), $this->createMaximalRange(789))); }