graphql-php/tests/Utils/AssertValidNameTest.php

48 lines
1.1 KiB
PHP
Raw Normal View History

<?php
namespace GraphQL\Tests\Utils;
use GraphQL\Error\Error;
use GraphQL\Error\InvariantViolation;
use GraphQL\Utils\Utils;
class AssertValidNameTest extends \PHPUnit_Framework_TestCase
{
// Describe: assertValidName()
/**
* @it throws for use of leading double underscores
*/
public function testThrowsForUseOfLeadingDoubleUnderscores()
{
$this->setExpectedException(
Error::class,
'"__bad" must not begin with "__", which is reserved by GraphQL introspection.'
);
Utils::assertValidName('__bad');
}
/**
* @it throws for non-strings
*/
public function testThrowsForNonStrings()
{
$this->setExpectedException(
InvariantViolation::class,
'Expected string'
);
Utils::assertValidName([]);
}
/**
* @it throws for names with invalid characters
*/
public function testThrowsForNamesWithInvalidCharacters()
{
$this->setExpectedException(
Error::class,
'Names must match'
);
Utils::assertValidName('>--()-->');
}
}