/** * @test */ public function it_asks_ship_endpoint_on_a_field_without_a_ship() { $field = Field::generate(1, 1); $this->setExpectedException(NoShipAtThisFieldException::class); $field->endPointOfShip(); }
/** * @test */ public function it_sinks_a_ship_in_fields_with_a_ship() { $fields = []; $data = ['startPoint' => ['x' => 1, 'y' => 1], 'endPoint' => ['x' => 1, 'y' => 2], 'hits' => 1]; $ship = Ship::fromArray($data); $field = Field::generate(1, 1); $field->place($ship); $fields[] = $field; $field = Field::generate(1, 2); $field->place($ship); $fields[] = $field; $fieldsClass = Fields::create($fields); $fieldsClass->shoot(Coords::create(1, 1)); $this->assertEquals(true, $fieldsClass->didShipSankAt(Coords::create(1, 1))); $this->assertEquals(true, $fieldsClass->didAllShipsSink()); }