1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-26 20:34:47 +01:00
psalm/tests/BadFormatTest.php
2019-05-16 18:36:36 -04:00

96 lines
2.3 KiB
PHP

<?php
namespace Psalm\Tests;
use Psalm\Context;
class BadFormatTest extends TestCase
{
/**
*
* @return void
*/
public function testMissingSemicolon()
{
$this->expectExceptionMessage('ParseError - somefile.php:9');
$this->expectException(\Psalm\Exception\CodeException::class);
$this->addFile(
'somefile.php',
'<?php
class A {
/** @var int|null */
protected $hello;
/** @return void */
function foo() {
$this->hello = 5
}
}'
);
$this->analyzeFile('somefile.php', new Context());
}
/**
*
* @return void
*/
public function testClassMethodWithNoStmts()
{
$this->expectExceptionMessage('ParseError - somefile.php:3');
$this->expectException(\Psalm\Exception\CodeException::class);
$this->addFile(
'somefile.php',
'<?php
class A {
public function foo() : void;
}'
);
$this->analyzeFile('somefile.php', new Context());
}
/**
*
* @return void
*/
public function testTypingReturnType()
{
$this->expectExceptionMessage('ParseError - somefile.php:5');
$this->expectException(\Psalm\Exception\CodeException::class);
$this->addFile(
'somefile.php',
'<?php
class A {
/** @return void */
protected function _getCollaborators(User $user, User $cur_user = null) :
{
return $a;
}
}'
);
$this->analyzeFile('somefile.php', new Context());
}
/**
*
* @return void
*/
public function testOverriddenUse()
{
$this->expectExceptionMessage('ParseError - somefile.php:6');
$this->expectException(\Psalm\Exception\CodeException::class);
$this->addFile(
'somefile.php',
'<?php
namespace Demo;
use A\B;
interface B {}'
);
$this->analyzeFile('somefile.php', new Context());
}
}