annotate vendor/webmozart/assert/tests/AssertTest.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 /*
Chris@0 4 * This file is part of the webmozart/assert package.
Chris@0 5 *
Chris@0 6 * (c) Bernhard Schussek <bschussek@gmail.com>
Chris@0 7 *
Chris@0 8 * For the full copyright and license information, please view the LICENSE
Chris@0 9 * file that was distributed with this source code.
Chris@0 10 */
Chris@0 11
Chris@0 12 namespace Webmozart\Assert\Tests;
Chris@0 13
Chris@0 14 use ArrayIterator;
Chris@0 15 use Exception;
Chris@0 16 use Error;
Chris@0 17 use LogicException;
Chris@0 18 use PHPUnit_Framework_TestCase;
Chris@0 19 use RuntimeException;
Chris@0 20 use stdClass;
Chris@0 21 use Webmozart\Assert\Assert;
Chris@0 22
Chris@0 23 /**
Chris@0 24 * @since 1.0
Chris@0 25 *
Chris@0 26 * @author Bernhard Schussek <bschussek@gmail.com>
Chris@0 27 */
Chris@0 28 class AssertTest extends PHPUnit_Framework_TestCase
Chris@0 29 {
Chris@0 30 private static $resource;
Chris@0 31
Chris@0 32 public static function getResource()
Chris@0 33 {
Chris@0 34 if (!static::$resource) {
Chris@0 35 static::$resource = fopen(__FILE__, 'r');
Chris@0 36 }
Chris@0 37
Chris@0 38 return static::$resource;
Chris@0 39 }
Chris@0 40
Chris@0 41 public static function tearDownAfterClass()
Chris@0 42 {
Chris@0 43 @fclose(self::$resource);
Chris@0 44 }
Chris@0 45
Chris@0 46 public function getTests()
Chris@0 47 {
Chris@0 48 $resource = self::getResource();
Chris@0 49
Chris@0 50 return array(
Chris@0 51 array('string', array('value'), true),
Chris@0 52 array('string', array(''), true),
Chris@0 53 array('string', array(1234), false),
Chris@0 54 array('stringNotEmpty', array('value'), true),
Chris@0 55 array('stringNotEmpty', array(''), false),
Chris@0 56 array('stringNotEmpty', array(1234), false),
Chris@0 57 array('integer', array(123), true),
Chris@0 58 array('integer', array('123'), false),
Chris@0 59 array('integer', array(1.0), false),
Chris@0 60 array('integer', array(1.23), false),
Chris@0 61 array('integerish', array(1.0), true),
Chris@0 62 array('integerish', array(1.23), false),
Chris@0 63 array('integerish', array(123), true),
Chris@0 64 array('integerish', array('123'), true),
Chris@0 65 array('float', array(1.0), true),
Chris@0 66 array('float', array(1.23), true),
Chris@0 67 array('float', array(123), false),
Chris@0 68 array('float', array('123'), false),
Chris@0 69 array('numeric', array(1.0), true),
Chris@0 70 array('numeric', array(1.23), true),
Chris@0 71 array('numeric', array(123), true),
Chris@0 72 array('numeric', array('123'), true),
Chris@0 73 array('numeric', array('foo'), false),
Chris@0 74 array('boolean', array(true), true),
Chris@0 75 array('boolean', array(false), true),
Chris@0 76 array('boolean', array(1), false),
Chris@0 77 array('boolean', array('1'), false),
Chris@0 78 array('scalar', array('1'), true),
Chris@0 79 array('scalar', array(123), true),
Chris@0 80 array('scalar', array(true), true),
Chris@0 81 array('scalar', array(null), false),
Chris@0 82 array('scalar', array(array()), false),
Chris@0 83 array('scalar', array(new stdClass()), false),
Chris@0 84 array('object', array(new stdClass()), true),
Chris@0 85 array('object', array(new RuntimeException()), true),
Chris@0 86 array('object', array(null), false),
Chris@0 87 array('object', array(true), false),
Chris@0 88 array('object', array(1), false),
Chris@0 89 array('object', array(array()), false),
Chris@0 90 array('resource', array($resource), true),
Chris@0 91 array('resource', array($resource, 'stream'), true),
Chris@0 92 array('resource', array($resource, 'other'), false),
Chris@0 93 array('resource', array(1), false),
Chris@0 94 array('isCallable', array('strlen'), true),
Chris@0 95 array('isCallable', array(array($this, 'getTests')), true),
Chris@0 96 array('isCallable', array(function () {}), true),
Chris@0 97 array('isCallable', array(1234), false),
Chris@0 98 array('isCallable', array('foobar'), false),
Chris@0 99 array('isArray', array(array()), true),
Chris@0 100 array('isArray', array(array(1, 2, 3)), true),
Chris@0 101 array('isArray', array(new ArrayIterator(array())), false),
Chris@0 102 array('isArray', array(123), false),
Chris@0 103 array('isArray', array(new stdClass()), false),
Chris@0 104 array('isTraversable', array(array()), true),
Chris@0 105 array('isTraversable', array(array(1, 2, 3)), true),
Chris@0 106 array('isTraversable', array(new ArrayIterator(array())), true),
Chris@0 107 array('isTraversable', array(123), false),
Chris@0 108 array('isTraversable', array(new stdClass()), false),
Chris@0 109 array('isInstanceOf', array(new stdClass(), 'stdClass'), true),
Chris@0 110 array('isInstanceOf', array(new Exception(), 'stdClass'), false),
Chris@0 111 array('isInstanceOf', array(123, 'stdClass'), false),
Chris@0 112 array('isInstanceOf', array(array(), 'stdClass'), false),
Chris@0 113 array('notInstanceOf', array(new stdClass(), 'stdClass'), false),
Chris@0 114 array('notInstanceOf', array(new Exception(), 'stdClass'), true),
Chris@0 115 array('notInstanceOf', array(123, 'stdClass'), true),
Chris@0 116 array('notInstanceOf', array(array(), 'stdClass'), true),
Chris@0 117 array('true', array(true), true),
Chris@0 118 array('true', array(false), false),
Chris@0 119 array('true', array(1), false),
Chris@0 120 array('true', array(null), false),
Chris@0 121 array('false', array(false), true),
Chris@0 122 array('false', array(true), false),
Chris@0 123 array('false', array(1), false),
Chris@0 124 array('false', array(0), false),
Chris@0 125 array('false', array(null), false),
Chris@0 126 array('null', array(null), true),
Chris@0 127 array('null', array(false), false),
Chris@0 128 array('null', array(0), false),
Chris@0 129 array('notNull', array(false), true),
Chris@0 130 array('notNull', array(0), true),
Chris@0 131 array('notNull', array(null), false),
Chris@0 132 array('isEmpty', array(null), true),
Chris@0 133 array('isEmpty', array(false), true),
Chris@0 134 array('isEmpty', array(0), true),
Chris@0 135 array('isEmpty', array(''), true),
Chris@0 136 array('isEmpty', array(1), false),
Chris@0 137 array('isEmpty', array('a'), false),
Chris@0 138 array('notEmpty', array(1), true),
Chris@0 139 array('notEmpty', array('a'), true),
Chris@0 140 array('notEmpty', array(null), false),
Chris@0 141 array('notEmpty', array(false), false),
Chris@0 142 array('notEmpty', array(0), false),
Chris@0 143 array('notEmpty', array(''), false),
Chris@0 144 array('eq', array(1, 1), true),
Chris@0 145 array('eq', array(1, '1'), true),
Chris@0 146 array('eq', array(1, true), true),
Chris@0 147 array('eq', array(1, 0), false),
Chris@0 148 array('notEq', array(1, 0), true),
Chris@0 149 array('notEq', array(1, 1), false),
Chris@0 150 array('notEq', array(1, '1'), false),
Chris@0 151 array('notEq', array(1, true), false),
Chris@0 152 array('same', array(1, 1), true),
Chris@0 153 array('same', array(1, '1'), false),
Chris@0 154 array('same', array(1, true), false),
Chris@0 155 array('same', array(1, 0), false),
Chris@0 156 array('notSame', array(1, 0), true),
Chris@0 157 array('notSame', array(1, 1), false),
Chris@0 158 array('notSame', array(1, '1'), true),
Chris@0 159 array('notSame', array(1, true), true),
Chris@0 160 array('greaterThan', array(1, 0), true),
Chris@0 161 array('greaterThan', array(0, 0), false),
Chris@0 162 array('greaterThanEq', array(2, 1), true),
Chris@0 163 array('greaterThanEq', array(1, 1), true),
Chris@0 164 array('greaterThanEq', array(0, 1), false),
Chris@0 165 array('lessThan', array(0, 1), true),
Chris@0 166 array('lessThan', array(1, 1), false),
Chris@0 167 array('lessThanEq', array(0, 1), true),
Chris@0 168 array('lessThanEq', array(1, 1), true),
Chris@0 169 array('lessThanEq', array(2, 1), false),
Chris@0 170 array('range', array(1, 1, 2), true),
Chris@0 171 array('range', array(2, 1, 2), true),
Chris@0 172 array('range', array(0, 1, 2), false),
Chris@0 173 array('range', array(3, 1, 2), false),
Chris@0 174 array('oneOf', array(1, array(1, 2, 3)), true),
Chris@0 175 array('oneOf', array(1, array('1', '2', '3')), false),
Chris@0 176 array('contains', array('abcd', 'ab'), true),
Chris@0 177 array('contains', array('abcd', 'bc'), true),
Chris@0 178 array('contains', array('abcd', 'cd'), true),
Chris@0 179 array('contains', array('abcd', 'de'), false),
Chris@0 180 array('contains', array('', 'de'), false),
Chris@0 181 array('startsWith', array('abcd', 'ab'), true),
Chris@0 182 array('startsWith', array('abcd', 'bc'), false),
Chris@0 183 array('startsWith', array('', 'bc'), false),
Chris@0 184 array('startsWithLetter', array('abcd'), true),
Chris@0 185 array('startsWithLetter', array('1abcd'), false),
Chris@0 186 array('startsWithLetter', array(''), false),
Chris@0 187 array('endsWith', array('abcd', 'cd'), true),
Chris@0 188 array('endsWith', array('abcd', 'bc'), false),
Chris@0 189 array('endsWith', array('', 'bc'), false),
Chris@0 190 array('regex', array('abcd', '~^ab~'), true),
Chris@0 191 array('regex', array('abcd', '~^bc~'), false),
Chris@0 192 array('regex', array('', '~^bc~'), false),
Chris@0 193 array('alpha', array('abcd'), true),
Chris@0 194 array('alpha', array('ab1cd'), false),
Chris@0 195 array('alpha', array(''), false),
Chris@0 196 array('digits', array('1234'), true),
Chris@0 197 array('digits', array('12a34'), false),
Chris@0 198 array('digits', array(''), false),
Chris@0 199 array('alnum', array('ab12'), true),
Chris@0 200 array('alnum', array('ab12$'), false),
Chris@0 201 array('alnum', array(''), false),
Chris@0 202 array('lower', array('abcd'), true),
Chris@0 203 array('lower', array('abCd'), false),
Chris@0 204 array('lower', array('ab_d'), false),
Chris@0 205 array('lower', array(''), false),
Chris@0 206 array('upper', array('ABCD'), true),
Chris@0 207 array('upper', array('ABcD'), false),
Chris@0 208 array('upper', array('AB_D'), false),
Chris@0 209 array('upper', array(''), false),
Chris@0 210 array('length', array('abcd', 4), true),
Chris@0 211 array('length', array('abc', 4), false),
Chris@0 212 array('length', array('abcde', 4), false),
Chris@0 213 array('length', array('äbcd', 4), true, true),
Chris@0 214 array('length', array('äbc', 4), false, true),
Chris@0 215 array('length', array('äbcde', 4), false, true),
Chris@0 216 array('minLength', array('abcd', 4), true),
Chris@0 217 array('minLength', array('abcde', 4), true),
Chris@0 218 array('minLength', array('abc', 4), false),
Chris@0 219 array('minLength', array('äbcd', 4), true, true),
Chris@0 220 array('minLength', array('äbcde', 4), true, true),
Chris@0 221 array('minLength', array('äbc', 4), false, true),
Chris@0 222 array('maxLength', array('abcd', 4), true),
Chris@0 223 array('maxLength', array('abc', 4), true),
Chris@0 224 array('maxLength', array('abcde', 4), false),
Chris@0 225 array('maxLength', array('äbcd', 4), true, true),
Chris@0 226 array('maxLength', array('äbc', 4), true, true),
Chris@0 227 array('maxLength', array('äbcde', 4), false, true),
Chris@0 228 array('lengthBetween', array('abcd', 3, 5), true),
Chris@0 229 array('lengthBetween', array('abc', 3, 5), true),
Chris@0 230 array('lengthBetween', array('abcde', 3, 5), true),
Chris@0 231 array('lengthBetween', array('ab', 3, 5), false),
Chris@0 232 array('lengthBetween', array('abcdef', 3, 5), false),
Chris@0 233 array('lengthBetween', array('äbcd', 3, 5), true, true),
Chris@0 234 array('lengthBetween', array('äbc', 3, 5), true, true),
Chris@0 235 array('lengthBetween', array('äbcde', 3, 5), true, true),
Chris@0 236 array('lengthBetween', array('äb', 3, 5), false, true),
Chris@0 237 array('lengthBetween', array('äbcdef', 3, 5), false, true),
Chris@0 238 array('fileExists', array(__FILE__), true),
Chris@0 239 array('fileExists', array(__DIR__), true),
Chris@0 240 array('fileExists', array(__DIR__.'/foobar'), false),
Chris@0 241 array('file', array(__FILE__), true),
Chris@0 242 array('file', array(__DIR__), false),
Chris@0 243 array('file', array(__DIR__.'/foobar'), false),
Chris@0 244 array('directory', array(__DIR__), true),
Chris@0 245 array('directory', array(__FILE__), false),
Chris@0 246 array('directory', array(__DIR__.'/foobar'), false),
Chris@0 247 // no tests for readable()/writable() for now
Chris@0 248 array('classExists', array(__CLASS__), true),
Chris@0 249 array('classExists', array(__NAMESPACE__.'\Foobar'), false),
Chris@0 250 array('subclassOf', array(__CLASS__, 'PHPUnit_Framework_TestCase'), true),
Chris@0 251 array('subclassOf', array(__CLASS__, 'stdClass'), false),
Chris@0 252 array('implementsInterface', array('ArrayIterator', 'Traversable'), true),
Chris@0 253 array('implementsInterface', array(__CLASS__, 'Traversable'), false),
Chris@0 254 array('propertyExists', array((object) array('property' => 0), 'property'), true),
Chris@0 255 array('propertyExists', array((object) array('property' => null), 'property'), true),
Chris@0 256 array('propertyExists', array((object) array('property' => null), 'foo'), false),
Chris@0 257 array('propertyNotExists', array((object) array('property' => 0), 'property'), false),
Chris@0 258 array('propertyNotExists', array((object) array('property' => null), 'property'), false),
Chris@0 259 array('propertyNotExists', array((object) array('property' => null), 'foo'), true),
Chris@0 260 array('methodExists', array('RuntimeException', 'getMessage'), true),
Chris@0 261 array('methodExists', array(new RuntimeException(), 'getMessage'), true),
Chris@0 262 array('methodExists', array('stdClass', 'getMessage'), false),
Chris@0 263 array('methodExists', array(new stdClass(), 'getMessage'), false),
Chris@0 264 array('methodExists', array(null, 'getMessage'), false),
Chris@0 265 array('methodExists', array(true, 'getMessage'), false),
Chris@0 266 array('methodExists', array(1, 'getMessage'), false),
Chris@0 267 array('methodNotExists', array('RuntimeException', 'getMessage'), false),
Chris@0 268 array('methodNotExists', array(new RuntimeException(), 'getMessage'), false),
Chris@0 269 array('methodNotExists', array('stdClass', 'getMessage'), true),
Chris@0 270 array('methodNotExists', array(new stdClass(), 'getMessage'), true),
Chris@0 271 array('methodNotExists', array(null, 'getMessage'), true),
Chris@0 272 array('methodNotExists', array(true, 'getMessage'), true),
Chris@0 273 array('methodNotExists', array(1, 'getMessage'), true),
Chris@0 274 array('keyExists', array(array('key' => 0), 'key'), true),
Chris@0 275 array('keyExists', array(array('key' => null), 'key'), true),
Chris@0 276 array('keyExists', array(array('key' => null), 'foo'), false),
Chris@0 277 array('keyNotExists', array(array('key' => 0), 'key'), false),
Chris@0 278 array('keyNotExists', array(array('key' => null), 'key'), false),
Chris@0 279 array('keyNotExists', array(array('key' => null), 'foo'), true),
Chris@0 280 array('count', array(array(0, 1, 2), 3), true),
Chris@0 281 array('count', array(array(0, 1, 2), 2), false),
Chris@0 282 array('uuid', array('00000000-0000-0000-0000-000000000000'), true),
Chris@0 283 array('uuid', array('ff6f8cb0-c57d-21e1-9b21-0800200c9a66'), true),
Chris@0 284 array('uuid', array('ff6f8cb0-c57d-11e1-9b21-0800200c9a66'), true),
Chris@0 285 array('uuid', array('ff6f8cb0-c57d-31e1-9b21-0800200c9a66'), true),
Chris@0 286 array('uuid', array('ff6f8cb0-c57d-41e1-9b21-0800200c9a66'), true),
Chris@0 287 array('uuid', array('ff6f8cb0-c57d-51e1-9b21-0800200c9a66'), true),
Chris@0 288 array('uuid', array('FF6F8CB0-C57D-11E1-9B21-0800200C9A66'), true),
Chris@0 289 array('uuid', array('zf6f8cb0-c57d-11e1-9b21-0800200c9a66'), false),
Chris@0 290 array('uuid', array('af6f8cb0c57d11e19b210800200c9a66'), false),
Chris@0 291 array('uuid', array('ff6f8cb0-c57da-51e1-9b21-0800200c9a66'), false),
Chris@0 292 array('uuid', array('af6f8cb-c57d-11e1-9b21-0800200c9a66'), false),
Chris@0 293 array('uuid', array('3f6f8cb0-c57d-11e1-9b21-0800200c9a6'), false),
Chris@0 294 array('throws', array(function() { throw new LogicException('test'); }, 'LogicException'), true),
Chris@0 295 array('throws', array(function() { throw new LogicException('test'); }, 'IllogicException'), false),
Chris@0 296 array('throws', array(function() { throw new Exception('test'); }), true),
Chris@0 297 array('throws', array(function() { trigger_error('test'); }, 'Throwable'), true, false, 70000),
Chris@0 298 array('throws', array(function() { trigger_error('test'); }, 'Unthrowable'), false, false, 70000),
Chris@0 299 array('throws', array(function() { throw new Error(); }, 'Throwable'), true, true, 70000),
Chris@0 300 );
Chris@0 301 }
Chris@0 302
Chris@0 303 public function getMethods()
Chris@0 304 {
Chris@0 305 $methods = array();
Chris@0 306
Chris@0 307 foreach ($this->getTests() as $params) {
Chris@0 308 $methods[$params[0]] = array($params[0]);
Chris@0 309 }
Chris@0 310
Chris@0 311 return array_values($methods);
Chris@0 312 }
Chris@0 313
Chris@0 314 /**
Chris@0 315 * @dataProvider getTests
Chris@0 316 */
Chris@0 317 public function testAssert($method, $args, $success, $multibyte = false, $minVersion = null)
Chris@0 318 {
Chris@0 319 if ($minVersion && PHP_VERSION_ID < $minVersion) {
Chris@0 320 $this->markTestSkipped(sprintf('This test requires php %s or upper.', $minVersion));
Chris@0 321
Chris@0 322 return;
Chris@0 323 }
Chris@0 324 if ($multibyte && !function_exists('mb_strlen')) {
Chris@0 325 $this->markTestSkipped('The function mb_strlen() is not available');
Chris@0 326
Chris@0 327 return;
Chris@0 328 }
Chris@0 329
Chris@0 330 if (!$success) {
Chris@0 331 $this->setExpectedException('\InvalidArgumentException');
Chris@0 332 }
Chris@0 333
Chris@0 334 call_user_func_array(array('Webmozart\Assert\Assert', $method), $args);
Chris@0 335 }
Chris@0 336
Chris@0 337 /**
Chris@0 338 * @dataProvider getTests
Chris@0 339 */
Chris@0 340 public function testNullOr($method, $args, $success, $multibyte = false, $minVersion = null)
Chris@0 341 {
Chris@0 342 if ($minVersion && PHP_VERSION_ID < $minVersion) {
Chris@0 343 $this->markTestSkipped(sprintf('This test requires php %s or upper.', $minVersion));
Chris@0 344
Chris@0 345 return;
Chris@0 346 }
Chris@0 347 if ($multibyte && !function_exists('mb_strlen')) {
Chris@0 348 $this->markTestSkipped('The function mb_strlen() is not available');
Chris@0 349
Chris@0 350 return;
Chris@0 351 }
Chris@0 352
Chris@0 353 if (!$success && null !== reset($args)) {
Chris@0 354 $this->setExpectedException('\InvalidArgumentException');
Chris@0 355 }
Chris@0 356
Chris@0 357 call_user_func_array(array('Webmozart\Assert\Assert', 'nullOr'.ucfirst($method)), $args);
Chris@0 358 }
Chris@0 359
Chris@0 360 /**
Chris@0 361 * @dataProvider getMethods
Chris@0 362 */
Chris@0 363 public function testNullOrAcceptsNull($method)
Chris@0 364 {
Chris@0 365 call_user_func(array('Webmozart\Assert\Assert', 'nullOr'.ucfirst($method)), null);
Chris@0 366 }
Chris@0 367
Chris@0 368 /**
Chris@0 369 * @dataProvider getTests
Chris@0 370 */
Chris@0 371 public function testAllArray($method, $args, $success, $multibyte = false, $minVersion = null)
Chris@0 372 {
Chris@0 373 if ($minVersion && PHP_VERSION_ID < $minVersion) {
Chris@0 374 $this->markTestSkipped(sprintf('This test requires php %s or upper.', $minVersion));
Chris@0 375
Chris@0 376 return;
Chris@0 377 }
Chris@0 378 if ($multibyte && !function_exists('mb_strlen')) {
Chris@0 379 $this->markTestSkipped('The function mb_strlen() is not available');
Chris@0 380
Chris@0 381 return;
Chris@0 382 }
Chris@0 383
Chris@0 384 if (!$success) {
Chris@0 385 $this->setExpectedException('\InvalidArgumentException');
Chris@0 386 }
Chris@0 387
Chris@0 388 $arg = array_shift($args);
Chris@0 389 array_unshift($args, array($arg));
Chris@0 390
Chris@0 391 call_user_func_array(array('Webmozart\Assert\Assert', 'all'.ucfirst($method)), $args);
Chris@0 392 }
Chris@0 393
Chris@0 394 /**
Chris@0 395 * @dataProvider getTests
Chris@0 396 */
Chris@0 397 public function testAllTraversable($method, $args, $success, $multibyte = false, $minVersion = null)
Chris@0 398 {
Chris@0 399 if ($minVersion && PHP_VERSION_ID < $minVersion) {
Chris@0 400 $this->markTestSkipped(sprintf('This test requires php %s or upper.', $minVersion));
Chris@0 401
Chris@0 402 return;
Chris@0 403 }
Chris@0 404 if ($multibyte && !function_exists('mb_strlen')) {
Chris@0 405 $this->markTestSkipped('The function mb_strlen() is not available');
Chris@0 406
Chris@0 407 return;
Chris@0 408 }
Chris@0 409
Chris@0 410 if (!$success) {
Chris@0 411 $this->setExpectedException('\InvalidArgumentException');
Chris@0 412 }
Chris@0 413
Chris@0 414 $arg = array_shift($args);
Chris@0 415 array_unshift($args, new ArrayIterator(array($arg)));
Chris@0 416
Chris@0 417 call_user_func_array(array('Webmozart\Assert\Assert', 'all'.ucfirst($method)), $args);
Chris@0 418 }
Chris@0 419
Chris@0 420 public function getStringConversions()
Chris@0 421 {
Chris@0 422 return array(
Chris@0 423 array('integer', array('foobar'), 'Expected an integer. Got: string'),
Chris@0 424 array('string', array(1), 'Expected a string. Got: integer'),
Chris@0 425 array('string', array(true), 'Expected a string. Got: boolean'),
Chris@0 426 array('string', array(null), 'Expected a string. Got: NULL'),
Chris@0 427 array('string', array(array()), 'Expected a string. Got: array'),
Chris@0 428 array('string', array(new stdClass()), 'Expected a string. Got: stdClass'),
Chris@0 429 array('string', array(self::getResource()), 'Expected a string. Got: resource'),
Chris@0 430
Chris@0 431 array('eq', array('1', '2'), 'Expected a value equal to "2". Got: "1"'),
Chris@0 432 array('eq', array(1, 2), 'Expected a value equal to 2. Got: 1'),
Chris@0 433 array('eq', array(true, false), 'Expected a value equal to false. Got: true'),
Chris@0 434 array('eq', array(true, null), 'Expected a value equal to null. Got: true'),
Chris@0 435 array('eq', array(null, true), 'Expected a value equal to true. Got: null'),
Chris@0 436 array('eq', array(array(1), array(2)), 'Expected a value equal to array. Got: array'),
Chris@0 437 array('eq', array(new ArrayIterator(array()), new stdClass()), 'Expected a value equal to stdClass. Got: ArrayIterator'),
Chris@0 438 array('eq', array(1, self::getResource()), 'Expected a value equal to resource. Got: 1'),
Chris@0 439 );
Chris@0 440 }
Chris@0 441
Chris@0 442 /**
Chris@0 443 * @dataProvider getStringConversions
Chris@0 444 */
Chris@0 445 public function testConvertValuesToStrings($method, $args, $exceptionMessage)
Chris@0 446 {
Chris@0 447 $this->setExpectedException('\InvalidArgumentException', $exceptionMessage);
Chris@0 448
Chris@0 449 call_user_func_array(array('Webmozart\Assert\Assert', $method), $args);
Chris@0 450 }
Chris@0 451 }