70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace NoccyLabs\Mercureact\Broker;
 | 
						|
 | 
						|
use PHPUnit\Framework\Attributes\CoversClass;
 | 
						|
 | 
						|
#[CoversClass(Message::class)]
 | 
						|
class MessageTest extends \PHPUnit\Framework\TestCase
 | 
						|
{
 | 
						|
 | 
						|
    public function testCreatingMessageFromData()
 | 
						|
    {
 | 
						|
        $message = Message::fromData([
 | 
						|
            'id' => '1a',
 | 
						|
            'topic' => '2b',
 | 
						|
            'data' => '3c',
 | 
						|
            'type' => '4d',
 | 
						|
            'retry' => 42,
 | 
						|
            'private' => true,
 | 
						|
        ]);
 | 
						|
 | 
						|
        $this->assertEquals("1a", $message->id);
 | 
						|
        $this->assertEquals(["2b"], $message->topic);
 | 
						|
        $this->assertEquals("3c", $message->data);
 | 
						|
        $this->assertEquals("4d", $message->type);
 | 
						|
        $this->assertEquals(42, $message->retry);
 | 
						|
        $this->assertEquals(true, $message->private);
 | 
						|
 | 
						|
        $message = Message::fromData([
 | 
						|
            'id' => '1a',
 | 
						|
            'topic' => ['2b'],
 | 
						|
            'data' => '3c',
 | 
						|
            'type' => '4d',
 | 
						|
            'retry' => 42,
 | 
						|
            'private' => true,
 | 
						|
        ]);
 | 
						|
 | 
						|
        $this->assertEquals("1a", $message->id);
 | 
						|
        $this->assertEquals(["2b"], $message->topic);
 | 
						|
        $this->assertEquals("3c", $message->data);
 | 
						|
        $this->assertEquals("4d", $message->type);
 | 
						|
        $this->assertEquals(42, $message->retry);
 | 
						|
        $this->assertEquals(true, $message->private);
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    public function testCreatingSseFromMessage()
 | 
						|
    {
 | 
						|
        $message = Message::fromData([
 | 
						|
            'id' => '1a',
 | 
						|
            'topic' => '2b',
 | 
						|
            'data' => '3c',
 | 
						|
            'type' => '4d',
 | 
						|
            'retry' => 42,
 | 
						|
            'private' => true,
 | 
						|
        ]);
 | 
						|
        $sse = $message->toString();
 | 
						|
 | 
						|
        $this->assertEquals(<<<EXPECT
 | 
						|
        event: 4d
 | 
						|
        retry: 42
 | 
						|
        id: 1a
 | 
						|
        data: 3c
 | 
						|
 | 
						|
        
 | 
						|
        EXPECT, $sse);
 | 
						|
        
 | 
						|
    }
 | 
						|
 | 
						|
} |