| 
									
										
										
										
											2016-09-30 09:30:08 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | declare(strict_types = 1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace LanguageServer\Tests\Server; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-09 18:25:30 +00:00
										 |  |  | use LanguageServer\{ | 
					
						
							|  |  |  |     PhpDocument, PhpDocumentLoader, Project, DefinitionResolver | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2016-12-08 01:33:48 +00:00
										 |  |  | use LanguageServer\ContentRetriever\FileSystemContentRetriever; | 
					
						
							| 
									
										
										
										
											2017-06-09 18:25:30 +00:00
										 |  |  | use LanguageServer\Index\{ | 
					
						
							|  |  |  |     DependenciesIndex, Index, ProjectIndex | 
					
						
							| 
									
										
										
										
											2016-11-14 09:25:44 +00:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2017-06-09 18:25:30 +00:00
										 |  |  | use PHPUnit\Framework\TestCase; | 
					
						
							| 
									
										
										
										
											2016-10-11 12:42:56 +00:00
										 |  |  | use function LanguageServer\pathToUri; | 
					
						
							| 
									
										
										
										
											2016-09-30 09:30:08 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-13 00:51:02 +00:00
										 |  |  | class PhpDocumentLoaderTest extends TestCase | 
					
						
							| 
									
										
										
										
											2016-09-30 09:30:08 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2016-12-13 00:51:02 +00:00
										 |  |  |      * @var PhpDocumentLoader | 
					
						
							| 
									
										
										
										
											2016-09-30 09:30:08 +00:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-12-13 00:51:02 +00:00
										 |  |  |     private $loader; | 
					
						
							| 
									
										
										
										
											2016-09-30 09:30:08 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     public function setUp() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-12-13 00:51:02 +00:00
										 |  |  |         $projectIndex = new ProjectIndex(new Index, new DependenciesIndex); | 
					
						
							|  |  |  |         $this->loader = new PhpDocumentLoader( | 
					
						
							|  |  |  |             new FileSystemContentRetriever, | 
					
						
							|  |  |  |             $projectIndex, | 
					
						
							|  |  |  |             new DefinitionResolver($projectIndex) | 
					
						
							|  |  |  |         ); | 
					
						
							| 
									
										
										
										
											2016-09-30 09:30:08 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-13 00:51:02 +00:00
										 |  |  |     public function testGetOrLoadLoadsDocument() | 
					
						
							| 
									
										
										
										
											2016-09-30 09:30:08 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-12-13 00:51:02 +00:00
										 |  |  |         $document = $this->loader->getOrLoad(pathToUri(__FILE__))->wait(); | 
					
						
							| 
									
										
										
										
											2016-09-30 09:30:08 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $this->assertNotNull($document); | 
					
						
							|  |  |  |         $this->assertInstanceOf(PhpDocument::class, $document); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-13 00:51:02 +00:00
										 |  |  |     public function testGetReturnsOpenedInstance() | 
					
						
							| 
									
										
										
										
											2016-09-30 09:30:08 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-12-13 00:51:02 +00:00
										 |  |  |         $document1 = $this->loader->open(pathToUri(__FILE__), file_get_contents(__FILE__)); | 
					
						
							|  |  |  |         $document2 = $this->loader->get(pathToUri(__FILE__)); | 
					
						
							| 
									
										
										
										
											2016-09-30 09:30:08 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $this->assertSame($document1, $document2); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |