/** * @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 static function getSharedInstanceTest() { test_flight_assert(self::sharedInstance() instanceof ObjectManager); test_flight_assert(self::sharedInstance()->get(__CLASS__) === self::sharedInstance()); }
/** * @test */ protected function findClassesInFilesTest() { $classes = $this->findClassesInFiles([new File(__FILE__)]); test_flight_assert(1 === count($classes)); test_flight_assert(__CLASS__ === key($classes)); $classes = $this->findClassesInFiles([new File(__DIR__ . '/../functions.php')]); test_flight_assert(0 === count($classes)); }
/** * @test */ protected function getCodeFromDocCommentWithCodeTest() { $docComment = '/** * Returns the file\'s path * * <code>assert(__FILE__, (new File(__FILE__))->getPath())</code> * * @return string */'; $code = $this->getCodeFromDocComment($docComment); test_flight_assert(is_string($code)); test_flight_assert_same('assert(__FILE__, (new File(__FILE__))->getPath());', $code); $docComment = '/** * Returns the file\'s path * * <code>assert(__FILE__, (new File(__FILE__))->getPath())</code> * @return string */'; $code = $this->getCodeFromDocComment($docComment); test_flight_assert(is_string($code)); test_flight_assert_same('assert(__FILE__, (new File(__FILE__))->getPath());', $code); $docComment = '/** * Returns the file\'s path * * <code>assert(__FILE__, (new File(__FILE__))->getPath())</code> * @param string $xy * @return string */'; $code = $this->getCodeFromDocComment($docComment); test_flight_assert(is_string($code)); test_flight_assert_same('assert(__FILE__, (new File(__FILE__))->getPath());', $code); $docComment = '/** * Returns the file\'s path * * <code> * assert(__FILE__, (new File(__FILE__))->getPath()); * assert(__FILE__, (new File(__FILE__))->getPath()) * </code> * @param string $xy * @return string */'; $code = $this->getCodeFromDocComment($docComment); test_flight_assert(is_string($code)); test_flight_assert_same(' assert(__FILE__, (new File(__FILE__))->getPath()); assert(__FILE__, (new File(__FILE__))->getPath());', $code); }