diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d56ac3b..3ca4abe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,3 +14,5 @@ jobs: run: composer install --no-interaction --no-progress - name: Run tests run: php${{ matrix.php }} vendor/bin/phpunit --configuration Tests/phpunit.xml --verbose --fail-on-warning + - name: Run psalm + run: php${{ matrix.php }} vendor/bin/psalm diff --git a/Tests/Tests.php b/Tests/Tests.php index 6c3401f..cc5d9f6 100644 --- a/Tests/Tests.php +++ b/Tests/Tests.php @@ -61,7 +61,7 @@ } } - class SourceQueryTests extends TestCase + class Tests extends \PHPUnit\Framework\TestCase { private TestableSocket $Socket; private SourceQuery $SourceQuery; @@ -80,38 +80,30 @@ unset( $this->Socket, $this->SourceQuery ); } - /** - * @expectedException xPaw\SourceQuery\Exception\InvalidArgumentException - */ public function testInvalidTimeout() : void { + $this->expectException( 'xPaw\SourceQuery\Exception\InvalidArgumentException' ); $SourceQuery = new SourceQuery( ); $SourceQuery->Connect( '', 2, -1 ); } - /** - * @expectedException xPaw\SourceQuery\Exception\SocketException - */ public function testNotConnectedGetInfo() : void { + $this->expectException( 'xPaw\SourceQuery\Exception\SocketException' ); $this->SourceQuery->Disconnect(); $this->SourceQuery->GetInfo(); } - /** - * @expectedException xPaw\SourceQuery\Exception\SocketException - */ public function testNotConnectedPing() : void { + $this->expectException( 'xPaw\SourceQuery\Exception\SocketException' ); $this->SourceQuery->Disconnect(); $this->SourceQuery->Ping(); } - /** - * @expectedException xPaw\SourceQuery\Exception\SocketException - */ public function testNotConnectedGetPlayers() : void { + $this->expectException( 'xPaw\SourceQuery\Exception\SocketException' ); $this->SourceQuery->Disconnect(); $this->SourceQuery->GetPlayers(); } @@ -121,33 +113,28 @@ */ public function testNotConnectedGetRules() : void { + $this->expectException( 'xPaw\SourceQuery\Exception\SocketException' ); $this->SourceQuery->Disconnect(); $this->SourceQuery->GetRules(); } - /** - * @expectedException xPaw\SourceQuery\Exception\SocketException - */ public function testNotConnectedSetRconPassword() : void { + $this->expectException( 'xPaw\SourceQuery\Exception\SocketException' ); $this->SourceQuery->Disconnect(); $this->SourceQuery->SetRconPassword('a'); } - /** - * @expectedException xPaw\SourceQuery\Exception\SocketException - */ public function testNotConnectedRcon() : void { + $this->expectException( 'xPaw\SourceQuery\Exception\SocketException' ); $this->SourceQuery->Disconnect(); $this->SourceQuery->Rcon('a'); } - /** - * @expectedException xPaw\SourceQuery\Exception\SocketException - */ public function testRconWithoutPassword() : void { + $this->expectException( 'xPaw\SourceQuery\Exception\SocketException' ); $this->SourceQuery->Rcon('a'); } @@ -187,33 +174,33 @@ } /** - * @expectedException xPaw\SourceQuery\Exception\InvalidPacketException * @dataProvider BadPacketProvider */ public function testBadGetInfo( string $Data ) : void { + $this->expectException( 'xPaw\SourceQuery\Exception\InvalidPacketException' ); $this->Socket->Queue( $Data ); $this->SourceQuery->GetInfo(); } /** - * @expectedException xPaw\SourceQuery\Exception\InvalidPacketException * @dataProvider BadPacketProvider */ public function testBadGetChallengeViaPlayers( string $Data ) : void { + $this->expectException( 'xPaw\SourceQuery\Exception\InvalidPacketException' ); $this->Socket->Queue( $Data ); $this->SourceQuery->GetPlayers(); } /** - * @expectedException xPaw\SourceQuery\Exception\InvalidPacketException * @dataProvider BadPacketProvider */ public function testBadGetPlayersAfterCorrectChallenge( string $Data ) : void { + $this->expectException( 'xPaw\SourceQuery\Exception\InvalidPacketException' ); $this->Socket->Queue( "\xFF\xFF\xFF\xFF\x41\x11\x11\x11\x11" ); $this->Socket->Queue( $Data ); @@ -221,11 +208,11 @@ } /** - * @expectedException xPaw\SourceQuery\Exception\InvalidPacketException * @dataProvider BadPacketProvider */ public function testBadGetRulesAfterCorrectChallenge( string $Data ) : void { + $this->expectException( 'xPaw\SourceQuery\Exception\InvalidPacketException' ); $this->Socket->Queue( "\xFF\xFF\xFF\xFF\x41\x11\x11\x11\x11" ); $this->Socket->Queue( $Data ); diff --git a/composer.json b/composer.json index 88e00e8..7436df0 100644 --- a/composer.json +++ b/composer.json @@ -22,8 +22,9 @@ }, "require-dev": { - "phpunit/phpunit": "^6.0", - "php-coveralls/php-coveralls": "^2.1" + "phpunit/phpunit": "9.2", + "vimeo/psalm": "^3.12", + "php-coveralls/php-coveralls": "^2.2" }, "autoload": { diff --git a/psalm.xml b/psalm.xml new file mode 100644 index 0000000..8af2342 --- /dev/null +++ b/psalm.xml @@ -0,0 +1,16 @@ + + + + + + + + + +