annotate vendor/sebastian/comparator/src/ComparisonFailure.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 1fec387a4317
children
rev   line source
Chris@0 1 <?php
Chris@0 2 /*
Chris@14 3 * This file is part of sebastian/comparator.
Chris@0 4 *
Chris@0 5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
Chris@0 6 *
Chris@0 7 * For the full copyright and license information, please view the LICENSE
Chris@0 8 * file that was distributed with this source code.
Chris@0 9 */
Chris@0 10
Chris@0 11 namespace SebastianBergmann\Comparator;
Chris@0 12
Chris@0 13 use SebastianBergmann\Diff\Differ;
Chris@14 14 use SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder;
Chris@0 15
Chris@0 16 /**
Chris@0 17 * Thrown when an assertion for string equality failed.
Chris@0 18 */
Chris@0 19 class ComparisonFailure extends \RuntimeException
Chris@0 20 {
Chris@0 21 /**
Chris@0 22 * Expected value of the retrieval which does not match $actual.
Chris@14 23 *
Chris@0 24 * @var mixed
Chris@0 25 */
Chris@0 26 protected $expected;
Chris@0 27
Chris@0 28 /**
Chris@0 29 * Actually retrieved value which does not match $expected.
Chris@14 30 *
Chris@0 31 * @var mixed
Chris@0 32 */
Chris@0 33 protected $actual;
Chris@0 34
Chris@0 35 /**
Chris@0 36 * The string representation of the expected value
Chris@14 37 *
Chris@0 38 * @var string
Chris@0 39 */
Chris@0 40 protected $expectedAsString;
Chris@0 41
Chris@0 42 /**
Chris@0 43 * The string representation of the actual value
Chris@14 44 *
Chris@0 45 * @var string
Chris@0 46 */
Chris@0 47 protected $actualAsString;
Chris@0 48
Chris@0 49 /**
Chris@0 50 * @var bool
Chris@0 51 */
Chris@0 52 protected $identical;
Chris@0 53
Chris@0 54 /**
Chris@0 55 * Optional message which is placed in front of the first line
Chris@0 56 * returned by toString().
Chris@14 57 *
Chris@0 58 * @var string
Chris@0 59 */
Chris@0 60 protected $message;
Chris@0 61
Chris@0 62 /**
Chris@0 63 * Initialises with the expected value and the actual value.
Chris@0 64 *
Chris@0 65 * @param mixed $expected Expected value retrieved.
Chris@0 66 * @param mixed $actual Actual value retrieved.
Chris@0 67 * @param string $expectedAsString
Chris@0 68 * @param string $actualAsString
Chris@0 69 * @param bool $identical
Chris@0 70 * @param string $message A string which is prefixed on all returned lines
Chris@0 71 * in the difference output.
Chris@0 72 */
Chris@0 73 public function __construct($expected, $actual, $expectedAsString, $actualAsString, $identical = false, $message = '')
Chris@0 74 {
Chris@0 75 $this->expected = $expected;
Chris@0 76 $this->actual = $actual;
Chris@0 77 $this->expectedAsString = $expectedAsString;
Chris@0 78 $this->actualAsString = $actualAsString;
Chris@0 79 $this->message = $message;
Chris@0 80 }
Chris@0 81
Chris@0 82 /**
Chris@0 83 * @return mixed
Chris@0 84 */
Chris@0 85 public function getActual()
Chris@0 86 {
Chris@0 87 return $this->actual;
Chris@0 88 }
Chris@0 89
Chris@0 90 /**
Chris@0 91 * @return mixed
Chris@0 92 */
Chris@0 93 public function getExpected()
Chris@0 94 {
Chris@0 95 return $this->expected;
Chris@0 96 }
Chris@0 97
Chris@0 98 /**
Chris@0 99 * @return string
Chris@0 100 */
Chris@0 101 public function getActualAsString()
Chris@0 102 {
Chris@0 103 return $this->actualAsString;
Chris@0 104 }
Chris@0 105
Chris@0 106 /**
Chris@0 107 * @return string
Chris@0 108 */
Chris@0 109 public function getExpectedAsString()
Chris@0 110 {
Chris@0 111 return $this->expectedAsString;
Chris@0 112 }
Chris@0 113
Chris@0 114 /**
Chris@0 115 * @return string
Chris@0 116 */
Chris@0 117 public function getDiff()
Chris@0 118 {
Chris@0 119 if (!$this->actualAsString && !$this->expectedAsString) {
Chris@0 120 return '';
Chris@0 121 }
Chris@0 122
Chris@14 123 $differ = new Differ(new UnifiedDiffOutputBuilder("\n--- Expected\n+++ Actual\n"));
Chris@0 124
Chris@0 125 return $differ->diff($this->expectedAsString, $this->actualAsString);
Chris@0 126 }
Chris@0 127
Chris@0 128 /**
Chris@0 129 * @return string
Chris@0 130 */
Chris@0 131 public function toString()
Chris@0 132 {
Chris@0 133 return $this->message . $this->getDiff();
Chris@0 134 }
Chris@0 135 }