Files
faveo/vendor/phpspec/phpspec/spec/PhpSpec/CodeAnalysis/TokenizedNamespaceResolverSpec.php
2016-01-04 18:05:45 +05:30

106 lines
1.8 KiB
PHP

<?php
namespace spec\PhpSpec\CodeAnalysis;
use PhpSpec\ObjectBehavior;
use Prophecy\Argument;
class TokenizedNamespaceResolverSpec extends ObjectBehavior
{
function it_is_initializable()
{
$this->shouldHaveType('PhpSpec\CodeAnalysis\NamespaceResolver');
}
function it_resolves_types_outside_of_namespaces()
{
$this->analyse('
<?php
class Foo
{
}
');
$this->resolve('Bar')->shouldReturn('Bar');
$this->resolve('Bar')->shouldReturn('Bar');
}
function it_resolves_types_from_current_namespace()
{
$this->analyse('
<?php
namespace Baz;
class Foo
{
}
');
$this->resolve('Foo')->shouldReturn('Baz\Foo');
$this->resolve('Bar')->shouldReturn('Baz\Bar');
}
function it_resolves_types_with_use_statements()
{
$this->analyse('
<?php
namespace Baz;
use Boz\Bar;
class Foo
{
}
');
$this->resolve('Foo')->shouldReturn('Baz\Foo');
$this->resolve('Bar')->shouldReturn('Boz\Bar');
}
function it_resolves_types_with_use_aliases()
{
$this->analyse('
<?php
namespace Baz;
use Boz\Bar as Biz;
class Foo
{
}
');
$this->resolve('Foo')->shouldReturn('Baz\Foo');
$this->resolve('Biz')->shouldReturn('Boz\Bar');
}
function it_resolves_types_with_partial_use_statements()
{
$this->analyse('
<?php
namespace Baz;
use Boz\Bar;
class Foo
{
function it_something(Bar\Baz $boz)
{
}
}
');
$this->resolve('Foo')->shouldReturn('Baz\Foo');
$this->resolve('Bar\Baz')->shouldReturn('Boz\Bar\Baz');
}
}