%PDF- %PDF-
| Direktori : /home/bitrix/www/local/php_interface/lib/vendor/rize/uri-template/test/Rize/Uri/Node/ |
| Current File : /home/bitrix/www/local/php_interface/lib/vendor/rize/uri-template/test/Rize/Uri/Node/ParserTest.php |
<?php
use Rize\UriTemplate;
use Rize\UriTemplate\Node;
use Rize\UriTemplate\Operator;
use Rize\UriTemplate\Parser;
class ParserTest extends PHPUnit_Framework_TestCase
{
protected function service()
{
return new Parser;
}
public function testParseTemplate()
{
$input = 'http://www.example.com/{term:1}/{term}/{test*}/foo{?query,number}';
$expected = array(
new Node\Literal('http://www.example.com/'),
new Node\Expression(
'term:1',
Operator\Abstraction::createById(''),
array(
new Node\Variable(
'term:1',
array(
'modifier' => ':',
'value' => 1,
)
),
)
),
new Node\Literal('/'),
new Node\Expression(
'term',
Operator\Abstraction::createById(''),
array(
new Node\Variable(
'term',
array(
'modifier' => null,
'value' => null,
)
),
)
),
new Node\Literal('/'),
new Node\Expression(
'test*',
Operator\Abstraction::createById(''),
array(
new Node\Variable(
'test',
array(
'modifier' => '*',
'value' => null,
)
),
)
),
new Node\Literal('/foo'),
new Node\Expression(
'query,number',
Operator\Abstraction::createById('?'),
array(
new Node\Variable(
'query',
array(
'modifier' => null,
'value' => null,
)
),
new Node\Variable(
'number',
array(
'modifier' => null,
'value' => null,
)
),
)
),
);
$service = $this->service();
$actual = $service->parse($input);
$this->assertEquals($expected, $actual);
}
public function testParseTemplateWithLiteral()
{
// will pass
$uri = new UriTemplate('http://www.example.com/v1/company/', array());
$params = $uri->extract('/{countryCode}/{registrationNumber}/test{.format}', '/gb/0123456/test.json');
static::assertEquals(array('countryCode' => 'gb', 'registrationNumber' => '0123456', 'format' => 'json'), $params);
}
/**
* @depends testParseTemplateWithLiteral
*/
public function testParseTemplateWithTwoVariablesAndDotBetween()
{
// will fail
$uri = new UriTemplate('http://www.example.com/v1/company/', array());
$params = $uri->extract('/{countryCode}/{registrationNumber}{.format}', '/gb/0123456.json');
static::assertEquals(array('countryCode' => 'gb', 'registrationNumber' => '0123456', 'format' => 'json'), $params);
}
/**
* @ depends testParseTemplateWithLiteral
*/
public function testParseTemplateWithTwoVariablesAndDotBetweenStrict()
{
// will fail
$uri = new UriTemplate('http://www.example.com/v1/company/', array());
$params = $uri->extract('/{countryCode}/{registrationNumber}{.format}', '/gb/0123456.json', true);
static::assertEquals(array('countryCode' => 'gb', 'registrationNumber' => '0123456', 'format' => 'json'), $params);
}
/**
* @ depends testParseTemplateWithLiteral
*/
public function testParseTemplateWithThreeVariablesAndDotBetweenStrict()
{
// will fail
$uri = new UriTemplate('http://www.example.com/v1/company/', array());
$params = $uri->extract('/{countryCode}/{registrationNumber}{.namespace}{.format}', '/gb/0123456.company.json');
static::assertEquals(array('countryCode' => 'gb', 'registrationNumber' => '0123456', 'namespace' => 'company', 'format' => 'json'), $params);
}
}