55
66namespace Nexmo \Voice \Message ;
77
8- class MessageTest extends PHPUnit_Framework_TestCase
8+ class MessageTest extends \ PHPUnit_Framework_TestCase
99{
10+ /**
11+ * @var Message
12+ */
1013 protected $ message ;
1114
1215 protected $ text = 'TTS Text ' ;
@@ -18,5 +21,97 @@ public function setUp()
1821 $ this ->message = new Message ($ this ->text , $ this ->to , $ this ->from );
1922 }
2023
24+ public function testConstructorParams ()
25+ {
26+ $ params = $ this ->message ->getParams ();
27+
28+ $ this ->assertArrayHasKey ('text ' , $ params );
29+ $ this ->assertArrayHasKey ('to ' , $ params );
30+ $ this ->assertArrayHasKey ('from ' , $ params );
31+
32+ $ this ->assertEquals ($ this ->text , $ params ['text ' ]);
33+ $ this ->assertEquals ($ this ->to , $ params ['to ' ]);
34+ $ this ->assertEquals ($ this ->from , $ params ['from ' ]);
35+ }
36+
37+ public function testFromIsOptional ()
38+ {
39+ $ message = new Message ($ this ->text , $ this ->to );
40+
41+ $ params = $ message ->getParams ();
42+ $ this ->assertArrayNotHasKey ('from ' , $ params );
43+ }
44+
45+ public function testCallback ()
46+ {
47+ $ this ->message ->setCallback ('http://example.com ' );
48+ $ params = $ this ->message ->getParams ();
49+ $ this ->assertArrayHasKey ('callback ' , $ params );
50+ $ this ->assertEquals ('http://example.com ' , $ params ['callback ' ]);
51+ $ this ->assertArrayNotHasKey ('callback_method ' , $ params );
52+
53+ $ this ->message ->setCallback ('http://example.com ' , 'POST ' );
54+ $ params = $ this ->message ->getParams ();
55+ $ this ->assertArrayHasKey ('callback ' , $ params );
56+ $ this ->assertEquals ('http://example.com ' , $ params ['callback ' ]);
57+ $ this ->assertArrayHasKey ('callback_method ' , $ params );
58+ $ this ->assertEquals ('POST ' , $ params ['callback_method ' ]);
59+
60+ $ this ->message ->setCallback ('http://example.com ' );
61+ $ params = $ this ->message ->getParams ();
62+ $ this ->assertArrayHasKey ('callback ' , $ params );
63+ $ this ->assertEquals ('http://example.com ' , $ params ['callback ' ]);
64+ $ this ->assertArrayNotHasKey ('callback_method ' , $ params );
65+ }
66+
67+ public function testMachine ()
68+ {
69+ $ this ->message ->setMachineDetection ();
70+ $ params = $ this ->message ->getParams ();
71+ $ this ->assertArrayHasKey ('machine_detection ' , $ params );
72+ $ this ->assertArrayNotHasKey ('machine_timeout ' , $ params );
73+ $ this ->assertEquals ('hangup ' , $ params ['machine_detection ' ]);
74+
75+ $ this ->message ->setMachineDetection (true , 100 );
76+ $ params = $ this ->message ->getParams ();
77+ $ this ->assertArrayHasKey ('machine_detection ' , $ params );
78+ $ this ->assertArrayHasKey ('machine_timeout ' , $ params );
79+ $ this ->assertEquals ('hangup ' , $ params ['machine_detection ' ]);
80+ $ this ->assertEquals (100 , $ params ['machine_timeout ' ]);
81+
82+ $ this ->message ->setMachineDetection (false );
83+ $ params = $ this ->message ->getParams ();
84+ $ this ->assertArrayHasKey ('machine_detection ' , $ params );
85+ $ this ->assertArrayNotHasKey ('machine_timeout ' , $ params );
86+ $ this ->assertEquals ('true ' , $ params ['machine_detection ' ]);
87+ }
88+
89+ /**
90+ * @dataProvider optionalParams
91+ */
92+ public function testOptionalParams ($ setter , $ param , $ values )
93+ {
94+ //check no default value
95+ $ params = $ this ->message ->getParams ();
96+ $ this ->assertArrayNotHasKey ($ param , $ params );
97+
98+ //test values
99+ foreach ($ values as $ value => $ expected ){
100+ $ this ->message ->$ setter ($ value );
101+ $ params = $ this ->message ->getParams ();
102+ $ this ->assertArrayHasKey ($ param , $ params );
103+ $ this ->assertEquals ($ expected , $ params [$ param ]);
104+ }
105+ }
106+
107+ public function optionalParams ()
108+ {
109+ return array (
110+ array ('setLanguage ' , 'lg ' , array ('test ' => 'test ' )),
111+ array ('setVoice ' , 'voice ' , array ('test ' => 'test ' )),
112+ array ('setRepeat ' , 'repeat ' , array (2 => 2 )),
113+ );
114+ }
115+
21116}
22117
0 commit comments