| 
									
										
										
										
											2016-08-25 13:27:14 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | declare(strict_types = 1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace LanguageServer\Tests; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use LanguageServer\{ProtocolReader, ProtocolWriter}; | 
					
						
							|  |  |  | use LanguageServer\Protocol\Message; | 
					
						
							| 
									
										
										
										
											2016-11-14 09:25:44 +00:00
										 |  |  | use Sabre\Event\{Loop, Emitter, Promise}; | 
					
						
							| 
									
										
										
										
											2016-08-25 13:27:14 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * A fake duplex protocol stream | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2016-10-31 10:47:21 +00:00
										 |  |  | class MockProtocolStream extends Emitter implements ProtocolReader, ProtocolWriter | 
					
						
							| 
									
										
										
										
											2016-08-25 13:27:14 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Sends a Message to the client | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param Message $msg | 
					
						
							|  |  |  |      * @return void | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-10-31 10:47:21 +00:00
										 |  |  |     public function write(Message $msg): Promise | 
					
						
							| 
									
										
										
										
											2016-08-25 13:27:14 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-11-14 09:25:44 +00:00
										 |  |  |         Loop\nextTick(function () use ($msg) { | 
					
						
							|  |  |  |             $this->emit('message', [Message::parse((string)$msg)]); | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2016-10-31 10:47:21 +00:00
										 |  |  |         return Promise\resolve(null); | 
					
						
							| 
									
										
										
										
											2016-08-25 13:27:14 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | } |