/**
  * @test
  */
 protected static function createForThisClassTest()
 {
     $prophet = new \Prophecy\Prophet();
     /** @var ClassLoader $dummy */
     $dummy = $prophet->prophesize(ClassLoader::class)->reveal();
     /** @var CodeExtractor $codeExtractor */
     $codeExtractor = $prophet->prophesize(CodeExtractor::class)->reveal();
     $provider = new static($dummy, $codeExtractor);
     $definitions = $provider->createForClasses([__CLASS__ => new File(__FILE__)]);
     test_flight_assert(key($definitions) === __CLASS__);
     test_flight_assert(is_array($definitions[__CLASS__]));
     test_flight_assert(current($definitions[__CLASS__]) instanceof \Cundd\TestFlight\Definition\AbstractMethodDefinition);
     test_flight_assert(current($definitions[__CLASS__]) instanceof \Cundd\TestFlight\Definition\StaticMethodDefinition);
     test_flight_throws(function () use($provider) {
         $provider->createForClasses(['NotExistingClass' => new File(__FILE__)]);
     }, \ReflectionException::class);
 }
 /**
  * @test
  */
 protected function createTest()
 {
     test_flight_throws(function () {
         new self(['configuration' => __DIR__ . '/../../tests/resources/test-configuration-invalid-json.json']);
     }, InvalidJsonException::class);
     test_flight_throws(function () {
         new self(['configuration' => __DIR__ . '/../../tests/resources/test-configuration-invalid-data.json']);
     }, InvalidConfigurationException::class);
 }