MessageTest.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * Test case for Message subsection.
  4. */
  5. declare(strict_types=1);
  6. namespace WebSocket;
  7. use PHPUnit\Framework\TestCase;
  8. use WebSocket\Message\Factory;
  9. use WebSocket\Message\Text;
  10. class MessageTest extends TestCase
  11. {
  12. public function setUp(): void
  13. {
  14. error_reporting(-1);
  15. }
  16. public function testFactory(): void
  17. {
  18. $factory = new Factory();
  19. $message = $factory->create('text', 'Some content');
  20. $this->assertInstanceOf('WebSocket\Message\Text', $message);
  21. $message = $factory->create('binary', 'Some content');
  22. $this->assertInstanceOf('WebSocket\Message\Binary', $message);
  23. $message = $factory->create('ping', 'Some content');
  24. $this->assertInstanceOf('WebSocket\Message\Ping', $message);
  25. $message = $factory->create('pong', 'Some content');
  26. $this->assertInstanceOf('WebSocket\Message\Pong', $message);
  27. $message = $factory->create('close', 'Some content');
  28. $this->assertInstanceOf('WebSocket\Message\Close', $message);
  29. }
  30. public function testMessage()
  31. {
  32. $message = new Text('Some content');
  33. $this->assertInstanceOf('WebSocket\Message\Message', $message);
  34. $this->assertInstanceOf('WebSocket\Message\Text', $message);
  35. $this->assertEquals('Some content', $message->getContent());
  36. $this->assertEquals('text', $message->getOpcode());
  37. $this->assertEquals(12, $message->getLength());
  38. $this->assertTrue($message->hasContent());
  39. $this->assertInstanceOf('DateTime', $message->getTimestamp());
  40. $message->setContent('');
  41. $this->assertEquals(0, $message->getLength());
  42. $this->assertFalse($message->hasContent());
  43. $this->assertEquals('WebSocket\Message\Text', "{$message}");
  44. }
  45. public function testBadOpcode()
  46. {
  47. $factory = new Factory();
  48. $this->expectException('WebSocket\BadOpcodeException');
  49. $this->expectExceptionMessage("Invalid opcode 'invalid' provided");
  50. $message = $factory->create('invalid', 'Some content');
  51. }
  52. }