| 
									
										
										
										
											2016-10-08 12:51:49 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | declare(strict_types = 1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace LanguageServer\Tests\Server\TextDocument; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use PHPUnit\Framework\TestCase; | 
					
						
							|  |  |  | use LanguageServer\Tests\MockProtocolStream; | 
					
						
							| 
									
										
										
										
											2017-06-09 18:25:30 +00:00
										 |  |  | use LanguageServer\{ | 
					
						
							|  |  |  |     Server, LanguageClient, PhpDocumentLoader, DefinitionResolver | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2016-12-08 01:33:48 +00:00
										 |  |  | use LanguageServer\ContentRetriever\FileSystemContentRetriever; | 
					
						
							| 
									
										
										
										
											2016-12-13 00:51:02 +00:00
										 |  |  | use LanguageServer\Index\{Index, ProjectIndex, DependenciesIndex}; | 
					
						
							| 
									
										
										
										
											2016-10-08 12:51:49 +00:00
										 |  |  | use LanguageServer\Protocol\{ | 
					
						
							|  |  |  |     VersionedTextDocumentIdentifier, | 
					
						
							|  |  |  |     TextDocumentContentChangeEvent, | 
					
						
							|  |  |  |     Range, | 
					
						
							| 
									
										
										
										
											2017-06-09 18:25:30 +00:00
										 |  |  |     Position | 
					
						
							| 
									
										
										
										
											2016-10-08 12:51:49 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class DidChangeTest extends TestCase | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     public function test() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-12-13 00:51:02 +00:00
										 |  |  |         $projectIndex = new ProjectIndex(new Index, new DependenciesIndex); | 
					
						
							| 
									
										
										
										
											2016-10-31 10:47:21 +00:00
										 |  |  |         $client = new LanguageClient(new MockProtocolStream, new MockProtocolStream); | 
					
						
							| 
									
										
										
										
											2016-12-13 00:51:02 +00:00
										 |  |  |         $definitionResolver = new DefinitionResolver($projectIndex); | 
					
						
							|  |  |  |         $loader = new PhpDocumentLoader(new FileSystemContentRetriever, $projectIndex, $definitionResolver); | 
					
						
							|  |  |  |         $textDocument = new Server\TextDocument($loader, $definitionResolver, $client, $projectIndex); | 
					
						
							|  |  |  |         $phpDocument = $loader->open('whatever', "<?php\necho 'Hello, World'\n"); | 
					
						
							| 
									
										
										
										
											2016-10-08 12:51:49 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $identifier = new VersionedTextDocumentIdentifier('whatever'); | 
					
						
							|  |  |  |         $changeEvent = new TextDocumentContentChangeEvent(); | 
					
						
							|  |  |  |         $changeEvent->range = new Range(new Position(0, 0), new Position(9999, 9999)); | 
					
						
							|  |  |  |         $changeEvent->rangeLength = 9999; | 
					
						
							|  |  |  |         $changeEvent->text = "<?php\necho 'Goodbye, World'\n"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $textDocument->didChange($identifier, [$changeEvent]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->assertEquals("<?php\necho 'Goodbye, World'\n", $phpDocument->getContent()); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |