@@ -9,53 +9,85 @@ class MessageEventTest extends TestCase
99{
1010 public function testParseSimpleData ()
1111 {
12- $ message = MessageEvent::parse ("data: hello " );
12+ $ message = MessageEvent::parse ("data: hello " , '' );
1313
1414 $ this ->assertEquals ('hello ' , $ message ->data );
1515 }
1616
1717 public function testParseDataOverTwoLinesWillBeCombined ()
1818 {
19- $ message = MessageEvent::parse ("data: hello \ndata: world " );
19+ $ message = MessageEvent::parse ("data: hello \ndata: world " , '' );
2020
2121 $ this ->assertEquals ("hello \nworld " , $ message ->data );
2222 }
2323
2424 public function testParseDataOverTwoLinesWithCarrigeReturnsWillBeCombinedWithNewline ()
2525 {
26- $ message = MessageEvent::parse ("data: hello \rdata: world " );
26+ $ message = MessageEvent::parse ("data: hello \rdata: world " , '' );
2727
2828 $ this ->assertEquals ("hello \nworld " , $ message ->data );
2929 }
3030
3131 public function testParseDataOverTwoLinesWithCarrigeReturnsAndNewlinesWillBeCombinedWithNewline ()
3232 {
33- $ message = MessageEvent::parse ("data: hello \r\ndata: world " );
33+ $ message = MessageEvent::parse ("data: hello \r\ndata: world " , '' );
3434
3535 $ this ->assertEquals ("hello \nworld " , $ message ->data );
3636 }
3737
3838 public function testParseDataWithTrailingNewlineOverTwoLines ()
3939 {
40- $ message = MessageEvent::parse ("data: hello \ndata: " );
40+ $ message = MessageEvent::parse ("data: hello \ndata: " , '' );
4141
4242 $ this ->assertEquals ("hello \n" , $ message ->data );
4343 }
4444
4545 public function testParseDataWithCarrigeReturnOverTwoLines ()
4646 {
47- $ message = MessageEvent::parse ("data: hello \rdata: " );
47+ $ message = MessageEvent::parse ("data: hello \rdata: " , '' );
4848
4949 $ this ->assertEquals ("hello \n" , $ message ->data );
5050 }
5151
5252 public function testParseDataWithCarrigeReturnAndNewlineOverTwoLines ()
5353 {
54- $ message = MessageEvent::parse ("data: hello \r\ndata: " );
54+ $ message = MessageEvent::parse ("data: hello \r\ndata: " , '' );
5555
5656 $ this ->assertEquals ("hello \n" , $ message ->data );
5757 }
5858
59+ public function testParseReturnsMessageWithIdFromStream ()
60+ {
61+ $ message = MessageEvent::parse ("data: hello \r\nid: 1 " , '' );
62+
63+ $ this ->assertEquals ("hello " , $ message ->data );
64+ $ this ->assertEquals ('1 ' , $ message ->lastEventId );
65+ }
66+
67+ public function testParseWithoutIdReturnsMessageWithIdFromLastEventId ()
68+ {
69+ $ message = MessageEvent::parse ("data: hello " , '1 ' );
70+
71+ $ this ->assertEquals ("hello " , $ message ->data );
72+ $ this ->assertEquals ('1 ' , $ message ->lastEventId );
73+ }
74+
75+ public function testParseWithoutIdReturnsMessageWithEmptyIdIfLastEventIdIsEmpty ()
76+ {
77+ $ message = MessageEvent::parse ("data: hello " , '' );
78+
79+ $ this ->assertEquals ("hello " , $ message ->data );
80+ $ this ->assertEquals ('' , $ message ->lastEventId );
81+ }
82+
83+ public function testParseWithMultipleIdsReturnsMessageWithLastEventIdFromStream ()
84+ {
85+ $ message = MessageEvent::parse ("data: hello \nid: 1 \nid: 2 " , '0 ' );
86+
87+ $ this ->assertEquals ("hello " , $ message ->data );
88+ $ this ->assertEquals ('2 ' , $ message ->lastEventId );
89+ }
90+
5991 public function retryTimeDataProvider ()
6092 {
6193 return [
@@ -75,7 +107,7 @@ public function retryTimeDataProvider()
75107 */
76108 public function testParseRetryTime ($ input , $ expected )
77109 {
78- $ message = MessageEvent::parse ($ input );
110+ $ message = MessageEvent::parse ($ input, '' );
79111
80112 $ this ->assertSame ($ expected , $ message ->retry );
81113 }
0 commit comments