File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -54,7 +54,14 @@ private function parseMessage($message)
5454 $ key = substr ($ line , 0 , $ pos );
5555 }
5656
57- $ fields [$ key ] = $ value ;
57+ if (isset ($ fields [$ key ])) {
58+ if (!is_array ($ fields [$ key ])) {
59+ $ fields [$ key ] = array ($ fields [$ key ]);
60+ }
61+ $ fields [$ key ][] = $ value ;
62+ } else {
63+ $ fields [$ key ] = $ value ;
64+ }
5865 }
5966
6067 reset ($ fields );
Original file line number Diff line number Diff line change @@ -49,6 +49,22 @@ public function testParsingMultipleEvents()
4949 $ this ->assertEquals ('TestA ' , $ first ->getName ());
5050 }
5151
52+ public function testParseResponseMultipleValues ()
53+ {
54+ $ parser = new Parser ();
55+ $ this ->assertEquals (array (), $ parser ->push ("Asterisk Call Manager/1.3 \r\n" ));
56+
57+ $ ret = $ parser ->push ("Response: Success \r\nMessage: one \r\nMessage: two \r\n\r\n" );
58+ $ this ->assertCount (1 , $ ret );
59+
60+ $ first = reset ($ ret );
61+ /* @var $first Clue\React\Ami\Protocol\Response */
62+
63+ $ this ->assertInstanceOf ('Clue\React\Ami\Protocol\Response ' , $ first );
64+ $ this ->assertEquals ('one ' , $ first ->getFieldValue ('Message ' ));
65+ $ this ->assertEquals (array ('one ' , 'two ' ), $ first ->getFieldValues ('Message ' ));
66+ }
67+
5268 public function testParsingCommandResponse ()
5369 {
5470 $ parser = new Parser ();
You can’t perform that action at this time.
0 commit comments