|
3 | 3 | namespace OpenTokTest\Validators; |
4 | 4 |
|
5 | 5 | use OpenTok\Exception\InvalidArgumentException; |
| 6 | +use OpenTok\Util\Client; |
6 | 7 | use OpenTok\Util\Validators; |
7 | 8 | use PHPUnit\Framework\TestCase; |
8 | 9 |
|
@@ -219,6 +220,72 @@ public function testInvalidLayoutClassListType(): void |
219 | 220 |
|
220 | 221 | Validators::validateLayoutClassListItem($layoutClassList); |
221 | 222 | } |
| 223 | + public function testValidateClient(): void |
| 224 | + { |
| 225 | + $client = new Client(); |
| 226 | + Validators::validateClient($client); |
| 227 | + |
| 228 | + // No exception, which was the test so fake a pass |
| 229 | + $this->assertTrue(true); |
| 230 | + } |
| 231 | + |
| 232 | + public function testExceptionOnInvalidClient(): void |
| 233 | + { |
| 234 | + $this->expectException(\InvalidArgumentException::class); |
| 235 | + $client = new \stdClass(); |
| 236 | + Validators::validateClient($client); |
| 237 | + } |
| 238 | + |
| 239 | + public function testThrowsErrorOnInvalidStreamMode(): void |
| 240 | + { |
| 241 | + $this->expectException(\InvalidArgumentException::class); |
| 242 | + $streamMode = ['auto']; |
| 243 | + Validators::validateHasStreamMode($streamMode); |
| 244 | + } |
| 245 | + |
| 246 | + public function testValidateSignalPayload(): void |
| 247 | + { |
| 248 | + $validPayload = ['type' => 'signal_type', 'data' => 'signal_data']; |
| 249 | + $this->assertNull(Validators::validateSignalPayload($validPayload)); |
| 250 | + |
| 251 | + $invalidDataPayload = ['type' => 'signal_type', 'data' => 123]; |
| 252 | + $this->expectException(InvalidArgumentException::class); |
| 253 | + $this->expectExceptionMessage("Signal Payload cannot be null:"); |
| 254 | + Validators::validateSignalPayload($invalidDataPayload); |
| 255 | + |
| 256 | + $invalidTypePayload = ['type' => null, 'data' => 'signal_data']; |
| 257 | + $this->expectException(InvalidArgumentException::class); |
| 258 | + $this->expectExceptionMessage("Signal Payload cannot be null:"); |
| 259 | + Validators::validateSignalPayload($invalidTypePayload); |
| 260 | + |
| 261 | + // Invalid payload: both type and data are null |
| 262 | + $invalidBothPayload = ['type' => null, 'data' => null]; |
| 263 | + $this->expectException(InvalidArgumentException::class); |
| 264 | + $this->expectExceptionMessage("Signal Payload cannot be null:"); |
| 265 | + Validators::validateSignalPayload($invalidBothPayload); |
| 266 | + } |
| 267 | + |
| 268 | + /** |
| 269 | + * @dataProvider connectionIdProvider |
| 270 | + */ |
| 271 | + public function testConnectionId($input, $expectException): void |
| 272 | + { |
| 273 | + if ($expectException) { |
| 274 | + $this->expectException(\InvalidArgumentException::class); |
| 275 | + } |
| 276 | + |
| 277 | + Validators::validateConnectionId($input); |
| 278 | + $this->assertTrue(true); |
| 279 | + } |
| 280 | + |
| 281 | + public function connectionIdProvider(): array |
| 282 | + { |
| 283 | + return [ |
| 284 | + [['this' => 'is not a string'], true], |
| 285 | + ['', true], |
| 286 | + ['valid_connection_string', false] |
| 287 | + ]; |
| 288 | + } |
222 | 289 |
|
223 | 290 | public function resolutionProvider(): array |
224 | 291 | { |
|
0 commit comments