52 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace NoccyLabs\React\WebSocket\Group;
 | |
| 
 | |
| use NoccyLabs\React\WebSocket\WebSocketConnection;
 | |
| use PHPUnit\Framework\Attributes\CoversClass;
 | |
| use React\Http\Message\ServerRequest;
 | |
| use React\Stream\ThroughStream;
 | |
| 
 | |
| #[CoversClass(ConnectionGroup::class)]
 | |
| class ConnectionGroupTest extends \PHPUnit\Framework\TestCase
 | |
| {
 | |
| 
 | |
|     public function testThatGroupsAreCountable()
 | |
|     {
 | |
|         $groupManager = new GroupManager();
 | |
|         
 | |
|         $group = new ConnectionGroup();
 | |
|         $this->assertEquals(0, count($group));
 | |
|         $group->add(new WebSocketConnection(new ServerRequest('GET','/'),new ThroughStream(), new ThroughStream(), $groupManager));
 | |
|         $this->assertEquals(1, count($group));
 | |
|         $group->add(new WebSocketConnection(new ServerRequest('GET','/'),new ThroughStream(), new ThroughStream(), $groupManager));
 | |
|         $this->assertEquals(2, count($group));
 | |
|         $group->add(new WebSocketConnection(new ServerRequest('GET','/'),new ThroughStream(), new ThroughStream(), $groupManager));
 | |
|         $this->assertEquals(3, count($group));
 | |
|     }
 | |
| 
 | |
|     public function testThatGroupNamesAreAssignedUniquely()
 | |
|     {
 | |
|         $group = new ConnectionGroup();
 | |
|         $this->assertNotEmpty($group->getName());
 | |
| 
 | |
|         $group2 = new ConnectionGroup();
 | |
|         $this->assertNotEmpty($group2->getName());
 | |
| 
 | |
|         $this->assertNotEquals($group->getName(), $group2->getName());
 | |
|     }
 | |
| 
 | |
|     public function testWritingToAll()
 | |
|     {
 | |
|         $groupManager = new GroupManager();
 | |
|         
 | |
|         $r = [];
 | |
|         $group = new ConnectionGroup();
 | |
|         $group->add(new WebSocketConnection(new ServerRequest('GET','/'),new ThroughStream(), new ThroughStream(function ($data) use (&$r) { $r[]=$data; }), $groupManager));
 | |
|         $group->add(new WebSocketConnection(new ServerRequest('GET','/'),new ThroughStream(), new ThroughStream(function ($data) use (&$r) { $r[]=$data; }), $groupManager));
 | |
|         $group->add(new WebSocketConnection(new ServerRequest('GET','/'),new ThroughStream(), new ThroughStream(function ($data) use (&$r) { $r[]=$data; }), $groupManager));
 | |
|         $group->writeAll("test");
 | |
|         $this->assertEquals(3, count($r));
 | |
|     }
 | |
| 
 | |
| } |