/** @test */ function it_is_dead_if_no_units_are_alive() { $unit1 = $this->getMock(Army\Unit\Unit::class); $unit2 = $this->getMock(Army\Unit\Unit::class); $unit1->method('isDead')->willReturn(true); $unit2->method('isDead')->willReturn(true); $this->army->add($unit1); $this->army->add($unit2); $this->assertTrue($this->army->isDead()); }
/** @test */ function it_returns_false_when_trying_to_get_a_winner_while_more_than_one_army_alive() { $armyOne = new Army('Foo'); $armyTwo = new Army('Bar'); $armyOne->add(new Barbarian()); $armyOne->add(new Archer()); $armyTwo->add(new Giant()); $this->simulator->addArmy($armyOne); $this->simulator->addArmy($armyTwo); $this->assertFalse($this->simulator->getWinner()); }
{ public $value = 0; function add(unit $unit) { $this->value += 1; } function getValue() { return $this->vlaue; } function remove(unit $unit) { $this->value = 0; } } class Archer extends unit { function add(unit $unit) { print_r($unit); } function remove(unit $unit) { print_r("Archer::remove()"); } } $main = new Army(); $main->add(new Archer()); $main->add(new Archer()); $sub = new Archer(); $sub->add(new Archer());