forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use PhpParser\Builder;
							 | 
						||
| 
								 | 
							
								use PhpParser\Node\Name;
							 | 
						||
| 
								 | 
							
								use PhpParser\Node\Stmt;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class UseTest extends \PHPUnit_Framework_TestCase
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    protected function createUseBuilder($name, $type = Stmt\Use_::TYPE_NORMAL) {
							 | 
						||
| 
								 | 
							
								        return new Builder\Use_($name, $type);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testCreation() {
							 | 
						||
| 
								 | 
							
								        $node = $this->createUseBuilder('Foo\Bar')->getNode();
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(new Stmt\Use_(array(
							 | 
						||
| 
								 | 
							
								            new Stmt\UseUse(new Name('Foo\Bar'), 'Bar')
							 | 
						||
| 
								 | 
							
								        )), $node);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $node = $this->createUseBuilder(new Name('Foo\Bar'))->as('XYZ')->getNode();
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(new Stmt\Use_(array(
							 | 
						||
| 
								 | 
							
								            new Stmt\UseUse(new Name('Foo\Bar'), 'XYZ')
							 | 
						||
| 
								 | 
							
								        )), $node);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $node = $this->createUseBuilder('foo\bar', Stmt\Use_::TYPE_FUNCTION)->as('foo')->getNode();
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(new Stmt\Use_(array(
							 | 
						||
| 
								 | 
							
								            new Stmt\UseUse(new Name('foo\bar'), 'foo')
							 | 
						||
| 
								 | 
							
								        ), Stmt\Use_::TYPE_FUNCTION), $node);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testNonExistingMethod() {
							 | 
						||
| 
								 | 
							
								        $this->setExpectedException('LogicException', 'Method "foo" does not exist');
							 | 
						||
| 
								 | 
							
								        $builder = $this->createUseBuilder('Test');
							 | 
						||
| 
								 | 
							
								        $builder->foo();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |