ConferenceCallTest.php 61 KB

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