|
10 | 10 | namespace WebSocket\Test\Message; |
11 | 11 |
|
12 | 12 | use DomainException; |
13 | | -use InvalidArgumentException; |
14 | 13 | use PHPUnit\Framework\TestCase; |
15 | | -use Phrity\Net\Mock\SocketStream; |
16 | | -use Phrity\Net\Mock\Stack\{ |
17 | | - ExpectContextTrait, |
18 | | - ExpectSocketStreamTrait, |
19 | | -}; |
20 | 14 | use RangeException; |
21 | | -use Stringable; |
22 | 15 | use WebSocket\Exception\BadOpcodeException; |
23 | | -use WebSocket\Frame\{ |
24 | | - Frame, |
25 | | - FrameHandler |
26 | | -}; |
27 | 16 | use WebSocket\Message\{ |
28 | 17 | Message, |
29 | 18 | Binary, |
|
32 | 21 | Ping, |
33 | 22 | Pong, |
34 | 23 | Text, |
35 | | - MessageHandler |
36 | 24 | }; |
| 25 | +use WebSocket\Test\MockOpcodeRegistry; |
37 | 26 |
|
38 | 27 | /** |
39 | 28 | * Test case for WebSocket\Message\OpcodeRegistry. |
@@ -105,4 +94,24 @@ public function testCreateMessageInvalidOpcode(): void |
105 | 94 | // @phpstan-ignore argument.type |
106 | 95 | $opcodeRegistry->createMessage(16); |
107 | 96 | } |
| 97 | + |
| 98 | + public function testCreateMessageUnexistingClass(): void |
| 99 | + { |
| 100 | + $opcodeRegistry = new MockOpcodeRegistry(); |
| 101 | + $opcodeRegistry->mockBind(1, 'UnexistingClass'); |
| 102 | + $this->expectException(BadOpcodeException::class); |
| 103 | + $this->expectExceptionMessage('Implementation class "UnexistingClass" for opcode 1 not found'); |
| 104 | + $opcodeRegistry->createMessage(1); |
| 105 | + } |
| 106 | + |
| 107 | + public function testCreateMessageInvalidClass(): void |
| 108 | + { |
| 109 | + $opcodeRegistry = new MockOpcodeRegistry(); |
| 110 | + $opcodeRegistry->mockBind(2, $opcodeRegistry::class); |
| 111 | + $this->expectException(BadOpcodeException::class); |
| 112 | + $this->expectExceptionMessage( |
| 113 | + 'Implementation class WebSocket\Test\MockOpcodeRegistry must extend WebSocket\Message\Message' |
| 114 | + ); |
| 115 | + $opcodeRegistry->createMessage(2); |
| 116 | + } |
108 | 117 | } |
0 commit comments