/**
  * Update the data.
  *
  * PUT|PATCH /api/positions/:id
  *
  * @param  Request $request
  * @param  Preset $preset
  * @param  Position $position
  * @return \Illuminate\Http\JsonResponse
  */
 public function update(Request $request, Preset $preset, Position $position)
 {
     $validator = new PositionValidator($preset, $request);
     if (!$validator->passes()) {
         return $validator->errors();
     }
     $position->fill($request->only('x', 'y'));
     $position->save();
     return $position->fresh()->load('piece');
 }
 /** @test **/
 public function it_returns_an_array_with_an_error_code_given_an_x_and_y_that_is_already_taken()
 {
     $preset = Mockery::mock(Preset::class);
     $preset->shouldReceive('positionAvailable')->once()->andReturn(false);
     $request = Mockery::mock(Request::class);
     $request->x = 0;
     $request->y = 0;
     $validator = new PositionValidator($preset, $request);
     $expected = ['code' => 422, 'error' => ['position' => ['The position is already taken']]];
     $this->assertFalse($validator->passes());
     $this->assertEquals($expected, $validator->errors());
 }