ConferenceCallTest.php 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Service_DeveloperGarden
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. * @version $Id$
  21. */
  22. if (!defined('PHPUnit_MAIN_METHOD')) {
  23. define('PHPUnit_MAIN_METHOD', 'Zend_Service_DeveloperGarden_ConferenceCallTest::main');
  24. }
  25. /**
  26. * Test helper
  27. */
  28. require_once dirname(__FILE__) . '/../../../TestHelper.php';
  29. /**
  30. * @see Zend_Service_DeveloperGarden_ConferenceCall
  31. */
  32. require_once 'Zend/Service/DeveloperGarden/ConferenceCall.php';
  33. /**
  34. * Zend_Service_DeveloperGarden test case
  35. *
  36. * @category Zend
  37. * @package Zend_Service_DeveloperGarden
  38. * @subpackage UnitTests
  39. * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
  40. * @license http://framework.zend.com/license/new-bsd New BSD License
  41. * @version $Id$
  42. */
  43. class Zend_Service_DeveloperGarden_ConferenceCallTest extends PHPUnit_Framework_TestCase
  44. {
  45. /**
  46. * @var Zend_Service_DeveloperGarden_ConferenceCall
  47. */
  48. protected $_service = null;
  49. public static function main()
  50. {
  51. $suite = new PHPUnit_Framework_TestSuite(__CLASS__);
  52. PHPUnit_TextUI_TestRunner::run($suite);
  53. }
  54. public function setUp()
  55. {
  56. if (!defined('TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_ENABLED') ||
  57. TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_ENABLED !== true) {
  58. $this->markTestSkipped('TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_ENABLED is not enabled');
  59. }
  60. if (!defined('TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_LOGIN')) {
  61. define('TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_LOGIN', 'Unknown');
  62. }
  63. if (!defined('TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_PASSWORD')) {
  64. define('TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_PASSWORD', 'Unknown');
  65. }
  66. $config = array(
  67. 'username' => TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_LOGIN,
  68. 'password' => TESTS_ZEND_SERVICE_DEVELOPERGARDEN_ONLINE_PASSWORD,
  69. 'environment' => Zend_Service_DeveloperGarden_ConferenceCall_Mock::ENV_MOCK
  70. );
  71. $this->service = new Zend_Service_DeveloperGarden_ConferenceCall_Mock($config);
  72. }
  73. public function testCreateConference()
  74. {
  75. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  76. 'My Name',
  77. 'This is the Conference Description',
  78. 300
  79. );
  80. try {
  81. $result = $this->service->createConference(
  82. $conferenceDetails->getName(),
  83. $conferenceDetails
  84. );
  85. } catch (Exception $e) {
  86. if ($e->getMessage() != 'quotas have exceeded') {
  87. throw $e;
  88. } else {
  89. $this->markTestSkipped('Quota exceeded.');
  90. }
  91. }
  92. $this->assertType(
  93. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  94. $result
  95. );
  96. $this->assertNotNull($result->getConferenceId());
  97. $this->assertTrue($result->isValid());
  98. $this->assertEquals('0000', $result->getErrorCode());
  99. $this->assertNotNull($result->getErrorMessage());
  100. }
  101. /**
  102. * @expectedException Zend_Service_DeveloperGarden_Response_Exception
  103. */
  104. public function testCreateConferenceWrongDurationException()
  105. {
  106. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  107. 'My Name',
  108. 'This is the Conference Description',
  109. -1
  110. );
  111. try {
  112. $result = $this->service->createConference(
  113. $conferenceDetails->getName(),
  114. $conferenceDetails
  115. );
  116. } catch (Exception $e) {
  117. if ($e->getMessage() != 'quotas have exceeded') {
  118. throw $e;
  119. } else {
  120. $this->markTestSkipped('Quota exceeded.');
  121. }
  122. }
  123. $this->assertType(
  124. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  125. $result
  126. );
  127. }
  128. public function testUpdateConference()
  129. {
  130. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  131. 'My Name',
  132. 'This is the Conference Description',
  133. 300
  134. );
  135. try {
  136. $result = $this->service->createConference(
  137. $conferenceDetails->getName(),
  138. $conferenceDetails
  139. );
  140. } catch (Exception $e) {
  141. if ($e->getMessage() != 'quotas have exceeded') {
  142. throw $e;
  143. } else {
  144. $this->markTestSkipped('Quota exceeded.');
  145. }
  146. }
  147. $this->assertType(
  148. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  149. $result
  150. );
  151. $conferenceId = $result->getConferenceId();
  152. $this->assertNotNull($conferenceId);
  153. $this->assertType(
  154. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  155. $conferenceDetails->setName('Marco Kaiser')
  156. );
  157. $this->assertType(
  158. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  159. $conferenceDetails->setDescription('Zend Framework')
  160. );
  161. $this->assertType(
  162. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  163. $conferenceDetails->setDuration(600)
  164. );
  165. $result = $this->service->updateConference(
  166. $conferenceId,
  167. 'My Name',
  168. $conferenceDetails
  169. );
  170. $this->assertType(
  171. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  172. $result
  173. );
  174. $this->assertEquals('0000', $result->getStatusCode());
  175. $this->assertNotNull($result->getStatusMessage());
  176. }
  177. public function testNewParticipant()
  178. {
  179. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  180. 'My Name',
  181. 'This is the Conference Description',
  182. 300
  183. );
  184. try {
  185. $result = $this->service->createConference(
  186. $conferenceDetails->getName(),
  187. $conferenceDetails
  188. );
  189. } catch (Exception $e) {
  190. if ($e->getMessage() != 'quotas have exceeded') {
  191. throw $e;
  192. } else {
  193. $this->markTestSkipped('Quota exceeded.');
  194. }
  195. }
  196. $this->assertType(
  197. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  198. $result
  199. );
  200. $conferenceId = $result->getConferenceId();
  201. $this->assertNotNull($conferenceId);
  202. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  203. 'Marco',
  204. 'Kaiser',
  205. '+49 32 0000 0001',
  206. 'bate@php.net',
  207. true
  208. );
  209. $result = $this->service->newParticipant($conferenceId, $participant);
  210. $this->assertType(
  211. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  212. $result
  213. );
  214. $this->assertNotNull($result->getParticipantId());
  215. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  216. 'Marco',
  217. 'Kaiser',
  218. '+49 32 0000 0002',
  219. 'bate@php.net'
  220. );
  221. $result = $this->service->newParticipant($conferenceId, $participant);
  222. $this->assertType(
  223. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  224. $result
  225. );
  226. $this->assertNotNull($result->getParticipantId());
  227. }
  228. public function testUpdateParticipant()
  229. {
  230. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  231. 'My Name',
  232. 'This is the Conference Description',
  233. 300
  234. );
  235. try {
  236. $result = $this->service->createConference(
  237. $conferenceDetails->getName(),
  238. $conferenceDetails
  239. );
  240. } catch (Exception $e) {
  241. if ($e->getMessage() != 'quotas have exceeded') {
  242. throw $e;
  243. } else {
  244. $this->markTestSkipped('Quota exceeded.');
  245. }
  246. }
  247. $this->assertType(
  248. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  249. $result
  250. );
  251. $conferenceId = $result->getConferenceId();
  252. $this->assertNotNull($conferenceId);
  253. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  254. 'Marco',
  255. 'Kaiser',
  256. '+49 32 0000 0001',
  257. 'bate@php.net',
  258. true
  259. );
  260. $result = $this->service->newParticipant($conferenceId, $participant);
  261. $this->assertType(
  262. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  263. $result
  264. );
  265. $participantId = $result->getParticipantId();
  266. $this->assertNotNull($participantId);
  267. foreach ($this->service->getParticipantActions() as $k => $v) {
  268. $result = $this->service->updateParticipant(
  269. $conferenceId,
  270. $participantId,
  271. $k,
  272. $participant
  273. );
  274. $this->assertType(
  275. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  276. $result
  277. );
  278. }
  279. }
  280. /**
  281. * @expectedException Zend_Service_DeveloperGarden_Client_Exception
  282. */
  283. public function testUpdateParticipantException()
  284. {
  285. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  286. 'My Name',
  287. 'This is the Conference Description',
  288. 300
  289. );
  290. try {
  291. $result = $this->service->createConference(
  292. $conferenceDetails->getName(),
  293. $conferenceDetails
  294. );
  295. } catch (Exception $e) {
  296. if ($e->getMessage() != 'quotas have exceeded') {
  297. throw $e;
  298. } else {
  299. $this->markTestSkipped('Quota exceeded.');
  300. }
  301. }
  302. $this->assertType(
  303. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  304. $result
  305. );
  306. $conferenceId = $result->getConferenceId();
  307. $this->assertNotNull($conferenceId);
  308. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  309. 'Marco',
  310. 'Kaiser',
  311. '+49 32 0000 0001',
  312. 'bate@php.net',
  313. true
  314. );
  315. $result = $this->service->newParticipant($conferenceId, $participant);
  316. $this->assertType(
  317. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  318. $result
  319. );
  320. $participantId = $result->getParticipantId();
  321. $this->assertNotNull($participantId);
  322. $this->assertNull($this->service->updateParticipant(
  323. $conferenceId,
  324. $participantId,
  325. -1,
  326. $participant
  327. ));
  328. }
  329. public function testUpdateParticipantCheckStatus()
  330. {
  331. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  332. 'My Name',
  333. 'This is the Conference Description',
  334. 300
  335. );
  336. try {
  337. $result = $this->service->createConference(
  338. $conferenceDetails->getName(),
  339. $conferenceDetails
  340. );
  341. } catch (Exception $e) {
  342. if ($e->getMessage() != 'quotas have exceeded') {
  343. throw $e;
  344. } else {
  345. $this->markTestSkipped('Quota exceeded.');
  346. }
  347. }
  348. $this->assertType(
  349. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  350. $result
  351. );
  352. $conferenceId = $result->getConferenceId();
  353. $this->assertNotNull($conferenceId);
  354. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  355. 'Marco',
  356. 'Kaiser',
  357. '+49 32 0000 0001',
  358. 'bate@php.net',
  359. true
  360. );
  361. $result = $this->service->newParticipant($conferenceId, $participant);
  362. $this->assertType(
  363. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  364. $result
  365. );
  366. $participantId = $result->getParticipantId();
  367. $this->assertNotNull($participantId);
  368. $result = $this->service->updateParticipant(
  369. $conferenceId,
  370. $participantId,
  371. Zend_Service_DeveloperGarden_ConferenceCall_Mock::PARTICIPANT_MUTE_ON,
  372. $participant
  373. );
  374. $this->assertType(
  375. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  376. $result
  377. );
  378. $result = $this->service->getParticipantStatus($conferenceId, $participantId);
  379. $this->assertType(
  380. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType',
  381. $result
  382. );
  383. $status = $result->getStatus();
  384. $this->assertType(
  385. 'array',
  386. $status
  387. );
  388. foreach ($status as $k => $v ) {
  389. $this->assertType(
  390. 'Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus',
  391. $v
  392. );
  393. switch ($v->getName()) {
  394. case 'muted' : {
  395. $this->assertEquals('true', $v->getValue());
  396. break;
  397. }
  398. }
  399. }
  400. }
  401. public function testRemoveConference()
  402. {
  403. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  404. 'My Name',
  405. 'This is the Conference Description',
  406. 300
  407. );
  408. try {
  409. $result = $this->service->createConference(
  410. $conferenceDetails->getName(),
  411. $conferenceDetails
  412. );
  413. } catch (Exception $e) {
  414. if ($e->getMessage() != 'quotas have exceeded') {
  415. throw $e;
  416. } else {
  417. $this->markTestSkipped('Quota exceeded.');
  418. }
  419. }
  420. $this->assertType(
  421. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  422. $result
  423. );
  424. $conferenceId = $result->getConferenceId();
  425. $this->assertNotNull($conferenceId);
  426. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  427. 'Marco',
  428. 'Kaiser',
  429. '+49 32 0000 0001',
  430. 'bate@php.net',
  431. true
  432. );
  433. $result = $this->service->newParticipant($conferenceId, $participant);
  434. $this->assertType(
  435. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  436. $result
  437. );
  438. $this->assertNotNull($result->getParticipantId());
  439. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  440. 'Marco',
  441. 'Kaiser',
  442. '+49 32 0000 0002',
  443. 'bate@php.net'
  444. );
  445. $result = $this->service->newParticipant($conferenceId, $participant);
  446. $this->assertType(
  447. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  448. $result
  449. );
  450. $this->assertNotNull($result->getParticipantId());
  451. $result = $this->service->removeConference($conferenceId);
  452. $this->assertType(
  453. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  454. $result
  455. );
  456. }
  457. public function testRemoveParticipantFromConference()
  458. {
  459. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  460. 'My Name',
  461. 'This is the Conference Description',
  462. 300
  463. );
  464. try {
  465. $result = $this->service->createConference(
  466. $conferenceDetails->getName(),
  467. $conferenceDetails
  468. );
  469. } catch (Exception $e) {
  470. if ($e->getMessage() != 'quotas have exceeded') {
  471. throw $e;
  472. } else {
  473. $this->markTestSkipped('Quota exceeded.');
  474. }
  475. }
  476. $this->assertType(
  477. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  478. $result
  479. );
  480. $conferenceId = $result->getConferenceId();
  481. $this->assertNotNull($conferenceId);
  482. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  483. 'Marco',
  484. 'Kaiser',
  485. '+49 32 0000 0001',
  486. 'bate@php.net',
  487. true
  488. );
  489. $result = $this->service->newParticipant($conferenceId, $participant);
  490. $this->assertType(
  491. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  492. $result
  493. );
  494. $part1Id = $result->getParticipantId();
  495. $this->assertNotNull($part1Id);
  496. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  497. 'Marco',
  498. 'Kaiser',
  499. '+49 32 0000 0002',
  500. 'bate@php.net'
  501. );
  502. $result = $this->service->newParticipant($conferenceId, $participant);
  503. $this->assertType(
  504. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  505. $result
  506. );
  507. $part2Id = $result->getParticipantId();
  508. $this->assertNotNull($part2Id);
  509. $result = $this->service->removeParticipant($conferenceId, $part1Id);
  510. $this->assertType(
  511. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  512. $result
  513. );
  514. $result = $this->service->removeParticipant($conferenceId, $part2Id);
  515. $this->assertType(
  516. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  517. $result
  518. );
  519. }
  520. public function testCommitConference()
  521. {
  522. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  523. 'My Name',
  524. 'This is the Conference Description',
  525. 300
  526. );
  527. try {
  528. $result = $this->service->createConference(
  529. $conferenceDetails->getName(),
  530. $conferenceDetails
  531. );
  532. } catch (Exception $e) {
  533. if ($e->getMessage() != 'quotas have exceeded') {
  534. throw $e;
  535. } else {
  536. $this->markTestSkipped('Quota exceeded.');
  537. }
  538. }
  539. $this->assertType(
  540. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  541. $result
  542. );
  543. $conferenceId = $result->getConferenceId();
  544. $this->assertNotNull($conferenceId);
  545. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  546. 'Marco',
  547. 'Kaiser',
  548. '+49 32 0000 0001',
  549. 'bate@php.net',
  550. true
  551. );
  552. $result = $this->service->newParticipant($conferenceId, $participant);
  553. $this->assertType(
  554. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  555. $result
  556. );
  557. $part1Id = $result->getParticipantId();
  558. $this->assertNotNull($part1Id);
  559. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  560. 'Marco',
  561. 'Kaiser',
  562. '+49 32 0000 0002',
  563. 'bate@php.net'
  564. );
  565. $result = $this->service->newParticipant($conferenceId, $participant);
  566. $this->assertType(
  567. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  568. $result
  569. );
  570. $part2Id = $result->getParticipantId();
  571. $this->assertNotNull($part2Id);
  572. $result = $this->service->commitConference($conferenceId);
  573. $this->assertType(
  574. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  575. $result
  576. );
  577. }
  578. /**
  579. * @expectedException Zend_Service_DeveloperGarden_Response_Exception
  580. */
  581. public function testCommitConferenceWithOutInitiator()
  582. {
  583. $this->assertType(
  584. 'Zend_Service_DeveloperGarden_ConferenceCall_Mock',
  585. $this->service->setEnvironment(Zend_Service_DeveloperGarden_ConferenceCall_Mock::ENV_SANDBOX)
  586. );
  587. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  588. 'My Name',
  589. 'This is the Conference Description',
  590. 30
  591. );
  592. try {
  593. $result = $this->service->createConference(
  594. $conferenceDetails->getName(),
  595. $conferenceDetails
  596. );
  597. } catch (Exception $e) {
  598. if ($e->getMessage() != 'quotas have exceeded') {
  599. throw $e;
  600. } else {
  601. $this->markTestSkipped('Quota exceeded.');
  602. }
  603. }
  604. $this->assertType(
  605. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  606. $result
  607. );
  608. $conferenceId = $result->getConferenceId();
  609. $this->assertNotNull($conferenceId);
  610. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  611. 'Marco',
  612. 'Kaiser',
  613. '+49 32 0000 0002',
  614. 'bate@php.net'
  615. );
  616. $result = $this->service->newParticipant($conferenceId, $participant);
  617. $this->assertType(
  618. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  619. $result
  620. );
  621. $part2Id = $result->getParticipantId();
  622. $this->assertNotNull($part2Id);
  623. $result = $this->service->commitConference($conferenceId);
  624. $this->assertType(
  625. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  626. $result
  627. );
  628. }
  629. /**
  630. * @expectedException Zend_Service_DeveloperGarden_Response_Exception
  631. */
  632. public function testCommitConferenceWithThresholdException()
  633. {
  634. $this->assertType(
  635. 'Zend_Service_DeveloperGarden_ConferenceCall_Mock',
  636. $this->service->setEnvironment(Zend_Service_DeveloperGarden_ConferenceCall_Mock::ENV_SANDBOX)
  637. );
  638. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  639. 'My Name',
  640. 'This is the Conference Description',
  641. 300
  642. );
  643. $this->assertNull($this->service->createConference(
  644. $conferenceDetails->getName(),
  645. $conferenceDetails
  646. ));
  647. }
  648. /**
  649. * @expectedException Zend_Service_DeveloperGarden_Response_Exception
  650. */
  651. public function testMockBugGetConferenceList()
  652. {
  653. $this->assertNull($this->service->getConferenceList(0, 'My Name'));
  654. }
  655. public function testGetConferenceList()
  656. {
  657. //$this->markTestSkipped('Throws internal error on mock environment');
  658. $this->assertType(
  659. 'Zend_Service_DeveloperGarden_ConferenceCall_Mock',
  660. $this->service->setEnvironment(Zend_Service_DeveloperGarden_ConferenceCall_Mock::ENV_SANDBOX)
  661. );
  662. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  663. 'My Name',
  664. 'This is the Conference Description',
  665. 30
  666. );
  667. try {
  668. $result = $this->service->createConference(
  669. $conferenceDetails->getName(),
  670. $conferenceDetails
  671. );
  672. } catch (Exception $e) {
  673. if ($e->getMessage() != 'quotas have exceeded') {
  674. throw $e;
  675. } else {
  676. $this->markTestSkipped('Quota exceeded.');
  677. }
  678. }
  679. $this->assertType(
  680. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  681. $result
  682. );
  683. $conferenceId = $result->getConferenceId();
  684. $this->assertNotNull($conferenceId);
  685. $result = $this->service->getConferenceList(0, 'My Name');
  686. $this->assertType(
  687. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceListResponseType',
  688. $result
  689. );
  690. $this->assertType(
  691. 'array',
  692. $result->getConferenceIds()
  693. );
  694. $this->assertTrue(count($result->getConferenceIds()) > 0);
  695. }
  696. public function testGetRunningConference()
  697. {
  698. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  699. 'My Name',
  700. 'This is the Conference Description',
  701. 300
  702. );
  703. try {
  704. $result = $this->service->createConference(
  705. $conferenceDetails->getName(),
  706. $conferenceDetails
  707. );
  708. } catch (Exception $e) {
  709. if ($e->getMessage() != 'quotas have exceeded') {
  710. throw $e;
  711. } else {
  712. $this->markTestSkipped('Quota exceeded.');
  713. }
  714. }
  715. $this->assertType(
  716. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  717. $result
  718. );
  719. $conferenceId = $result->getConferenceId();
  720. $this->assertNotNull($conferenceId);
  721. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  722. 'Marco',
  723. 'Kaiser',
  724. '+49 32 0000 0001',
  725. 'bate@php.net',
  726. true
  727. );
  728. $result = $this->service->newParticipant($conferenceId, $participant);
  729. $this->assertType(
  730. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  731. $result
  732. );
  733. $part1Id = $result->getParticipantId();
  734. $this->assertNotNull($part1Id);
  735. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  736. 'Marco',
  737. 'Kaiser',
  738. '+49 32 0000 0002',
  739. 'bate@php.net'
  740. );
  741. $result = $this->service->newParticipant($conferenceId, $participant);
  742. $this->assertType(
  743. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  744. $result
  745. );
  746. $part2Id = $result->getParticipantId();
  747. $this->assertNotNull($part2Id);
  748. $result = $this->service->commitConference($conferenceId);
  749. $this->assertType(
  750. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  751. $result
  752. );
  753. $result = $this->service->getRunningConference($conferenceId);
  754. $this->assertType(
  755. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetRunningConferenceResponseType',
  756. $result
  757. );
  758. $this->assertNotNull($result->getConferenceId());
  759. }
  760. public function testGetConferenceStatusSandBox()
  761. {
  762. //$this->markTestSkipped('Throws internal error on mock environment');
  763. $this->assertType(
  764. 'Zend_Service_DeveloperGarden_ConferenceCall_Mock',
  765. $this->service->setEnvironment(Zend_Service_DeveloperGarden_ConferenceCall_Mock::ENV_SANDBOX)
  766. );
  767. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  768. 'My Name',
  769. 'This is the Conference Description',
  770. 30
  771. );
  772. try {
  773. $result = $this->service->createConference(
  774. $conferenceDetails->getName(),
  775. $conferenceDetails
  776. );
  777. } catch (Exception $e) {
  778. if ($e->getMessage() != 'quotas have exceeded') {
  779. throw $e;
  780. } else {
  781. $this->markTestSkipped('Quota exceeded.');
  782. }
  783. }
  784. $this->assertType(
  785. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  786. $result
  787. );
  788. $conferenceId = $result->getConferenceId();
  789. $this->assertNotNull($conferenceId);
  790. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  791. 'Marco',
  792. 'Kaiser',
  793. '+49 32 0000 0001',
  794. 'bate@php.net',
  795. true
  796. );
  797. $result = $this->service->newParticipant($conferenceId, $participant);
  798. $this->assertType(
  799. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  800. $result
  801. );
  802. $part1Id = $result->getParticipantId();
  803. $this->assertNotNull($part1Id);
  804. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  805. 'Marco',
  806. 'Kaiser',
  807. '+49 32 0000 0002',
  808. 'bate@php.net'
  809. );
  810. $result = $this->service->newParticipant($conferenceId, $participant);
  811. $this->assertType(
  812. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  813. $result
  814. );
  815. $part2Id = $result->getParticipantId();
  816. $this->assertNotNull($part2Id);
  817. $result = $this->service->getConferenceStatus($conferenceId);
  818. $this->assertType(
  819. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType',
  820. $result
  821. );
  822. $detail = $result->getDetail();
  823. $this->assertType(
  824. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  825. $detail
  826. );
  827. $this->assertEquals('This is the Conference Description', $detail->getDescription());
  828. $this->assertEquals(30, $detail->getDuration());
  829. $this->assertEquals('My Name', $detail->getName());
  830. $this->assertNull($result->getSchedule());
  831. $this->assertEquals(0, $result->getStartTime());
  832. $this->assertType('array', $result->getParticipants());
  833. $this->assertTrue(count($result->getParticipants()) === 2);
  834. foreach ($result->getParticipants() as $v) {
  835. $this->assertType(
  836. 'Zend_Service_DeveloperGarden_ConferenceCall_Participant',
  837. $v
  838. );
  839. }
  840. if ($this->service->getEnvironment() === Zend_Service_DeveloperGarden_ConferenceCall::ENV_PRODUCTION) {
  841. $this->assertType(
  842. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount',
  843. $result->getAccount()
  844. );
  845. }
  846. }
  847. public function testGetConferenceStatusMock()
  848. {
  849. //$this->markTestSkipped('Throws internal error on mock environment');
  850. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  851. 'My Name',
  852. 'This is the Conference Description',
  853. 30
  854. );
  855. try {
  856. $result = $this->service->createConference(
  857. $conferenceDetails->getName(),
  858. $conferenceDetails
  859. );
  860. } catch (Exception $e) {
  861. if ($e->getMessage() != 'quotas have exceeded') {
  862. throw $e;
  863. } else {
  864. $this->markTestSkipped('Quota exceeded.');
  865. }
  866. }
  867. $this->assertType(
  868. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  869. $result
  870. );
  871. $conferenceId = $result->getConferenceId();
  872. $this->assertNotNull($conferenceId);
  873. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  874. 'Marco',
  875. 'Kaiser',
  876. '+49 32 0000 0001',
  877. 'bate@php.net',
  878. true
  879. );
  880. $result = $this->service->newParticipant($conferenceId, $participant);
  881. $this->assertType(
  882. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  883. $result
  884. );
  885. $part1Id = $result->getParticipantId();
  886. $this->assertNotNull($part1Id);
  887. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  888. 'Marco',
  889. 'Kaiser',
  890. '+49 32 0000 0002',
  891. 'bate@php.net'
  892. );
  893. $result = $this->service->newParticipant($conferenceId, $participant);
  894. $this->assertType(
  895. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  896. $result
  897. );
  898. $part2Id = $result->getParticipantId();
  899. $this->assertNotNull($part2Id);
  900. try {
  901. $result = $this->service->getConferenceStatus($conferenceId);
  902. } catch (Zend_Service_DeveloperGarden_Response_Exception $e) {
  903. if ($e->getMessage() == 'Internal Error') {
  904. $this->markTestSkipped('Internal Error still exists on MOCK!');
  905. }
  906. }
  907. $this->assertType(
  908. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceStatusResponseType',
  909. $result
  910. );
  911. $detail = $result->getDetail();
  912. $this->assertType(
  913. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  914. $detail
  915. );
  916. $this->assertEquals('This is the Conference Description', $detail->getDescription());
  917. $this->assertEquals(30, $detail->getDuration());
  918. $this->assertEquals('My Name', $detail->getName());
  919. $this->assertNull($result->getSchedule());
  920. $this->assertEquals(0, $result->getStartTime());
  921. $this->assertType('array', $result->getParticipants());
  922. $this->assertTrue(count($result->getParticipants()) === 2);
  923. foreach ($result->getParticipants() as $v) {
  924. $this->assertType(
  925. 'Zend_Service_DeveloperGarden_ConferenceCall_Participant',
  926. $v
  927. );
  928. }
  929. if ($this->service->getEnvironment() === Zend_Service_DeveloperGarden_ConferenceCall::ENV_PRODUCTION) {
  930. $this->assertType(
  931. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceAccount',
  932. $result->getAccount()
  933. );
  934. }
  935. }
  936. /**
  937. * @expectedException Zend_Service_DeveloperGarden_Response_Exception
  938. */
  939. public function testGetConferenceStatusException()
  940. {
  941. //$this->markTestSkipped('Throws internal error on mock environment');
  942. $this->assertType(
  943. 'Zend_Service_DeveloperGarden_ConferenceCall_Mock',
  944. $this->service->setEnvironment(Zend_Service_DeveloperGarden_ConferenceCall_Mock::ENV_SANDBOX)
  945. );
  946. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  947. 'My Name',
  948. 'This is the Conference Description',
  949. 300
  950. );
  951. try {
  952. $this->assertNull($this->service->createConference(
  953. $conferenceDetails->getName(),
  954. $conferenceDetails
  955. ));
  956. } catch (Exception $e) {
  957. if ($e->getMessage() != 'quotas have exceeded') {
  958. throw $e;
  959. } else {
  960. $this->markTestSkipped('Quota exceeded.');
  961. }
  962. }
  963. }
  964. public function testGetParticipantStatus()
  965. {
  966. //$this->markTestSkipped('Throws internal error on mock environment');
  967. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  968. 'My Name',
  969. 'This is the Conference Description',
  970. 300
  971. );
  972. try {
  973. $result = $this->service->createConference(
  974. $conferenceDetails->getName(),
  975. $conferenceDetails
  976. );
  977. } catch (Exception $e) {
  978. if ($e->getMessage() != 'quotas have exceeded') {
  979. throw $e;
  980. } else {
  981. $this->markTestSkipped('Quota exceeded.');
  982. }
  983. }
  984. $this->assertType(
  985. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceResponseType',
  986. $result
  987. );
  988. $conferenceId = $result->getConferenceId();
  989. $this->assertNotNull($conferenceId);
  990. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  991. 'Marco',
  992. 'Kaiser',
  993. '+49 32 0000 0001',
  994. 'bate@php.net',
  995. true
  996. );
  997. $result = $this->service->newParticipant($conferenceId, $participant);
  998. $this->assertType(
  999. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  1000. $result
  1001. );
  1002. $part1Id = $result->getParticipantId();
  1003. $this->assertNotNull($part1Id);
  1004. $participant = new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1005. 'Marco',
  1006. 'Kaiser',
  1007. '+49 32 0000 0002',
  1008. 'bate@php.net'
  1009. );
  1010. $result = $this->service->newParticipant($conferenceId, $participant);
  1011. $this->assertType(
  1012. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_NewParticipantResponseType',
  1013. $result
  1014. );
  1015. $part2Id = $result->getParticipantId();
  1016. $this->assertNotNull($part2Id);
  1017. $result = $this->service->getParticipantStatus($conferenceId, $part1Id);
  1018. $this->assertType(
  1019. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetParticipantStatusResponseType',
  1020. $result
  1021. );
  1022. $this->assertType('array', $result->getStatus());
  1023. foreach ($result->getStatus() as $v) {
  1024. $this->assertType('Zend_Service_DeveloperGarden_ConferenceCall_ParticipantStatus', $v);
  1025. $this->assertNotNull($v->getName());
  1026. $this->assertNotNull($v->getValue());
  1027. }
  1028. }
  1029. public function testRemoveConferenceLooped()
  1030. {
  1031. //$this->markTestSkipped('Throws internal error on mock environment');
  1032. $this->assertType(
  1033. 'Zend_Service_DeveloperGarden_ConferenceCall_Mock',
  1034. $this->service->setEnvironment(Zend_Service_DeveloperGarden_ConferenceCall_Mock::ENV_SANDBOX)
  1035. );
  1036. $result = $this->service->getConferenceList(0, 'My Name');
  1037. foreach ($result->getConferenceIds() as $k => $v) {
  1038. $this->assertNotNull($v);
  1039. $this->assertType(
  1040. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  1041. $this->service->removeConference($v)
  1042. );
  1043. }
  1044. }
  1045. /**
  1046. * Conference Template API Tests
  1047. */
  1048. public function testCreateConferenceTemplate()
  1049. {
  1050. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  1051. 'My Name',
  1052. 'This is the Conference Description',
  1053. 300
  1054. );
  1055. $participants = array(
  1056. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1057. 'Marco',
  1058. 'Kaiser',
  1059. '+49 32 0000 0001',
  1060. 'bate@php.net',
  1061. true
  1062. ),
  1063. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1064. 'Marco',
  1065. 'Kaiser',
  1066. '+49 32 0000 0002',
  1067. 'bate@php.net'
  1068. ),
  1069. );
  1070. $result = $this->service->createConferenceTemplate(
  1071. $conferenceDetails->getName(),
  1072. $conferenceDetails,
  1073. $participants
  1074. );
  1075. $this->assertType(
  1076. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType',
  1077. $result
  1078. );
  1079. $templateId = $result->getTemplateId();
  1080. $this->assertNotNull($templateId);
  1081. }
  1082. public function testRemoveConferenceTemplate()
  1083. {
  1084. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  1085. 'My Name',
  1086. 'This is the Conference Description',
  1087. 300
  1088. );
  1089. $participants = array(
  1090. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1091. 'Marco',
  1092. 'Kaiser',
  1093. '+49 32 0000 0001',
  1094. 'bate@php.net',
  1095. true
  1096. ),
  1097. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1098. 'Marco',
  1099. 'Kaiser',
  1100. '+49 32 0000 0002',
  1101. 'bate@php.net'
  1102. ),
  1103. );
  1104. $result = $this->service->createConferenceTemplate(
  1105. $conferenceDetails->getName(),
  1106. $conferenceDetails,
  1107. $participants
  1108. );
  1109. $this->assertType(
  1110. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType',
  1111. $result
  1112. );
  1113. $templateId = $result->getTemplateId();
  1114. $this->assertNotNull($templateId);
  1115. $result = $this->service->removeConferenceTemplate($templateId);
  1116. $this->assertType(
  1117. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  1118. $result
  1119. );
  1120. $this->assertEquals('0000', $result->getStatusCode());
  1121. }
  1122. public function testUpdateConferenceTemplate()
  1123. {
  1124. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  1125. 'My Name',
  1126. 'This is the Conference Description',
  1127. 300
  1128. );
  1129. $participants = array(
  1130. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1131. 'Marco',
  1132. 'Kaiser',
  1133. '+49 32 0000 0001',
  1134. 'bate@php.net',
  1135. true
  1136. ),
  1137. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1138. 'Marco',
  1139. 'Kaiser',
  1140. '+49 32 0000 0002',
  1141. 'bate@php.net'
  1142. ),
  1143. );
  1144. $result = $this->service->createConferenceTemplate(
  1145. $conferenceDetails->getName(),
  1146. $conferenceDetails,
  1147. $participants
  1148. );
  1149. $this->assertType(
  1150. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType',
  1151. $result
  1152. );
  1153. $templateId = $result->getTemplateId();
  1154. $this->assertNotNull($templateId);
  1155. $this->assertType(
  1156. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  1157. $conferenceDetails->setDescription('Some Description')
  1158. );
  1159. $this->assertType(
  1160. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  1161. $conferenceDetails->setDuration(123)
  1162. );
  1163. $this->assertType(
  1164. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  1165. $conferenceDetails->setName('Marco Kaiser')
  1166. );
  1167. $result = $this->service->updateConferenceTemplate(
  1168. $templateId,
  1169. null,
  1170. $conferenceDetails
  1171. );
  1172. $this->assertType(
  1173. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  1174. $result
  1175. );
  1176. $this->assertEquals('0000', $result->getStatusCode());
  1177. }
  1178. public function testGetConferenceTemplate()
  1179. {
  1180. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  1181. 'My Name',
  1182. 'This is the Conference Description',
  1183. 300
  1184. );
  1185. $participants = array(
  1186. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1187. 'Marco',
  1188. 'Kaiser',
  1189. '+49 32 0000 0001',
  1190. 'bate@php.net',
  1191. true
  1192. ),
  1193. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1194. 'Marco',
  1195. 'Kaiser',
  1196. '+49 32 0000 0002',
  1197. 'bate@php.net'
  1198. ),
  1199. );
  1200. $result = $this->service->createConferenceTemplate(
  1201. $conferenceDetails->getName(),
  1202. $conferenceDetails,
  1203. $participants
  1204. );
  1205. $this->assertType(
  1206. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType',
  1207. $result
  1208. );
  1209. $templateId = $result->getTemplateId();
  1210. $this->assertNotNull($templateId);
  1211. $this->assertType(
  1212. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  1213. $conferenceDetails->setDescription('Some Description')
  1214. );
  1215. $this->assertType(
  1216. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  1217. $conferenceDetails->setDuration(123)
  1218. );
  1219. $this->assertType(
  1220. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  1221. $conferenceDetails->setName('Marco Kaiser')
  1222. );
  1223. $result = $this->service->updateConferenceTemplate(
  1224. $templateId,
  1225. null,
  1226. $conferenceDetails
  1227. );
  1228. $this->assertType(
  1229. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  1230. $result
  1231. );
  1232. $this->assertEquals('0000', $result->getStatusCode());
  1233. $result = $this->service->getConferenceTemplate($templateId);
  1234. $detail = $result->getDetail();
  1235. $this->assertType(
  1236. 'Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail',
  1237. $detail
  1238. );
  1239. $this->assertEquals('Marco Kaiser', $detail->getName());
  1240. $this->assertEquals('Some Description', $detail->getDescription());
  1241. $this->assertEquals(123, $detail->getDuration());
  1242. $this->assertType('array', $result->getParticipants());
  1243. $this->assertTrue(count($result->getParticipants()) > 0);
  1244. foreach ($result->getParticipants() as $k => $v) {
  1245. $this->assertType(
  1246. 'Zend_Service_DeveloperGarden_ConferenceCall_Participant',
  1247. $v
  1248. );
  1249. $this->assertType(
  1250. 'Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail',
  1251. $v->getDetail()
  1252. );
  1253. $this->assertType(
  1254. 'array',
  1255. $v->getStatus()
  1256. );
  1257. }
  1258. $pid1 = $result->getParticipantById('pid1');
  1259. $this->assertType(
  1260. 'Zend_Service_DeveloperGarden_ConferenceCall_Participant',
  1261. $pid1
  1262. );
  1263. $this->assertEquals('pid1', $pid1->getParticipantId());
  1264. $this->assertType(
  1265. 'Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail',
  1266. $pid1->getDetail()
  1267. );
  1268. $this->assertType('array', $pid1->getStatus());
  1269. }
  1270. public function testGetConferenceTemplateList()
  1271. {
  1272. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  1273. 'My Name',
  1274. 'This is the Conference Description',
  1275. 300
  1276. );
  1277. $participants = array(
  1278. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1279. 'Marco',
  1280. 'Kaiser',
  1281. '+49 32 0000 0001',
  1282. 'bate@php.net',
  1283. true
  1284. ),
  1285. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1286. 'Marco',
  1287. 'Kaiser',
  1288. '+49 32 0000 0002',
  1289. 'bate@php.net'
  1290. ),
  1291. );
  1292. $result = $this->service->createConferenceTemplate(
  1293. $conferenceDetails->getName(),
  1294. $conferenceDetails,
  1295. $participants
  1296. );
  1297. $this->assertType(
  1298. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType',
  1299. $result
  1300. );
  1301. $templateId = $result->getTemplateId();
  1302. $this->assertNotNull($templateId);
  1303. $result = $this->service->getConferenceTemplateList('My Name');
  1304. $this->assertType(
  1305. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType',
  1306. $result
  1307. );
  1308. $list = $result->getTemplateIds();
  1309. $this->assertType('array', $list);
  1310. foreach ($list as $k => $v) {
  1311. $this->assertNotNull($v);
  1312. }
  1313. }
  1314. public function testAddConferenceTemplateParticipant()
  1315. {
  1316. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  1317. 'My Name',
  1318. 'This is the Conference Description',
  1319. 300
  1320. );
  1321. $participants = array(
  1322. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1323. 'Marco',
  1324. 'Kaiser',
  1325. '+49 32 0000 0001',
  1326. 'bate@php.net',
  1327. true
  1328. ),
  1329. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1330. 'Marco',
  1331. 'Kaiser',
  1332. '+49 32 0000 0002',
  1333. 'bate@php.net'
  1334. ),
  1335. );
  1336. $result = $this->service->createConferenceTemplate(
  1337. $conferenceDetails->getName(),
  1338. $conferenceDetails
  1339. );
  1340. $this->assertType(
  1341. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType',
  1342. $result
  1343. );
  1344. $templateId = $result->getTemplateId();
  1345. $this->assertNotNull($templateId);
  1346. $this->assertType('array', $participants);
  1347. foreach ($participants as $k => $v) {
  1348. $result = $this->service->addConferenceTemplateParticipant($templateId, $v);
  1349. $this->assertType(
  1350. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType',
  1351. $result
  1352. );
  1353. $this->assertEquals('pid'. ($k+1), $result->getParticipantId());
  1354. $this->assertEquals('0000', $result->getStatusCode());
  1355. }
  1356. }
  1357. public function testRemoveConferenceTemplateParticipant()
  1358. {
  1359. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  1360. 'My Name',
  1361. 'This is the Conference Description',
  1362. 300
  1363. );
  1364. $participants = array(
  1365. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1366. 'Marco',
  1367. 'Kaiser',
  1368. '+49 32 0000 0001',
  1369. 'bate@php.net',
  1370. true
  1371. ),
  1372. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1373. 'Marco',
  1374. 'Kaiser',
  1375. '+49 32 0000 0002',
  1376. 'bate@php.net'
  1377. ),
  1378. );
  1379. $result = $this->service->createConferenceTemplate(
  1380. $conferenceDetails->getName(),
  1381. $conferenceDetails,
  1382. $participants
  1383. );
  1384. $this->assertType(
  1385. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType',
  1386. $result
  1387. );
  1388. $templateId = $result->getTemplateId();
  1389. $this->assertNotNull($templateId);
  1390. $pidArray = array('pid1', 'pid2');
  1391. foreach ($pidArray as $k => $v) {
  1392. $result = $this->service->removeConferenceTemplateParticipant($templateId, $v);
  1393. $this->assertType(
  1394. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  1395. $result
  1396. );
  1397. $this->assertEquals('0000', $result->getStatusCode());
  1398. }
  1399. $result = $this->service->getConferenceTemplate($templateId);
  1400. $this->assertType(
  1401. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType',
  1402. $result
  1403. );
  1404. $this->assertEquals(0, count($result->getParticipants()));
  1405. }
  1406. public function testGetConferenceTemplateParticipant()
  1407. {
  1408. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  1409. 'My Name',
  1410. 'This is the Conference Description',
  1411. 300
  1412. );
  1413. $participants = array(
  1414. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1415. 'Marco',
  1416. 'Kaiser',
  1417. '+49 32 0000 0001',
  1418. 'bate@php.net',
  1419. true
  1420. ),
  1421. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1422. 'Marco',
  1423. 'Kaiser',
  1424. '+49 32 0000 0002',
  1425. 'bate@php.net'
  1426. ),
  1427. );
  1428. $result = $this->service->createConferenceTemplate(
  1429. $conferenceDetails->getName(),
  1430. $conferenceDetails,
  1431. $participants
  1432. );
  1433. $this->assertType(
  1434. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType',
  1435. $result
  1436. );
  1437. $templateId = $result->getTemplateId();
  1438. $this->assertNotNull($templateId);
  1439. $pidArray = array('pid1', 'pid2');
  1440. foreach ($pidArray as $k => $v) {
  1441. $result = $this->service->getConferenceTemplateParticipant($templateId, $v);
  1442. $this->assertType(
  1443. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType',
  1444. $result
  1445. );
  1446. $this->assertType(
  1447. 'Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail',
  1448. $result->getParticipant()
  1449. );
  1450. $this->assertEquals('0000', $result->getStatusCode());
  1451. }
  1452. }
  1453. public function testUpdateConferenceTemplateParticipant()
  1454. {
  1455. // works only on sandbox
  1456. $this->assertType(
  1457. 'Zend_Service_DeveloperGarden_ConferenceCall_Mock',
  1458. $this->service->setEnvironment(Zend_Service_DeveloperGarden_ConferenceCall_Mock::ENV_SANDBOX)
  1459. );
  1460. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  1461. 'My Name',
  1462. 'This is the Conference Description',
  1463. 10
  1464. );
  1465. $participants = array(
  1466. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1467. 'Marco',
  1468. 'Kaiser',
  1469. '+49 32 0000 0001',
  1470. 'bate@php.net',
  1471. true
  1472. ),
  1473. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1474. 'Marco',
  1475. 'Kaiser',
  1476. '+49 32 0000 0002',
  1477. 'bate@php.net'
  1478. ),
  1479. );
  1480. $result = $this->service->createConferenceTemplate(
  1481. $conferenceDetails->getName(),
  1482. $conferenceDetails,
  1483. $participants
  1484. );
  1485. $this->assertType(
  1486. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CreateConferenceTemplateResponseType',
  1487. $result
  1488. );
  1489. $templateId = $result->getTemplateId();
  1490. $this->assertNotNull($templateId);
  1491. $result = $this->service->getConferenceTemplate($templateId);
  1492. $this->assertType(
  1493. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateResponseType',
  1494. $result
  1495. );
  1496. $list = $result->getParticipants();
  1497. $this->assertType('array', $list);
  1498. foreach ($list as $k => $v) {
  1499. $participantId = $v->getParticipantId();
  1500. $detail = $v->getDetail();
  1501. $this->assertType(
  1502. 'Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail',
  1503. $detail
  1504. );
  1505. $this->assertType(
  1506. 'Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail',
  1507. $detail->setFirstName('Zend')
  1508. );
  1509. $this->assertType(
  1510. 'Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail',
  1511. $detail->setLastName('Framework')
  1512. );
  1513. $result = $this->service->updateConferenceTemplateParticipant(
  1514. $templateId,
  1515. $participantId,
  1516. $detail
  1517. );
  1518. $this->assertType(
  1519. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  1520. $result
  1521. );
  1522. $this->assertEquals('0000', $result->getStatusCode());
  1523. // ask for part
  1524. $result = $this->service->getConferenceTemplateParticipant($templateId, $participantId);
  1525. $this->assertType(
  1526. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateParticipantResponseType',
  1527. $result
  1528. );
  1529. $newPart = $result->getParticipant();
  1530. $this->assertType(
  1531. 'Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail',
  1532. $newPart
  1533. );
  1534. $this->assertEquals('Zend', $newPart->getFirstName());
  1535. $this->assertEquals('Framework', $newPart->getLastName());
  1536. }
  1537. $this->service->removeConferenceTemplate($templateId);
  1538. }
  1539. public function testRemoveConferenceTemplateLoopedMock()
  1540. {
  1541. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  1542. 'My Name',
  1543. 'This is the Conference Description',
  1544. 300
  1545. );
  1546. $participants = array(
  1547. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1548. 'Marco',
  1549. 'Kaiser',
  1550. '+49 32 0000 0001',
  1551. 'bate@php.net',
  1552. true
  1553. ),
  1554. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1555. 'Marco',
  1556. 'Kaiser',
  1557. '+49 32 0000 0002',
  1558. 'bate@php.net'
  1559. ),
  1560. );
  1561. $result = $this->service->getConferenceTemplateList('My Name');
  1562. $this->assertType(
  1563. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType',
  1564. $result
  1565. );
  1566. $list = $result->getTemplateIds();
  1567. $this->assertType('array', $list);
  1568. foreach ($list as $k => $v) {
  1569. $templateId = $v;
  1570. $this->assertNotNull($templateId);
  1571. $result = $this->service->removeConferenceTemplate($templateId);
  1572. $this->assertType(
  1573. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  1574. $result
  1575. );
  1576. $this->assertEquals('0000', $result->getStatusCode());
  1577. }
  1578. }
  1579. public function testRemoveConferenceTemplateLoopedSandbox()
  1580. {
  1581. $this->assertType(
  1582. 'Zend_Service_DeveloperGarden_ConferenceCall_Mock',
  1583. $this->service->setEnvironment(Zend_Service_DeveloperGarden_ConferenceCall_Mock::ENV_SANDBOX)
  1584. );
  1585. $conferenceDetails = new Zend_Service_DeveloperGarden_ConferenceCall_ConferenceDetail(
  1586. 'My Name',
  1587. 'This is the Conference Description',
  1588. 300
  1589. );
  1590. $participants = array(
  1591. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1592. 'Marco',
  1593. 'Kaiser',
  1594. '+49 32 0000 0001',
  1595. 'bate@php.net',
  1596. true
  1597. ),
  1598. new Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail(
  1599. 'Marco',
  1600. 'Kaiser',
  1601. '+49 32 0000 0002',
  1602. 'bate@php.net'
  1603. ),
  1604. );
  1605. $result = $this->service->getConferenceTemplateList('My Name');
  1606. $this->assertType(
  1607. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_GetConferenceTemplateListResponseType',
  1608. $result
  1609. );
  1610. $list = $result->getTemplateIds();
  1611. $this->assertType('array', $list);
  1612. foreach ($list as $k => $v) {
  1613. $templateId = $v;
  1614. $this->assertNotNull($templateId);
  1615. $result = $this->service->removeConferenceTemplate($templateId);
  1616. $this->assertType(
  1617. 'Zend_Service_DeveloperGarden_Response_ConferenceCall_CCSResponseType',
  1618. $result
  1619. );
  1620. $this->assertEquals('0000', $result->getStatusCode());
  1621. }
  1622. }
  1623. }
  1624. class Zend_Service_DeveloperGarden_ConferenceCall_Mock
  1625. extends Zend_Service_DeveloperGarden_ConferenceCall
  1626. {
  1627. }
  1628. if (PHPUnit_MAIN_METHOD == 'Zend_Service_DeveloperGarden_ConferenceCallTest::main') {
  1629. Zend_Service_DeveloperGarden_ConferenceCallTest::main();
  1630. }