PHPUnit migrated to attributes :(

This commit is contained in:
Dylan K. Taylor 2025-06-08 19:19:17 +01:00
parent 6b5ff5016e
commit 9e773ed439
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
14 changed files with 43 additions and 58 deletions

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\block;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use pocketmine\block\utils\BrewingStandSlot;
use function count;
@ -39,11 +40,10 @@ class BrewingStandTest extends TestCase{
}
/**
* @dataProvider slotsProvider
*
* @param BrewingStandSlot[] $slots
* @phpstan-param list<BrewingStandSlot> $slots
*/
#[DataProvider("slotsProvider")]
public function testHasAndSetSlot(array $slots) : void{
$block = VanillaBlocks::BREWING_STAND();
foreach($slots as $slot){
@ -62,11 +62,10 @@ class BrewingStandTest extends TestCase{
}
/**
* @dataProvider slotsProvider
*
* @param BrewingStandSlot[] $slots
* @phpstan-param list<BrewingStandSlot> $slots
*/
#[DataProvider("slotsProvider")]
public function testGetSlots(array $slots) : void{
$block = VanillaBlocks::BREWING_STAND();
@ -83,11 +82,10 @@ class BrewingStandTest extends TestCase{
}
/**
* @dataProvider slotsProvider
*
* @param BrewingStandSlot[] $slots
* @phpstan-param list<BrewingStandSlot> $slots
*/
#[DataProvider("slotsProvider")]
public function testSetSlots(array $slots) : void{
$block = VanillaBlocks::BREWING_STAND();

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\command\utils;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
class CommandStringHelperTest extends TestCase{
@ -47,9 +48,9 @@ class CommandStringHelperTest extends TestCase{
}
/**
* @dataProvider parseQuoteAwareProvider
* @param string[] $expected
*/
#[DataProvider("parseQuoteAwareProvider")]
public function testParseQuoteAware(string $commandLine, array $expected) : void{
$actual = CommandStringHelper::parseQuoteAware($commandLine);

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\console;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use function mt_rand;
use function str_repeat;
@ -40,9 +41,7 @@ final class ConsoleReaderChildProcessUtilsTest extends TestCase{
yield ["give \"Steve\" golden_apple"];
}
/**
* @dataProvider commandStringProvider
*/
#[DataProvider("commandStringProvider")]
public function testCreateParseSymmetry(string $input) : void{
$counterCreate = $counterParse = mt_rand();
$message = ConsoleReaderChildProcessUtils::createMessage($input, $counterCreate);
@ -74,9 +73,7 @@ final class ConsoleReaderChildProcessUtilsTest extends TestCase{
yield ["a" . ConsoleReaderChildProcessUtils::TOKEN_DELIMITER . "b", false]; //message with delimiter but not a valid IPC message
}
/**
* @dataProvider parseMessageProvider
*/
#[DataProvider("parseMessageProvider")]
public static function testParseMessage(string $message, bool $valid) : void{
$counter = $oldCounter = 0;

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\data\bedrock\block\upgrade;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use pocketmine\block\Block;
use pocketmine\data\bedrock\block\BlockStateData;
@ -126,9 +127,9 @@ class BlockStateUpgraderTest extends TestCase{
}
/**
* @dataProvider removePropertyProvider
* @phpstan-param \Closure() : BlockStateData $getStateData
*/
#[DataProvider("removePropertyProvider")]
public function testRemoveProperty(\Closure $getStateData) : void{
$this->prepareRemovePropertySchema($this->getNewSchema());
@ -151,9 +152,9 @@ class BlockStateUpgraderTest extends TestCase{
}
/**
* @dataProvider renamePropertyProvider
* @phpstan-param \Closure() : BlockStateData $getStateData
*/
#[DataProvider("renamePropertyProvider")]
public function testRenameProperty(\Closure $getStateData, ?int $valueAfter) : void{
$this->prepareRenamePropertySchema($this->getNewSchema());
@ -187,9 +188,9 @@ class BlockStateUpgraderTest extends TestCase{
}
/**
* @dataProvider remapPropertyValueProvider
* @phpstan-param \Closure() : BlockStateData $getStateData
*/
#[DataProvider("remapPropertyValueProvider")]
public function testRemapPropertyValue(\Closure $getStateData, ?int $valueAfter) : void{
$this->prepareRemapPropertyValueSchema($this->getNewSchema());
@ -199,9 +200,9 @@ class BlockStateUpgraderTest extends TestCase{
}
/**
* @dataProvider remapPropertyValueProvider
* @phpstan-param \Closure() : BlockStateData $getStateData
*/
#[DataProvider("remapPropertyValueProvider")]
public function testRemapAndRenameProperty(\Closure $getStateData, ?int $valueAfter) : void{
$schema = $this->getNewSchema();
$this->prepareRenamePropertySchema($schema);
@ -239,9 +240,7 @@ class BlockStateUpgraderTest extends TestCase{
yield [0x1_00_00_00, 0x1_00_01_00, false, 1]; //Block newer than schema: block must NOT be altered
}
/**
* @dataProvider upgraderVersionCompatibilityProvider
*/
#[DataProvider("upgraderVersionCompatibilityProvider")]
public function testUpgraderVersionCompatibility(int $schemaVersion, int $stateVersion, bool $shouldChange, int $schemaCount) : void{
for($i = 0; $i < $schemaCount; $i++){
$schema = $this->getNewSchemaVersion($schemaVersion, $i);

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\event;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use pocketmine\event\fixtures\TestAbstractAllowHandleEvent;
use pocketmine\event\fixtures\TestAbstractEvent;
@ -63,10 +64,9 @@ class HandlerListManagerTest extends TestCase{
}
/**
* @dataProvider isValidClassProvider
*
* @phpstan-param \ReflectionClass<Event> $class
*/
#[DataProvider("isValidClassProvider")]
public function testIsValidClass(\ReflectionClass $class, bool $isValid, string $reason) : void{
self::assertSame($isValid, ($this->isValidFunc)($class), $reason);
}
@ -83,11 +83,10 @@ class HandlerListManagerTest extends TestCase{
}
/**
* @dataProvider resolveParentClassProvider
*
* @phpstan-param \ReflectionClass<Event> $class
* @phpstan-param \ReflectionClass<Event>|null $expect
*/
#[DataProvider("resolveParentClassProvider")]
public function testResolveParentClass(\ReflectionClass $class, ?\ReflectionClass $expect) : void{
if($expect === null){
self::assertNull(($this->resolveParentFunc)($class));

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\item;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use pocketmine\block\VanillaBlocks;
@ -43,9 +44,7 @@ class LegacyStringToItemParserTest extends TestCase{
];
}
/**
* @dataProvider itemFromStringProvider
*/
#[DataProvider("itemFromStringProvider")]
public function testFromStringSingle(string $string, Item $expected) : void{
$item = LegacyStringToItemParser::getInstance()->parse($string);

View File

@ -23,14 +23,13 @@ declare(strict_types=1);
namespace pocketmine\network\mcpe\convert;
use PHPUnit\Framework\Attributes\DoesNotPerformAssertions;
use PHPUnit\Framework\TestCase;
use pocketmine\block\RuntimeBlockStateRegistry;
class BlockTranslatorTest extends TestCase{
/**
* @doesNotPerformAssertions
*/
#[DoesNotPerformAssertions]
public function testAllBlockStatesSerialize() : void{
$blockTranslator = TypeConverter::getInstance()->getBlockTranslator();
foreach(RuntimeBlockStateRegistry::getInstance()->getAllKnownStates() as $state){

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\plugin;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use function sort;
@ -47,9 +48,7 @@ class ApiVersionTest extends TestCase{
yield ["3.0.0-ALPHA1", "4.0.0-ALPHA1", false];
}
/**
* @dataProvider compatibleApiProvider
*/
#[DataProvider("compatibleApiProvider")]
public function testCompatibleApi(string $myVersion, string $wantVersion, bool $expected) : void{
self::assertSame($expected, ApiVersion::isCompatible($myVersion, [$wantVersion]), "my version: $myVersion, their version: $wantVersion, expect " . ($expected ? "yes" : "no"));
}
@ -67,11 +66,10 @@ class ApiVersionTest extends TestCase{
}
/**
* @dataProvider ambiguousVersionsProvider
*
* @param string[] $input
* @param string[] $expectedOutput
*/
#[DataProvider("ambiguousVersionsProvider")]
public function testFindAmbiguousVersions(array $input, array $expectedOutput) : void{
$ambiguous = ApiVersion::checkAmbiguousVersions($input);

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\scheduler;
use PHPUnit\Framework\Attributes\DoesNotPerformAssertions;
use PHPUnit\Framework\TestCase;
use pmmp\thread\ThreadSafeArray;
use pocketmine\promise\PromiseResolver;
@ -84,9 +85,8 @@ class AsyncPoolTest extends TestCase{
*
* Due to an unset() in the function body, other AsyncTask::__destruct() calls could be triggered during
* an AsyncTask's destruction. If done in the wrong way, this could lead to a crash.
*
* @doesNotPerformAssertions This test is checking for a crash condition, not a specific output.
*/
#[DoesNotPerformAssertions]
public function testTaskDestructorReentrancy() : void{
$this->pool->submitTask(new class extends AsyncTask{
public function __construct(){

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\utils;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
final class CloningRegistryTraitTest extends TestCase{
@ -37,9 +38,9 @@ final class CloningRegistryTraitTest extends TestCase{
}
/**
* @dataProvider cloningRegistryMembersProvider
* @phpstan-param \Closure() : \stdClass $provider
*/
#[DataProvider("cloningRegistryMembersProvider")]
public function testEachMemberClone(\Closure $provider) : void{
self::assertNotSame($provider(), $provider(), "Cloning registry should never return the same object twice");
}

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\utils;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use function yaml_parse;
@ -60,10 +61,9 @@ class ConfigTest extends TestCase{
}
/**
* @dataProvider fixYamlIndexesProvider
*
* @param mixed[] $expected
*/
#[DataProvider("fixYamlIndexesProvider")]
public function testFixYamlIndexes(string $test, array $expected) : void{
$fixed = Config::fixYAMLIndexes($test);
$decoded = yaml_parse($fixed);

View File

@ -23,6 +23,8 @@ declare(strict_types=1);
namespace pocketmine\utils;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\DoesNotPerformAssertions;
use PHPUnit\Framework\TestCase;
use pocketmine\utils\fixtures\TestAbstractClass;
use pocketmine\utils\fixtures\TestInstantiableClass;
@ -52,9 +54,7 @@ class UtilsTest extends TestCase{
];
}
/**
* @dataProvider parseDocCommentNewlineProvider
*/
#[DataProvider("parseDocCommentNewlineProvider")]
public function testParseDocCommentNewlines(string $docComment) : void{
$tags = Utils::parseDocComment($docComment);
@ -76,9 +76,7 @@ class UtilsTest extends TestCase{
];
}
/**
* @dataProvider parseDocCommentOneLineProvider
*/
#[DataProvider("parseDocCommentOneLineProvider")]
public function testParseOneLineDocComment(string $comment) : void{
$tags = Utils::parseDocComment($comment);
self::assertArrayHasKey("ignoreCancelled", $tags);
@ -120,11 +118,11 @@ class UtilsTest extends TestCase{
}
/**
* @dataProvider validInstanceProvider
* @doesNotPerformAssertions
* @phpstan-param class-string $className
* @phpstan-param class-string $baseName
*/
#[DataProvider("validInstanceProvider")]
#[DoesNotPerformAssertions]
public function testValidInstanceWithValidCombinations(string $className, string $baseName) : void{
Utils::testValidInstance($className, $baseName);
}
@ -146,9 +144,7 @@ class UtilsTest extends TestCase{
];
}
/**
* @dataProvider validInstanceInvalidCombinationsProvider
*/
#[DataProvider("validInstanceInvalidCombinationsProvider")]
public function testValidInstanceInvalidParameters(string $className, string $baseName) : void{
$this->expectException(\InvalidArgumentException::class);
Utils::testValidInstance($className, $baseName); //@phpstan-ignore-line

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\world\format\io\region;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use pocketmine\world\format\ChunkException;
use Symfony\Component\Filesystem\Path;
@ -82,11 +83,10 @@ class RegionLoaderTest extends TestCase{
}
/**
* @dataProvider outOfBoundsCoordsProvider
*
* @throws ChunkException
* @throws \InvalidArgumentException
*/
#[DataProvider("outOfBoundsCoordsProvider")]
public function testWriteChunkOutOfBounds(int $x, int $z) : void{
$this->expectException(\InvalidArgumentException::class);
$this->region->writeChunk($x, $z, str_repeat("\x00", 1000));
@ -107,11 +107,10 @@ class RegionLoaderTest extends TestCase{
}
/**
* @dataProvider outOfBoundsCoordsProvider
*
* @throws \InvalidArgumentException
* @throws \pocketmine\world\format\io\exception\CorruptedChunkException
*/
#[DataProvider("outOfBoundsCoordsProvider")]
public function testReadChunkOutOfBounds(int $x, int $z) : void{
$this->expectException(\InvalidArgumentException::class);
$this->region->readChunk($x, $z);

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace pocketmine\world\format\io\region;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use function sprintf;
@ -40,9 +41,7 @@ class RegionLocationTableEntryTest extends TestCase{
yield [new RegionLocationTableEntry(2, 4, 0), new RegionLocationTableEntry(3, 1, 0), true];
}
/**
* @dataProvider overlapDataProvider
*/
#[DataProvider("overlapDataProvider")]
public function testOverlap(RegionLocationTableEntry $entry1, RegionLocationTableEntry $entry2, bool $overlaps) : void{
$stringify = function(RegionLocationTableEntry $entry) : string{
return sprintf("entry first=%d last=%d size=%d", $entry->getFirstSector(), $entry->getLastSector(), $entry->getSectorCount());