/**
  * 
  * @test
  *
  * @expectedException        \VinceRuby\Tactician\Exceptions\MarshalException
  * @expectedExceptionMessage Unable to map parameter [data] to command [VinceRuby\Tactician\Tests\Stubs\TestCommand]
  * 
  */
 public function it_should_return_debugging_info()
 {
     $reflection = new ReflectionClass(TestCommand::class);
     $parameters = $reflection->getConstructor()->getParameters();
     MarshalException::whileMapping(TestCommand::class, $parameters[0]);
 }
 /**
  * Get a parameter value for a marshaled command.
  *
  * @param  string              $command
  * @param  ArrayAccess         $source
  * @param  ReflectionParameter $parameter
  * @param  array               $extras
  * 
  * @return mixed
  * 
  */
 protected function getParameterValueForCommand($command, ArrayAccess $source, ReflectionParameter $parameter, array $extras = [])
 {
     if (array_key_exists($parameter->name, $extras)) {
         return $extras[$parameter->name];
     }
     if (isset($source[$parameter->name])) {
         return $source[$parameter->name];
     }
     if ($parameter->isDefaultValueAvailable()) {
         return $parameter->getDefaultValue();
     }
     MarshalException::whileMapping($command, $parameter);
 }