graphql-php/tests/Utils/AssertValidNameTest.php
Daniel Tschinder 97e8a9e200 Move schema validation into separate step (type constructors)
This is the second step of moving work from type constructors to the schema validation function.

ref: graphql/graphql-js#1132
2018-02-15 12:14:08 +01:00

48 lines
1.1 KiB
PHP

<?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('>--()-->');
}
}