2018-02-15 14:14:08 +03:00
|
|
|
<?php
|
|
|
|
namespace GraphQL\Tests\Utils;
|
|
|
|
|
|
|
|
use GraphQL\Error\Error;
|
|
|
|
use GraphQL\Error\InvariantViolation;
|
|
|
|
use GraphQL\Utils\Utils;
|
2018-07-29 18:43:10 +03:00
|
|
|
use PHPUnit\Framework\TestCase;
|
2018-02-15 14:14:08 +03:00
|
|
|
|
2018-07-29 18:43:10 +03:00
|
|
|
class AssertValidNameTest extends TestCase
|
2018-02-15 14:14:08 +03:00
|
|
|
{
|
|
|
|
// Describe: assertValidName()
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @it throws for use of leading double underscores
|
|
|
|
*/
|
|
|
|
public function testThrowsForUseOfLeadingDoubleUnderscores()
|
|
|
|
{
|
2018-07-29 18:43:10 +03:00
|
|
|
$this->expectException(Error::class);
|
|
|
|
$this->expectExceptionMessage('"__bad" must not begin with "__", which is reserved by GraphQL introspection.');
|
2018-02-15 14:14:08 +03:00
|
|
|
Utils::assertValidName('__bad');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @it throws for non-strings
|
|
|
|
*/
|
|
|
|
public function testThrowsForNonStrings()
|
|
|
|
{
|
2018-07-29 18:43:10 +03:00
|
|
|
$this->expectException(InvariantViolation::class);
|
|
|
|
$this->expectExceptionMessage('Expected string');
|
2018-02-15 14:14:08 +03:00
|
|
|
Utils::assertValidName([]);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @it throws for names with invalid characters
|
|
|
|
*/
|
|
|
|
public function testThrowsForNamesWithInvalidCharacters()
|
|
|
|
{
|
2018-07-29 18:43:10 +03:00
|
|
|
$this->expectException(Error::class);
|
|
|
|
$this->expectExceptionMessage('Names must match');
|
2018-02-15 14:14:08 +03:00
|
|
|
Utils::assertValidName('>--()-->');
|
|
|
|
}
|
|
|
|
}
|