PageRenderTime 59ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 1ms

/vendor/phpunit/phpunit/Tests/Framework/AssertTest.php

https://bitbucket.org/alexpozdnyakov/kohana
PHP | 4158 lines | 2460 code | 682 blank | 1016 comment | 0 complexity | 89c2bc14a741b042ed999a27a5aa311f MD5 | raw file
Possible License(s): BSD-3-Clause

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. /**
  3. * PHPUnit
  4. *
  5. * Copyright (c) 2001-2012, Sebastian Bergmann <sebastian@phpunit.de>.
  6. * All rights reserved.
  7. *
  8. * Redistribution and use in source and binary forms, with or without
  9. * modification, are permitted provided that the following conditions
  10. * are met:
  11. *
  12. * * Redistributions of source code must retain the above copyright
  13. * notice, this list of conditions and the following disclaimer.
  14. *
  15. * * Redistributions in binary form must reproduce the above copyright
  16. * notice, this list of conditions and the following disclaimer in
  17. * the documentation and/or other materials provided with the
  18. * distribution.
  19. *
  20. * * Neither the name of Sebastian Bergmann nor the names of his
  21. * contributors may be used to endorse or promote products derived
  22. * from this software without specific prior written permission.
  23. *
  24. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  25. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  26. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  27. * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  28. * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  29. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  30. * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  31. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  32. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  33. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
  34. * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  35. * POSSIBILITY OF SUCH DAMAGE.
  36. *
  37. * @package PHPUnit
  38. * @author Sebastian Bergmann <sebastian@phpunit.de>
  39. * @author Bernhard Schussek <bschussek@2bepublished.at>
  40. * @copyright 2001-2012 Sebastian Bergmann <sebastian@phpunit.de>
  41. * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License
  42. * @link http://www.phpunit.de/
  43. * @since File available since Release 2.0.0
  44. */
  45. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'ClassWithNonPublicAttributes.php';
  46. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'SampleClass.php';
  47. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Struct.php';
  48. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'TestIterator.php';
  49. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Author.php';
  50. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Book.php';
  51. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'ClassWithToString.php';
  52. /**
  53. *
  54. *
  55. * @package PHPUnit
  56. * @author Sebastian Bergmann <sebastian@phpunit.de>
  57. * @author Bernhard Schussek <bschussek@2bepublished.at>
  58. * @copyright 2001-2012 Sebastian Bergmann <sebastian@phpunit.de>
  59. * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License
  60. * @link http://www.phpunit.de/
  61. * @since Class available since Release 2.0.0
  62. */
  63. class Framework_AssertTest extends PHPUnit_Framework_TestCase
  64. {
  65. protected $filesDirectory;
  66. protected function setUp()
  67. {
  68. $this->filesDirectory = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR;
  69. $this->html = file_get_contents(
  70. $this->filesDirectory . 'SelectorAssertionsFixture.html'
  71. );
  72. }
  73. /**
  74. * @covers PHPUnit_Framework_Assert::fail
  75. */
  76. public function testFail()
  77. {
  78. try {
  79. $this->fail();
  80. }
  81. catch (PHPUnit_Framework_AssertionFailedError $e) {
  82. return;
  83. }
  84. throw new PHPUnit_Framework_AssertionFailedError('Fail did not throw fail exception');
  85. }
  86. /**
  87. * @covers PHPUnit_Framework_Assert::assertContains
  88. */
  89. public function testAssertSplObjectStorageContainsObject()
  90. {
  91. $a = new stdClass;
  92. $b = new stdClass;
  93. $c = new SplObjectStorage;
  94. $c->attach($a);
  95. $this->assertContains($a, $c);
  96. try {
  97. $this->assertContains($b, $c);
  98. }
  99. catch (PHPUnit_Framework_AssertionFailedError $e) {
  100. return;
  101. }
  102. $this->fail();
  103. }
  104. /**
  105. * @covers PHPUnit_Framework_Assert::assertContains
  106. */
  107. public function testAssertArrayContainsObject()
  108. {
  109. $a = new stdClass;
  110. $b = new stdClass;
  111. $this->assertContains($a, array($a));
  112. try {
  113. $this->assertContains($a, array($b));
  114. }
  115. catch (PHPUnit_Framework_AssertionFailedError $e) {
  116. return;
  117. }
  118. $this->fail();
  119. }
  120. /**
  121. * @covers PHPUnit_Framework_Assert::assertContains
  122. */
  123. public function testAssertArrayContainsString()
  124. {
  125. $this->assertContains('foo', array('foo'));
  126. try {
  127. $this->assertContains('foo', array('bar'));
  128. }
  129. catch (PHPUnit_Framework_AssertionFailedError $e) {
  130. return;
  131. }
  132. $this->fail();
  133. }
  134. /**
  135. * @covers PHPUnit_Framework_Assert::assertContainsOnlyInstancesOf
  136. */
  137. public function testAssertContainsOnlyInstancesOf()
  138. {
  139. $test = array(
  140. new Book(),
  141. new Book
  142. );
  143. $this->assertContainsOnlyInstancesOf('Book', $test);
  144. $this->assertContainsOnlyInstancesOf('stdClass', array(new stdClass()));
  145. $test2 = array(
  146. new Author('Test')
  147. );
  148. try {
  149. $this->assertContainsOnlyInstancesOf('Book', $test2);
  150. } catch (PHPUnit_Framework_AssertionFailedError $e) {
  151. return;
  152. }
  153. $this->fail();
  154. }
  155. /**
  156. * @covers PHPUnit_Framework_Assert::assertArrayHasKey
  157. * @expectedException PHPUnit_Framework_Exception
  158. */
  159. public function testAssertArrayHasKeyThrowsException()
  160. {
  161. $this->assertArrayHasKey(NULL, array());
  162. }
  163. /**
  164. * @covers PHPUnit_Framework_Assert::assertArrayHasKey
  165. */
  166. public function testAssertArrayHasIntegerKey()
  167. {
  168. $this->assertArrayHasKey(0, array('foo'));
  169. try {
  170. $this->assertArrayHasKey(1, array('foo'));
  171. }
  172. catch (PHPUnit_Framework_AssertionFailedError $e) {
  173. return;
  174. }
  175. $this->fail();
  176. }
  177. /**
  178. * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
  179. * @expectedException PHPUnit_Framework_Exception
  180. */
  181. public function testAssertArrayNotHasKeyThrowsException()
  182. {
  183. $this->assertArrayNotHasKey(NULL, array());
  184. }
  185. /**
  186. * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
  187. */
  188. public function testAssertArrayNotHasIntegerKey()
  189. {
  190. $this->assertArrayNotHasKey(1, array('foo'));
  191. try {
  192. $this->assertArrayNotHasKey(0, array('foo'));
  193. }
  194. catch (PHPUnit_Framework_AssertionFailedError $e) {
  195. return;
  196. }
  197. $this->fail();
  198. }
  199. /**
  200. * @covers PHPUnit_Framework_Assert::assertArrayHasKey
  201. */
  202. public function testAssertArrayHasStringKey()
  203. {
  204. $this->assertArrayHasKey('foo', array('foo' => 'bar'));
  205. try {
  206. $this->assertArrayHasKey('bar', array('foo' => 'bar'));
  207. }
  208. catch (PHPUnit_Framework_AssertionFailedError $e) {
  209. return;
  210. }
  211. $this->fail();
  212. }
  213. /**
  214. * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
  215. */
  216. public function testAssertArrayNotHasStringKey()
  217. {
  218. $this->assertArrayNotHasKey('bar', array('foo' => 'bar'));
  219. try {
  220. $this->assertArrayNotHasKey('foo', array('foo' => 'bar'));
  221. }
  222. catch (PHPUnit_Framework_AssertionFailedError $e) {
  223. return;
  224. }
  225. $this->fail();
  226. }
  227. /**
  228. * @covers PHPUnit_Framework_Assert::assertArrayHasKey
  229. */
  230. public function testAssertArrayHasKeyAcceptsArrayAccessValue()
  231. {
  232. $array = new ArrayObject();
  233. $array['foo'] = 'bar';
  234. $this->assertArrayHasKey('foo', $array);
  235. }
  236. /**
  237. * @covers PHPUnit_Framework_Assert::assertArrayHasKey
  238. * @expectedException PHPUnit_Framework_AssertionFailedError
  239. */
  240. public function testAssertArrayHasKeyProperlyFailsWithArrayAccessValue()
  241. {
  242. $array = new ArrayObject();
  243. $array['bar'] = 'bar';
  244. $this->assertArrayHasKey('foo', $array);
  245. }
  246. /**
  247. * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
  248. */
  249. public function testAssertArrayNotHasKeyAcceptsArrayAccessValue()
  250. {
  251. $array = new ArrayObject();
  252. $array['foo'] = 'bar';
  253. $this->assertArrayNotHasKey('bar', $array);
  254. }
  255. /**
  256. * @covers PHPUnit_Framework_Assert::assertArrayNotHasKey
  257. * @expectedException PHPUnit_Framework_AssertionFailedError
  258. */
  259. public function testAssertArrayNotHasKeyPropertlyFailsWithArrayAccessValue()
  260. {
  261. $array = new ArrayObject();
  262. $array['bar'] = 'bar';
  263. $this->assertArrayNotHasKey('bar', $array);
  264. }
  265. /**
  266. * @covers PHPUnit_Framework_Assert::assertContains
  267. * @expectedException PHPUnit_Framework_Exception
  268. */
  269. public function testAssertContainsThrowsException()
  270. {
  271. $this->assertContains(NULL, NULL);
  272. }
  273. /**
  274. * @covers PHPUnit_Framework_Assert::assertContains
  275. */
  276. public function testAssertIteratorContainsObject()
  277. {
  278. $foo = new stdClass;
  279. $this->assertContains($foo, new TestIterator(array($foo)));
  280. try {
  281. $this->assertContains($foo, new TestIterator(array(new stdClass)));
  282. }
  283. catch (PHPUnit_Framework_AssertionFailedError $e) {
  284. return;
  285. }
  286. $this->fail();
  287. }
  288. /**
  289. * @covers PHPUnit_Framework_Assert::assertContains
  290. */
  291. public function testAssertIteratorContainsString()
  292. {
  293. $this->assertContains('foo', new TestIterator(array('foo')));
  294. try {
  295. $this->assertContains('foo', new TestIterator(array('bar')));
  296. }
  297. catch (PHPUnit_Framework_AssertionFailedError $e) {
  298. return;
  299. }
  300. $this->fail();
  301. }
  302. /**
  303. * @covers PHPUnit_Framework_Assert::assertContains
  304. */
  305. public function testAssertStringContainsString()
  306. {
  307. $this->assertContains('foo', 'foobar');
  308. try {
  309. $this->assertContains('foo', 'bar');
  310. }
  311. catch (PHPUnit_Framework_AssertionFailedError $e) {
  312. return;
  313. }
  314. $this->fail();
  315. }
  316. /**
  317. * @covers PHPUnit_Framework_Assert::assertNotContains
  318. * @expectedException PHPUnit_Framework_Exception
  319. */
  320. public function testAssertNotContainsThrowsException()
  321. {
  322. $this->assertNotContains(NULL, NULL);
  323. }
  324. /**
  325. * @covers PHPUnit_Framework_Assert::assertNotContains
  326. */
  327. public function testAssertSplObjectStorageNotContainsObject()
  328. {
  329. $a = new stdClass;
  330. $b = new stdClass;
  331. $c = new SplObjectStorage;
  332. $c->attach($a);
  333. $this->assertNotContains($b, $c);
  334. try {
  335. $this->assertNotContains($a, $c);
  336. }
  337. catch (PHPUnit_Framework_AssertionFailedError $e) {
  338. return;
  339. }
  340. $this->fail();
  341. }
  342. /**
  343. * @covers PHPUnit_Framework_Assert::assertNotContains
  344. */
  345. public function testAssertArrayNotContainsObject()
  346. {
  347. $a = new stdClass;
  348. $b = new stdClass;
  349. $this->assertNotContains($a, array($b));
  350. try {
  351. $this->assertNotContains($a, array($a));
  352. }
  353. catch (PHPUnit_Framework_AssertionFailedError $e) {
  354. return;
  355. }
  356. $this->fail();
  357. }
  358. /**
  359. * @covers PHPUnit_Framework_Assert::assertNotContains
  360. */
  361. public function testAssertArrayNotContainsString()
  362. {
  363. $this->assertNotContains('foo', array('bar'));
  364. try {
  365. $this->assertNotContains('foo', array('foo'));
  366. }
  367. catch (PHPUnit_Framework_AssertionFailedError $e) {
  368. return;
  369. }
  370. $this->fail();
  371. }
  372. /**
  373. * @covers PHPUnit_Framework_Assert::assertNotContains
  374. */
  375. public function testAssertStringNotContainsString()
  376. {
  377. $this->assertNotContains('foo', 'bar');
  378. try {
  379. $this->assertNotContains('foo', 'foo');
  380. }
  381. catch (PHPUnit_Framework_AssertionFailedError $e) {
  382. return;
  383. }
  384. $this->fail();
  385. }
  386. /**
  387. * @covers PHPUnit_Framework_Assert::assertContainsOnly
  388. * @expectedException PHPUnit_Framework_Exception
  389. */
  390. public function testAssertContainsOnlyThrowsException()
  391. {
  392. $this->assertContainsOnly(NULL, NULL);
  393. }
  394. /**
  395. * @covers PHPUnit_Framework_Assert::assertContainsOnlyInstancesOf
  396. * @expectedException PHPUnit_Framework_Exception
  397. */
  398. public function testAssertContainsOnlyInstancesOfThrowsException()
  399. {
  400. $this->assertContainsOnlyInstancesOf(NULL, NULL);
  401. }
  402. /**
  403. * @covers PHPUnit_Framework_Assert::assertContainsOnly
  404. */
  405. public function testAssertArrayContainsOnlyIntegers()
  406. {
  407. $this->assertContainsOnly('integer', array(1, 2, 3));
  408. try {
  409. $this->assertContainsOnly('integer', array("1", 2, 3));
  410. }
  411. catch (PHPUnit_Framework_AssertionFailedError $e) {
  412. return;
  413. }
  414. $this->fail();
  415. }
  416. /**
  417. * @covers PHPUnit_Framework_Assert::assertNotContainsOnly
  418. */
  419. public function testAssertArrayNotContainsOnlyIntegers()
  420. {
  421. $this->assertNotContainsOnly('integer', array("1", 2, 3));
  422. try {
  423. $this->assertNotContainsOnly('integer', array(1, 2, 3));
  424. }
  425. catch (PHPUnit_Framework_AssertionFailedError $e) {
  426. return;
  427. }
  428. $this->fail();
  429. }
  430. /**
  431. * @covers PHPUnit_Framework_Assert::assertContainsOnly
  432. */
  433. public function testAssertArrayContainsOnlyStdClass()
  434. {
  435. $this->assertContainsOnly('StdClass', array(new StdClass));
  436. try {
  437. $this->assertContainsOnly('StdClass', array('StdClass'));
  438. }
  439. catch (PHPUnit_Framework_AssertionFailedError $e) {
  440. return;
  441. }
  442. $this->fail();
  443. }
  444. /**
  445. * @covers PHPUnit_Framework_Assert::assertNotContainsOnly
  446. */
  447. public function testAssertArrayNotContainsOnlyStdClass()
  448. {
  449. $this->assertNotContainsOnly('StdClass', array('StdClass'));
  450. try {
  451. $this->assertNotContainsOnly('StdClass', array(new StdClass));
  452. }
  453. catch (PHPUnit_Framework_AssertionFailedError $e) {
  454. return;
  455. }
  456. $this->fail();
  457. }
  458. protected function createDOMDocument($content)
  459. {
  460. $document = new DOMDocument;
  461. $document->preserveWhiteSpace = FALSE;
  462. $document->loadXML($content);
  463. return $document;
  464. }
  465. protected function sameValues()
  466. {
  467. $object = new SampleClass(4, 8, 15);
  468. // cannot use $filesDirectory, because neither setUp() nor
  469. // setUpBeforeClass() are executed before the data providers
  470. $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'foo.xml';
  471. $resource = fopen($file, 'r');
  472. return array(
  473. // NULL
  474. array(NULL, NULL),
  475. // strings
  476. array('a', 'a'),
  477. // integers
  478. array(0, 0),
  479. // floats
  480. array(2.3, 2.3),
  481. array(1/3, 1 - 2/3),
  482. array(log(0), log(0)),
  483. // arrays
  484. array(array(), array()),
  485. array(array(0 => 1), array(0 => 1)),
  486. array(array(0 => NULL), array(0 => NULL)),
  487. array(array('a', 'b' => array(1, 2)), array('a', 'b' => array(1, 2))),
  488. // objects
  489. array($object, $object),
  490. // resources
  491. array($resource, $resource),
  492. );
  493. }
  494. protected function notEqualValues()
  495. {
  496. // cyclic dependencies
  497. $book1 = new Book;
  498. $book1->author = new Author('Terry Pratchett');
  499. $book1->author->books[] = $book1;
  500. $book2 = new Book;
  501. $book2->author = new Author('Terry Pratch');
  502. $book2->author->books[] = $book2;
  503. $book3 = new Book;
  504. $book3->author = 'Terry Pratchett';
  505. $book4 = new stdClass;
  506. $book4->author = 'Terry Pratchett';
  507. $object1 = new SampleClass( 4, 8, 15);
  508. $object2 = new SampleClass(16, 23, 42);
  509. $object3 = new SampleClass( 4, 8, 15);
  510. $storage1 = new SplObjectStorage;
  511. $storage1->attach($object1);
  512. $storage2 = new SplObjectStorage;
  513. $storage2->attach($object3); // same content, different object
  514. // cannot use $filesDirectory, because neither setUp() nor
  515. // setUpBeforeClass() are executed before the data providers
  516. $file = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'foo.xml';
  517. return array(
  518. // strings
  519. array('a', 'b'),
  520. array('a', 'A'),
  521. // integers
  522. array(1, 2),
  523. array(2, 1),
  524. // floats
  525. array(2.3, 4.2),
  526. array(2.3, 4.2, 0.5),
  527. array(array(2.3), array(4.2), 0.5),
  528. array(array(array(2.3)), array(array(4.2)), 0.5),
  529. array(new Struct(2.3), new Struct(4.2), 0.5),
  530. array(array(new Struct(2.3)), array(new Struct(4.2)), 0.5),
  531. // arrays
  532. array(array(), array(0 => 1)),
  533. array(array(0 => 1), array()),
  534. array(array(0 => NULL), array()),
  535. array(array(0 => 1, 1 => 2), array(0 => 1, 1 => 3)),
  536. array(array('a', 'b' => array(1, 2)), array('a', 'b' => array(2, 1))),
  537. // objects
  538. array(new SampleClass(4, 8, 15), new SampleClass(16, 23, 42)),
  539. array($object1, $object2),
  540. array($book1, $book2),
  541. array($book3, $book4), // same content, different class
  542. // resources
  543. array(fopen($file, 'r'), fopen($file, 'r')),
  544. // SplObjectStorage
  545. array($storage1, $storage2),
  546. // DOMDocument
  547. array(
  548. $this->createDOMDocument('<root></root>'),
  549. $this->createDOMDocument('<bar/>'),
  550. ),
  551. array(
  552. $this->createDOMDocument('<foo attr1="bar"/>'),
  553. $this->createDOMDocument('<foo attr1="foobar"/>'),
  554. ),
  555. array(
  556. $this->createDOMDocument('<foo> bar </foo>'),
  557. $this->createDOMDocument('<foo />'),
  558. ),
  559. array(
  560. $this->createDOMDocument('<foo xmlns="urn:myns:bar"/>'),
  561. $this->createDOMDocument('<foo xmlns="urn:notmyns:bar"/>'),
  562. ),
  563. array(
  564. $this->createDOMDocument('<foo> bar </foo>'),
  565. $this->createDOMDocument('<foo> bir </foo>'),
  566. ),
  567. // Exception
  568. //array(new Exception('Exception 1'), new Exception('Exception 2')),
  569. // different types
  570. array(new SampleClass(4, 8, 15), FALSE),
  571. array(FALSE, new SampleClass(4, 8, 15)),
  572. array(array(0 => 1, 1 => 2), FALSE),
  573. array(FALSE, array(0 => 1, 1 => 2)),
  574. array(array(), new stdClass),
  575. array(new stdClass, array()),
  576. // PHP: 0 == 'Foobar' => TRUE!
  577. // We want these values to differ
  578. array(0, 'Foobar'),
  579. array('Foobar', 0),
  580. array(3, acos(8)),
  581. array(acos(8), 3)
  582. );
  583. }
  584. protected function equalValues()
  585. {
  586. // cyclic dependencies
  587. $book1 = new Book;
  588. $book1->author = new Author('Terry Pratchett');
  589. $book1->author->books[] = $book1;
  590. $book2 = new Book;
  591. $book2->author = new Author('Terry Pratchett');
  592. $book2->author->books[] = $book2;
  593. $object1 = new SampleClass(4, 8, 15);
  594. $object2 = new SampleClass(4, 8, 15);
  595. $storage1 = new SplObjectStorage;
  596. $storage1->attach($object1);
  597. $storage2 = new SplObjectStorage;
  598. $storage2->attach($object1);
  599. return array(
  600. // strings
  601. array('a', 'A', 0, FALSE, TRUE), // ignore case
  602. // arrays
  603. array(array('a' => 1, 'b' => 2), array('b' => 2, 'a' => 1)),
  604. array(array(1), array('1')),
  605. array(array(3, 2, 1), array(2, 3, 1), 0, TRUE), // canonicalized comparison
  606. // floats
  607. array(2.3, 2.5, 0.5),
  608. array(array(2.3), array(2.5), 0.5),
  609. array(array(array(2.3)), array(array(2.5)), 0.5),
  610. array(new Struct(2.3), new Struct(2.5), 0.5),
  611. array(array(new Struct(2.3)), array(new Struct(2.5)), 0.5),
  612. // numeric with delta
  613. array(1, 2, 1),
  614. // objects
  615. array($object1, $object2),
  616. array($book1, $book2),
  617. // SplObjectStorage
  618. array($storage1, $storage2),
  619. // DOMDocument
  620. array(
  621. $this->createDOMDocument('<root></root>'),
  622. $this->createDOMDocument('<root/>'),
  623. ),
  624. array(
  625. $this->createDOMDocument('<root attr="bar"></root>'),
  626. $this->createDOMDocument('<root attr="bar"/>'),
  627. ),
  628. array(
  629. $this->createDOMDocument('<root><foo attr="bar"></foo></root>'),
  630. $this->createDOMDocument('<root><foo attr="bar"/></root>'),
  631. ),
  632. array(
  633. $this->createDOMDocument("<root>\n <child/>\n</root>"),
  634. $this->createDOMDocument('<root><child/></root>'),
  635. ),
  636. // Exception
  637. //array(new Exception('Exception 1'), new Exception('Exception 1')),
  638. // mixed types
  639. array(0, '0'),
  640. array('0', 0),
  641. array(2.3, '2.3'),
  642. array('2.3', 2.3),
  643. array((string)(1/3), 1 - 2/3),
  644. array(1/3, (string)(1 - 2/3)),
  645. array('string representation', new ClassWithToString),
  646. array(new ClassWithToString, 'string representation'),
  647. );
  648. }
  649. public function equalProvider()
  650. {
  651. // same |= equal
  652. return array_merge($this->equalValues(), $this->sameValues());
  653. }
  654. public function notEqualProvider()
  655. {
  656. return $this->notEqualValues();
  657. }
  658. public function sameProvider()
  659. {
  660. return $this->sameValues();
  661. }
  662. public function notSameProvider()
  663. {
  664. // not equal |= not same
  665. // equal, ¬same |= not same
  666. return array_merge($this->notEqualValues(), $this->equalValues());
  667. }
  668. /**
  669. * @covers PHPUnit_Framework_Assert::assertEquals
  670. * @dataProvider equalProvider
  671. */
  672. public function testAssertEqualsSucceeds($a, $b, $delta = 0, $canonicalize = FALSE, $ignoreCase = FALSE)
  673. {
  674. $this->assertEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
  675. }
  676. /**
  677. * @covers PHPUnit_Framework_Assert::assertEquals
  678. * @dataProvider notEqualProvider
  679. */
  680. public function testAssertEqualsFails($a, $b, $delta = 0, $canonicalize = FALSE, $ignoreCase = FALSE)
  681. {
  682. try {
  683. $this->assertEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
  684. }
  685. catch (PHPUnit_Framework_AssertionFailedError $e) {
  686. return;
  687. }
  688. $this->fail();
  689. }
  690. /**
  691. * @covers PHPUnit_Framework_Assert::assertNotEquals
  692. * @dataProvider notEqualProvider
  693. */
  694. public function testAssertNotEqualsSucceeds($a, $b, $delta = 0, $canonicalize = FALSE, $ignoreCase = FALSE)
  695. {
  696. $this->assertNotEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
  697. }
  698. /**
  699. * @covers PHPUnit_Framework_Assert::assertNotEquals
  700. * @dataProvider equalProvider
  701. */
  702. public function testAssertNotEqualsFails($a, $b, $delta = 0, $canonicalize = FALSE, $ignoreCase = FALSE)
  703. {
  704. try {
  705. $this->assertNotEquals($a, $b, '', $delta, 10, $canonicalize, $ignoreCase);
  706. }
  707. catch (PHPUnit_Framework_AssertionFailedError $e) {
  708. return;
  709. }
  710. $this->fail();
  711. }
  712. /**
  713. * @covers PHPUnit_Framework_Assert::assertSame
  714. * @dataProvider sameProvider
  715. */
  716. public function testAssertSameSucceeds($a, $b)
  717. {
  718. $this->assertSame($a, $b);
  719. }
  720. /**
  721. * @covers PHPUnit_Framework_Assert::assertSame
  722. * @dataProvider notSameProvider
  723. */
  724. public function testAssertSameFails($a, $b)
  725. {
  726. try {
  727. $this->assertSame($a, $b);
  728. }
  729. catch (PHPUnit_Framework_AssertionFailedError $e) {
  730. return;
  731. }
  732. $this->fail();
  733. }
  734. /**
  735. * @covers PHPUnit_Framework_Assert::assertNotSame
  736. * @dataProvider notSameProvider
  737. */
  738. public function testAssertNotSameSucceeds($a, $b)
  739. {
  740. $this->assertNotSame($a, $b);
  741. }
  742. /**
  743. * @covers PHPUnit_Framework_Assert::assertNotSame
  744. * @dataProvider sameProvider
  745. */
  746. public function testAssertNotSameFails($a, $b)
  747. {
  748. try {
  749. $this->assertNotSame($a, $b);
  750. }
  751. catch (PHPUnit_Framework_AssertionFailedError $e) {
  752. return;
  753. }
  754. $this->fail();
  755. }
  756. /**
  757. * @covers PHPUnit_Framework_Assert::assertXmlFileEqualsXmlFile
  758. */
  759. public function testAssertXmlFileEqualsXmlFile()
  760. {
  761. $this->assertXmlFileEqualsXmlFile(
  762. $this->filesDirectory . 'foo.xml',
  763. $this->filesDirectory . 'foo.xml'
  764. );
  765. try {
  766. $this->assertXmlFileEqualsXmlFile(
  767. $this->filesDirectory . 'foo.xml',
  768. $this->filesDirectory . 'bar.xml'
  769. );
  770. }
  771. catch (PHPUnit_Framework_AssertionFailedError $e) {
  772. return;
  773. }
  774. $this->fail();
  775. }
  776. /**
  777. * @covers PHPUnit_Framework_Assert::assertXmlFileNotEqualsXmlFile
  778. */
  779. public function testAssertXmlFileNotEqualsXmlFile()
  780. {
  781. $this->assertXmlFileNotEqualsXmlFile(
  782. $this->filesDirectory . 'foo.xml',
  783. $this->filesDirectory . 'bar.xml'
  784. );
  785. try {
  786. $this->assertXmlFileNotEqualsXmlFile(
  787. $this->filesDirectory . 'foo.xml',
  788. $this->filesDirectory . 'foo.xml'
  789. );
  790. }
  791. catch (PHPUnit_Framework_AssertionFailedError $e) {
  792. return;
  793. }
  794. $this->fail();
  795. }
  796. /**
  797. * @covers PHPUnit_Framework_Assert::assertXmlStringEqualsXmlFile
  798. */
  799. public function testAssertXmlStringEqualsXmlFile()
  800. {
  801. $this->assertXmlStringEqualsXmlFile(
  802. $this->filesDirectory . 'foo.xml',
  803. file_get_contents($this->filesDirectory . 'foo.xml')
  804. );
  805. try {
  806. $this->assertXmlStringEqualsXmlFile(
  807. $this->filesDirectory . 'foo.xml',
  808. file_get_contents($this->filesDirectory . 'bar.xml')
  809. );
  810. }
  811. catch (PHPUnit_Framework_AssertionFailedError $e) {
  812. return;
  813. }
  814. $this->fail();
  815. }
  816. /**
  817. * @covers PHPUnit_Framework_Assert::assertXmlStringNotEqualsXmlFile
  818. */
  819. public function testXmlStringNotEqualsXmlFile()
  820. {
  821. $this->assertXmlStringNotEqualsXmlFile(
  822. $this->filesDirectory . 'foo.xml',
  823. file_get_contents($this->filesDirectory . 'bar.xml')
  824. );
  825. try {
  826. $this->assertXmlStringNotEqualsXmlFile(
  827. $this->filesDirectory . 'foo.xml',
  828. file_get_contents($this->filesDirectory . 'foo.xml')
  829. );
  830. }
  831. catch (PHPUnit_Framework_AssertionFailedError $e) {
  832. return;
  833. }
  834. $this->fail();
  835. }
  836. /**
  837. * @covers PHPUnit_Framework_Assert::assertXmlStringEqualsXmlString
  838. */
  839. public function testAssertXmlStringEqualsXmlString()
  840. {
  841. $this->assertXmlStringEqualsXmlString('<root/>', '<root/>');
  842. try {
  843. $this->assertXmlStringEqualsXmlString('<foo/>', '<bar/>');
  844. }
  845. catch (PHPUnit_Framework_AssertionFailedError $e) {
  846. return;
  847. }
  848. $this->fail();
  849. }
  850. /**
  851. * @covers PHPUnit_Framework_Assert::assertXmlStringNotEqualsXmlString
  852. */
  853. public function testAssertXmlStringNotEqualsXmlString()
  854. {
  855. $this->assertXmlStringNotEqualsXmlString('<foo/>', '<bar/>');
  856. try {
  857. $this->assertXmlStringNotEqualsXmlString('<root/>', '<root/>');
  858. }
  859. catch (PHPUnit_Framework_AssertionFailedError $e) {
  860. return;
  861. }
  862. $this->fail();
  863. }
  864. /**
  865. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  866. */
  867. public function testXMLStructureIsSame()
  868. {
  869. $expected = new DOMDocument;
  870. $expected->load($this->filesDirectory . 'structureExpected.xml');
  871. $actual = new DOMDocument;
  872. $actual->load($this->filesDirectory . 'structureExpected.xml');
  873. $this->assertEqualXMLStructure(
  874. $expected->firstChild, $actual->firstChild, TRUE
  875. );
  876. }
  877. /**
  878. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  879. * @expectedException PHPUnit_Framework_ExpectationFailedException
  880. */
  881. public function testXMLStructureWrongNumberOfAttributes()
  882. {
  883. $expected = new DOMDocument;
  884. $expected->load($this->filesDirectory . 'structureExpected.xml');
  885. $actual = new DOMDocument;
  886. $actual->load($this->filesDirectory . 'structureWrongNumberOfAttributes.xml');
  887. $this->assertEqualXMLStructure(
  888. $expected->firstChild, $actual->firstChild, TRUE
  889. );
  890. }
  891. /**
  892. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  893. * @expectedException PHPUnit_Framework_ExpectationFailedException
  894. */
  895. public function testXMLStructureWrongNumberOfNodes()
  896. {
  897. $expected = new DOMDocument;
  898. $expected->load($this->filesDirectory . 'structureExpected.xml');
  899. $actual = new DOMDocument;
  900. $actual->load($this->filesDirectory . 'structureWrongNumberOfNodes.xml');
  901. $this->assertEqualXMLStructure(
  902. $expected->firstChild, $actual->firstChild, TRUE
  903. );
  904. }
  905. /**
  906. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  907. */
  908. public function testXMLStructureIsSameButDataIsNot()
  909. {
  910. $expected = new DOMDocument;
  911. $expected->load($this->filesDirectory . 'structureExpected.xml');
  912. $actual = new DOMDocument;
  913. $actual->load($this->filesDirectory . 'structureIsSameButDataIsNot.xml');
  914. $this->assertEqualXMLStructure(
  915. $expected->firstChild, $actual->firstChild, TRUE
  916. );
  917. }
  918. /**
  919. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  920. */
  921. public function testXMLStructureAttributesAreSameButValuesAreNot()
  922. {
  923. $expected = new DOMDocument;
  924. $expected->load($this->filesDirectory . 'structureExpected.xml');
  925. $actual = new DOMDocument;
  926. $actual->load($this->filesDirectory . 'structureAttributesAreSameButValuesAreNot.xml');
  927. $this->assertEqualXMLStructure(
  928. $expected->firstChild, $actual->firstChild, TRUE
  929. );
  930. }
  931. /**
  932. * @covers PHPUnit_Framework_Assert::assertEqualXMLStructure
  933. */
  934. public function testXMLStructureIgnoreTextNodes()
  935. {
  936. $expected = new DOMDocument;
  937. $expected->load($this->filesDirectory . 'structureExpected.xml');
  938. $actual = new DOMDocument;
  939. $actual->load($this->filesDirectory . 'structureIgnoreTextNodes.xml');
  940. $this->assertEqualXMLStructure(
  941. $expected->firstChild, $actual->firstChild, TRUE
  942. );
  943. }
  944. /**
  945. * @covers PHPUnit_Framework_Assert::assertEquals
  946. */
  947. public function testAssertStringEqualsNumeric()
  948. {
  949. $this->assertEquals('0', 0);
  950. try {
  951. $this->assertEquals('0', 1);
  952. }
  953. catch (PHPUnit_Framework_AssertionFailedError $e) {
  954. return;
  955. }
  956. $this->fail();
  957. }
  958. /**
  959. * @covers PHPUnit_Framework_Assert::assertNotEquals
  960. */
  961. public function testAssertStringEqualsNumeric2()
  962. {
  963. $this->assertNotEquals('A', 0);
  964. }
  965. /**
  966. * @covers PHPUnit_Framework_Assert::assertFileExists
  967. * @expectedException PHPUnit_Framework_Exception
  968. */
  969. public function testAssertFileExistsThrowsException()
  970. {
  971. $this->assertFileExists(NULL);
  972. }
  973. /**
  974. * @covers PHPUnit_Framework_Assert::assertFileExists
  975. */
  976. public function testAssertFileExists()
  977. {
  978. $this->assertFileExists(__FILE__);
  979. try {
  980. $this->assertFileExists(__DIR__ . DIRECTORY_SEPARATOR . 'NotExisting');
  981. }
  982. catch (PHPUnit_Framework_AssertionFailedError $e) {
  983. return;
  984. }
  985. $this->fail();
  986. }
  987. /**
  988. * @covers PHPUnit_Framework_Assert::assertFileNotExists
  989. * @expectedException PHPUnit_Framework_Exception
  990. */
  991. public function testAssertFileNotExistsThrowsException()
  992. {
  993. $this->assertFileNotExists(NULL);
  994. }
  995. /**
  996. * @covers PHPUnit_Framework_Assert::assertFileNotExists
  997. */
  998. public function testAssertFileNotExists()
  999. {
  1000. $this->assertFileNotExists(__DIR__ . DIRECTORY_SEPARATOR . 'NotExisting');
  1001. try {
  1002. $this->assertFileNotExists(__FILE__);
  1003. }
  1004. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1005. return;
  1006. }
  1007. $this->fail();
  1008. }
  1009. /**
  1010. * @covers PHPUnit_Framework_Assert::assertObjectHasAttribute
  1011. */
  1012. public function testAssertObjectHasAttribute()
  1013. {
  1014. $o = new Author('Terry Pratchett');
  1015. $this->assertObjectHasAttribute('name', $o);
  1016. try {
  1017. $this->assertObjectHasAttribute('foo', $o);
  1018. }
  1019. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1020. return;
  1021. }
  1022. $this->fail();
  1023. }
  1024. /**
  1025. * @covers PHPUnit_Framework_Assert::assertObjectNotHasAttribute
  1026. */
  1027. public function testAssertObjectNotHasAttribute()
  1028. {
  1029. $o = new Author('Terry Pratchett');
  1030. $this->assertObjectNotHasAttribute('foo', $o);
  1031. try {
  1032. $this->assertObjectNotHasAttribute('name', $o);
  1033. }
  1034. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1035. return;
  1036. }
  1037. $this->fail();
  1038. }
  1039. /**
  1040. * @covers PHPUnit_Framework_Assert::assertNull
  1041. */
  1042. public function testAssertNull()
  1043. {
  1044. $this->assertNull(NULL);
  1045. try {
  1046. $this->assertNull(new stdClass);
  1047. }
  1048. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1049. return;
  1050. }
  1051. $this->fail();
  1052. }
  1053. /**
  1054. * @covers PHPUnit_Framework_Assert::assertNotNull
  1055. */
  1056. public function testAssertNotNull()
  1057. {
  1058. $this->assertNotNull(new stdClass);
  1059. try {
  1060. $this->assertNotNull(NULL);
  1061. }
  1062. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1063. return;
  1064. }
  1065. $this->fail();
  1066. }
  1067. /**
  1068. * @covers PHPUnit_Framework_Assert::assertTrue
  1069. */
  1070. public function testAssertTrue()
  1071. {
  1072. $this->assertTrue(TRUE);
  1073. try {
  1074. $this->assertTrue(FALSE);
  1075. }
  1076. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1077. return;
  1078. }
  1079. $this->fail();
  1080. }
  1081. /**
  1082. * @covers PHPUnit_Framework_Assert::assertFalse
  1083. */
  1084. public function testAssertFalse()
  1085. {
  1086. $this->assertFalse(FALSE);
  1087. try {
  1088. $this->assertFalse(TRUE);
  1089. }
  1090. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1091. return;
  1092. }
  1093. $this->fail();
  1094. }
  1095. /**
  1096. * @covers PHPUnit_Framework_Assert::assertRegExp
  1097. * @expectedException PHPUnit_Framework_Exception
  1098. */
  1099. public function testAssertRegExpThrowsException()
  1100. {
  1101. $this->assertRegExp(NULL, NULL);
  1102. }
  1103. /**
  1104. * @covers PHPUnit_Framework_Assert::assertRegExp
  1105. * @expectedException PHPUnit_Framework_Exception
  1106. */
  1107. public function testAssertRegExpThrowsException2()
  1108. {
  1109. $this->assertRegExp('', NULL);
  1110. }
  1111. /**
  1112. * @covers PHPUnit_Framework_Assert::assertNotRegExp
  1113. * @expectedException PHPUnit_Framework_Exception
  1114. */
  1115. public function testAssertNotRegExpThrowsException()
  1116. {
  1117. $this->assertNotRegExp(NULL, NULL);
  1118. }
  1119. /**
  1120. * @covers PHPUnit_Framework_Assert::assertNotRegExp
  1121. * @expectedException PHPUnit_Framework_Exception
  1122. */
  1123. public function testAssertNotRegExpThrowsException2()
  1124. {
  1125. $this->assertNotRegExp('', NULL);
  1126. }
  1127. /**
  1128. * @covers PHPUnit_Framework_Assert::assertRegExp
  1129. */
  1130. public function testAssertRegExp()
  1131. {
  1132. $this->assertRegExp('/foo/', 'foobar');
  1133. try {
  1134. $this->assertRegExp('/foo/', 'bar');
  1135. }
  1136. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1137. return;
  1138. }
  1139. $this->fail();
  1140. }
  1141. /**
  1142. * @covers PHPUnit_Framework_Assert::assertNotRegExp
  1143. */
  1144. public function testAssertNotRegExp()
  1145. {
  1146. $this->assertNotRegExp('/foo/', 'bar');
  1147. try {
  1148. $this->assertNotRegExp('/foo/', 'foobar');
  1149. }
  1150. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1151. return;
  1152. }
  1153. $this->fail();
  1154. }
  1155. /**
  1156. * @covers PHPUnit_Framework_Assert::assertSame
  1157. */
  1158. public function testAssertSame()
  1159. {
  1160. $o = new stdClass;
  1161. $this->assertSame($o, $o);
  1162. try {
  1163. $this->assertSame(
  1164. new stdClass,
  1165. new stdClass
  1166. );
  1167. }
  1168. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1169. return;
  1170. }
  1171. $this->fail();
  1172. }
  1173. /**
  1174. * @covers PHPUnit_Framework_Assert::assertSame
  1175. */
  1176. public function testAssertSame2()
  1177. {
  1178. $this->assertSame(TRUE, TRUE);
  1179. $this->assertSame(FALSE, FALSE);
  1180. try {
  1181. $this->assertSame(TRUE, FALSE);
  1182. }
  1183. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1184. return;
  1185. }
  1186. $this->fail();
  1187. }
  1188. /**
  1189. * @covers PHPUnit_Framework_Assert::assertNotSame
  1190. */
  1191. public function testAssertNotSame()
  1192. {
  1193. $this->assertNotSame(
  1194. new stdClass,
  1195. NULL
  1196. );
  1197. $this->assertNotSame(
  1198. NULL,
  1199. new stdClass
  1200. );
  1201. $this->assertNotSame(
  1202. new stdClass,
  1203. new stdClass
  1204. );
  1205. $o = new stdClass;
  1206. try {
  1207. $this->assertNotSame($o, $o);
  1208. }
  1209. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1210. return;
  1211. }
  1212. $this->fail();
  1213. }
  1214. /**
  1215. * @covers PHPUnit_Framework_Assert::assertNotSame
  1216. */
  1217. public function testAssertNotSame2()
  1218. {
  1219. $this->assertNotSame(TRUE, FALSE);
  1220. $this->assertNotSame(FALSE, TRUE);
  1221. try {
  1222. $this->assertNotSame(TRUE, TRUE);
  1223. }
  1224. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1225. return;
  1226. }
  1227. $this->fail();
  1228. }
  1229. /**
  1230. * @covers PHPUnit_Framework_Assert::assertNotSame
  1231. */
  1232. public function testAssertNotSameFailsNull()
  1233. {
  1234. try {
  1235. $this->assertNotSame(NULL, NULL);
  1236. }
  1237. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1238. return;
  1239. }
  1240. $this->fail();
  1241. }
  1242. /**
  1243. * @covers PHPUnit_Framework_Assert::assertGreaterThan
  1244. */
  1245. public function testGreaterThan()
  1246. {
  1247. $this->assertGreaterThan(1, 2);
  1248. try {
  1249. $this->assertGreaterThan(2, 1);
  1250. }
  1251. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1252. return;
  1253. }
  1254. $this->fail();
  1255. }
  1256. /**
  1257. * @covers PHPUnit_Framework_Assert::assertAttributeGreaterThan
  1258. */
  1259. public function testAttributeGreaterThan()
  1260. {
  1261. $this->assertAttributeGreaterThan(
  1262. 1, 'bar', new ClassWithNonPublicAttributes
  1263. );
  1264. try {
  1265. $this->assertAttributeGreaterThan(
  1266. 1, 'foo', new ClassWithNonPublicAttributes
  1267. );
  1268. }
  1269. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1270. return;
  1271. }
  1272. $this->fail();
  1273. }
  1274. /**
  1275. * @covers PHPUnit_Framework_Assert::assertGreaterThanOrEqual
  1276. */
  1277. public function testGreaterThanOrEqual()
  1278. {
  1279. $this->assertGreaterThanOrEqual(1, 2);
  1280. try {
  1281. $this->assertGreaterThanOrEqual(2, 1);
  1282. }
  1283. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1284. return;
  1285. }
  1286. $this->fail();
  1287. }
  1288. /**
  1289. * @covers PHPUnit_Framework_Assert::assertAttributeGreaterThanOrEqual
  1290. */
  1291. public function testAttributeGreaterThanOrEqual()
  1292. {
  1293. $this->assertAttributeGreaterThanOrEqual(
  1294. 1, 'bar', new ClassWithNonPublicAttributes
  1295. );
  1296. try {
  1297. $this->assertAttributeGreaterThanOrEqual(
  1298. 2, 'foo', new ClassWithNonPublicAttributes
  1299. );
  1300. }
  1301. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1302. return;
  1303. }
  1304. $this->fail();
  1305. }
  1306. /**
  1307. * @covers PHPUnit_Framework_Assert::assertLessThan
  1308. */
  1309. public function testLessThan()
  1310. {
  1311. $this->assertLessThan(2, 1);
  1312. try {
  1313. $this->assertLessThan(1, 2);
  1314. }
  1315. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1316. return;
  1317. }
  1318. $this->fail();
  1319. }
  1320. /**
  1321. * @covers PHPUnit_Framework_Assert::assertAttributeLessThan
  1322. */
  1323. public function testAttributeLessThan()
  1324. {
  1325. $this->assertAttributeLessThan(
  1326. 2, 'foo', new ClassWithNonPublicAttributes
  1327. );
  1328. try {
  1329. $this->assertAttributeLessThan(
  1330. 1, 'bar', new ClassWithNonPublicAttributes
  1331. );
  1332. }
  1333. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1334. return;
  1335. }
  1336. $this->fail();
  1337. }
  1338. /**
  1339. * @covers PHPUnit_Framework_Assert::assertLessThanOrEqual
  1340. */
  1341. public function testLessThanOrEqual()
  1342. {
  1343. $this->assertLessThanOrEqual(2, 1);
  1344. try {
  1345. $this->assertLessThanOrEqual(1, 2);
  1346. }
  1347. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1348. return;
  1349. }
  1350. $this->fail();
  1351. }
  1352. /**
  1353. * @covers PHPUnit_Framework_Assert::assertAttributeLessThanOrEqual
  1354. */
  1355. public function testAttributeLessThanOrEqual()
  1356. {
  1357. $this->assertAttributeLessThanOrEqual(
  1358. 2, 'foo', new ClassWithNonPublicAttributes
  1359. );
  1360. try {
  1361. $this->assertAttributeLessThanOrEqual(
  1362. 1, 'bar', new ClassWithNonPublicAttributes
  1363. );
  1364. }
  1365. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1366. return;
  1367. }
  1368. $this->fail();
  1369. }
  1370. /**
  1371. * @covers PHPUnit_Framework_Assert::readAttribute
  1372. */
  1373. public function testReadAttribute()
  1374. {
  1375. $obj = new ClassWithNonPublicAttributes;
  1376. $this->assertEquals('foo', $this->readAttribute($obj, 'publicAttribute'));
  1377. $this->assertEquals('bar', $this->readAttribute($obj, 'protectedAttribute'));
  1378. $this->assertEquals('baz', $this->readAttribute($obj, 'privateAttribute'));
  1379. $this->assertEquals('bar', $this->readAttribute($obj, 'protectedParentAttribute'));
  1380. //$this->assertEquals('bar', $this->readAttribute($obj, 'privateParentAttribute'));
  1381. }
  1382. /**
  1383. * @covers PHPUnit_Framework_Assert::readAttribute
  1384. */
  1385. public function testReadAttribute2()
  1386. {
  1387. $this->assertEquals('foo', $this->readAttribute('ClassWithNonPublicAttributes', 'publicStaticAttribute'));
  1388. $this->assertEquals('bar', $this->readAttribute('ClassWithNonPublicAttributes', 'protectedStaticAttribute'));
  1389. $this->assertEquals('baz', $this->readAttribute('ClassWithNonPublicAttributes', 'privateStaticAttribute'));
  1390. $this->assertEquals('foo', $this->readAttribute('ClassWithNonPublicAttributes', 'protectedStaticParentAttribute'));
  1391. $this->assertEquals('foo', $this->readAttribute('ClassWithNonPublicAttributes', 'privateStaticParentAttribute'));
  1392. }
  1393. /**
  1394. * @covers PHPUnit_Framework_Assert::readAttribute
  1395. * @expectedException PHPUnit_Framework_Exception
  1396. */
  1397. public function testReadAttribute3()
  1398. {
  1399. $this->readAttribute('StdClass', NULL);
  1400. }
  1401. /**
  1402. * @covers PHPUnit_Framework_Assert::readAttribute
  1403. * @expectedException PHPUnit_Framework_Exception
  1404. */
  1405. public function testReadAttribute4()
  1406. {
  1407. $this->readAttribute('NotExistingClass', 'foo');
  1408. }
  1409. /**
  1410. * @covers PHPUnit_Framework_Assert::readAttribute
  1411. * @expectedException PHPUnit_Framework_Exception
  1412. */
  1413. public function testReadAttribute5()
  1414. {
  1415. $this->readAttribute(NULL, 'foo');
  1416. }
  1417. /**
  1418. * @covers PHPUnit_Framework_Assert::assertAttributeContains
  1419. */
  1420. public function testAssertPublicAttributeContains()
  1421. {
  1422. $obj = new ClassWithNonPublicAttributes;
  1423. $this->assertAttributeContains('foo', 'publicArray', $obj);
  1424. try {
  1425. $this->assertAttributeContains('bar', 'publicArray', $obj);
  1426. }
  1427. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1428. return;
  1429. }
  1430. $this->fail();
  1431. }
  1432. /**
  1433. * @covers PHPUnit_Framework_Assert::assertAttributeContainsOnly
  1434. */
  1435. public function testAssertPublicAttributeContainsOnly()
  1436. {
  1437. $obj = new ClassWithNonPublicAttributes;
  1438. $this->assertAttributeContainsOnly('string', 'publicArray', $obj);
  1439. try {
  1440. $this->assertAttributeContainsOnly('integer', 'publicArray', $obj);
  1441. }
  1442. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1443. return;
  1444. }
  1445. $this->fail();
  1446. }
  1447. /**
  1448. * @covers PHPUnit_Framework_Assert::assertAttributeNotContains
  1449. */
  1450. public function testAssertPublicAttributeNotContains()
  1451. {
  1452. $obj = new ClassWithNonPublicAttributes;
  1453. $this->assertAttributeNotContains('bar', 'publicArray', $obj);
  1454. try {
  1455. $this->assertAttributeNotContains('foo', 'publicArray', $obj);
  1456. }
  1457. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1458. return;
  1459. }
  1460. $this->fail();
  1461. }
  1462. /**
  1463. * @covers PHPUnit_Framework_Assert::assertAttributeNotContainsOnly
  1464. */
  1465. public function testAssertPublicAttributeNotContainsOnly()
  1466. {
  1467. $obj = new ClassWithNonPublicAttributes;
  1468. $this->assertAttributeNotContainsOnly('integer', 'publicArray', $obj);
  1469. try {
  1470. $this->assertAttributeNotContainsOnly('string', 'publicArray', $obj);
  1471. }
  1472. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1473. return;
  1474. }
  1475. $this->fail();
  1476. }
  1477. /**
  1478. * @covers PHPUnit_Framework_Assert::assertAttributeContains
  1479. */
  1480. public function testAssertProtectedAttributeContains()
  1481. {
  1482. $obj = new ClassWithNonPublicAttributes;
  1483. $this->assertAttributeContains('bar', 'protectedArray', $obj);
  1484. try {
  1485. $this->assertAttributeContains('foo', 'protectedArray', $obj);
  1486. }
  1487. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1488. return;
  1489. }
  1490. $this->fail();
  1491. }
  1492. /**
  1493. * @covers PHPUnit_Framework_Assert::assertAttributeNotContains
  1494. */
  1495. public function testAssertProtectedAttributeNotContains()
  1496. {
  1497. $obj = new ClassWithNonPublicAttributes;
  1498. $this->assertAttributeNotContains('foo', 'protectedArray', $obj);
  1499. try {
  1500. $this->assertAttributeNotContains('bar', 'protectedArray', $obj);
  1501. }
  1502. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1503. return;
  1504. }
  1505. $this->fail();
  1506. }
  1507. /**
  1508. * @covers PHPUnit_Framework_Assert::assertAttributeContains
  1509. */
  1510. public function testAssertPrivateAttributeContains()
  1511. {
  1512. $obj = new ClassWithNonPublicAttributes;
  1513. $this->assertAttributeContains('baz', 'privateArray', $obj);
  1514. try {
  1515. $this->assertAttributeContains('foo', 'privateArray', $obj);
  1516. }
  1517. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1518. return;
  1519. }
  1520. $this->fail();
  1521. }
  1522. /**
  1523. * @covers PHPUnit_Framework_Assert::assertAttributeNotContains
  1524. */
  1525. public function testAssertPrivateAttributeNotContains()
  1526. {
  1527. $obj = new ClassWithNonPublicAttributes;
  1528. $this->assertAttributeNotContains('foo', 'privateArray', $obj);
  1529. try {
  1530. $this->assertAttributeNotContains('baz', 'privateArray', $obj);
  1531. }
  1532. catch (PHPUnit_Framework_AssertionFailedError $e) {
  1533. return;
  1534. }
  1535. $this->fail();
  1536. }
  1537. /**
  1538. * @covers PHPUnit_Framework_Assert::assertAttributeEquals
  1539. */
  1540. public function testAssertPublicAttributeEquals()
  1541. {
  1542. $obj = new ClassWithNonPublicAttributes;
  1543. $this->assertAttributeEquals('foo', 'publicAttribute', $obj);
  1544. try {
  1545. $this->assertAttributeEquals('bar', 'publicAttribu…

Large files files are truncated, but you can click here to view the full file