*/ public function parseDocCommentNewlineProvider() : array{ return [ ["\t/**\r\n\t * @param PlayerJoinEvent \$event\r\n\t * @priority HIGHEST\r\n\t * @notHandler\r\n\t */"], ["\t/**\n\t * @param PlayerJoinEvent \$event\n\t * @priority HIGHEST\n\t * @notHandler\n\t */"], ["\t/**\r\t * @param PlayerJoinEvent \$event\r\t * @priority HIGHEST\r\t * @notHandler\r\t */"] ]; } /** * @param string $docComment * @dataProvider parseDocCommentNewlineProvider */ public function testParseDocCommentNewlines(string $docComment) : void{ $tags = Utils::parseDocComment($docComment); self::assertArrayHasKey("notHandler", $tags); self::assertEquals("", $tags["notHandler"]); self::assertArrayHasKey("priority", $tags); self::assertEquals("HIGHEST", $tags["priority"]); } /** * @return string[][] * @phpstan-return list */ public function parseDocCommentOneLineProvider() : array{ return [ ["/** @ignoreCancelled true dummy */"], ["/**@ignoreCancelled true dummy*/"], ["/** @ignoreCancelled true dummy */"] ]; } /** * @dataProvider parseDocCommentOneLineProvider */ public function testParseOneLineDocComment(string $comment) : void{ $tags = Utils::parseDocComment($comment); self::assertArrayHasKey("ignoreCancelled", $tags); self::assertEquals("true dummy", $tags["ignoreCancelled"]); } public function testParseEmptyDocComment() : void{ $tags = Utils::parseDocComment(""); self::assertCount(0, $tags); } public function testNamespacedNiceClosureName() : void{ //be careful with this test. The closure has to be declared on the same line as the assertion. self::assertSame('closure@' . Filesystem::cleanPath(__FILE__) . '#L' . __LINE__, Utils::getNiceClosureName(function() : void{})); } }