Skip to content

Commit 4a70ca1

Browse files
committed
Add tests
1 parent 9194583 commit 4a70ca1

1 file changed

Lines changed: 81 additions & 0 deletions

File tree

tests/unit/BigBlueButtonTest.php

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,87 @@ public function testCreateMeetingUrl(): void
227227
$this->assertUrlContainsAllRequestParameters($url, $params);
228228
}
229229

230+
/**
231+
* Test create meeting URL.
232+
*/
233+
public function testCreate(): void
234+
{
235+
$createMeetingParams = $this->generateCreateParams();
236+
$params = $this->getCreateMock($createMeetingParams);
237+
238+
$xml = '<response>
239+
<returncode>SUCCESS</returncode>
240+
<meetingID>'.$params->getMeetingID().'</meetingID>
241+
<internalMeetingID>1a6938c707cdf5d052958672d66c219c30690c47-1524212045514</internalMeetingID>
242+
<createTime>1453283819419</createTime>
243+
<voiceBridge>'.$params->getVoiceBridge().'</voiceBridge>
244+
<dialNumber>613-555-1234</dialNumber>
245+
<createDate>Wed Jan 20 04:56:59 EST 2016</createDate>
246+
<hasUserJoined>false</hasUserJoined>
247+
<duration>20</duration>
248+
<hasBeenForciblyEnded>false</hasBeenForciblyEnded>
249+
</response>';
250+
251+
$this->transport->method('request')
252+
->with(self::callback(function ($request) {
253+
$payload = $request->getPayload();
254+
255+
return $payload == '';
256+
}))
257+
->willReturn(new TransportResponse($xml, null));
258+
259+
$response = $this->bbb->createMeeting($params);
260+
261+
$this->assertTrue($response->success());
262+
$this->assertFalse($response->isDuplicate());
263+
$this->assertFalse($response->isIdNotUnique());
264+
}
265+
266+
public function testCreateWithPresentation(): void
267+
{
268+
$createMeetingParams = $this->generateCreateParams();
269+
$params = $this->getCreateMock($createMeetingParams);
270+
$params->addPresentation('http://test-install.blindsidenetworks.com/default.pdf', null, 'presentation.pdf');
271+
$params->addPresentation('http://test-install.blindsidenetworks.com/file.pdf');
272+
$params->setClientSettingsOverride('{ "public": { "app": { "appName": "Test" } } }');
273+
274+
$xml = '<response>
275+
<returncode>SUCCESS</returncode>
276+
<meetingID>'.$params->getMeetingID().'</meetingID>
277+
<internalMeetingID>1a6938c707cdf5d052958672d66c219c30690c47-1524212045514</internalMeetingID>
278+
<createTime>1453283819419</createTime>
279+
<voiceBridge>'.$params->getVoiceBridge().'</voiceBridge>
280+
<dialNumber>613-555-1234</dialNumber>
281+
<createDate>Wed Jan 20 04:56:59 EST 2016</createDate>
282+
<hasUserJoined>false</hasUserJoined>
283+
<duration>20</duration>
284+
<hasBeenForciblyEnded>false</hasBeenForciblyEnded>
285+
</response>';
286+
287+
$this->transport->method('request')
288+
->with(self::callback(function ($request) {
289+
$payload = $request->getPayload();
290+
$xml = simplexml_load_string($payload);
291+
292+
$presentations = $xml->module[0];
293+
$clientSettingsOverride = $xml->module[1];
294+
295+
return \count($xml->module) == 2
296+
&& $presentations->attributes()['name']->__toString() == 'presentation'
297+
&& $clientSettingsOverride->attributes()['name']->__toString() == 'clientSettingsOverride'
298+
&& $presentations->children()[0]->attributes()['url']->__toString() == 'http://test-install.blindsidenetworks.com/default.pdf'
299+
&& $presentations->children()[0]->attributes()['filename']->__toString() == 'presentation.pdf'
300+
&& $presentations->children()[1]->attributes()['url']->__toString() == 'http://test-install.blindsidenetworks.com/file.pdf';
301+
}))
302+
->willReturn(new TransportResponse($xml, null));
303+
304+
$response = $this->bbb->createMeeting($params);
305+
306+
$this->assertTrue($response->success());
307+
$this->assertFalse($response->isDuplicate());
308+
$this->assertFalse($response->isIdNotUnique());
309+
}
310+
230311
/* Join Meeting */
231312

232313
/**

0 commit comments

Comments
 (0)