diff --git a/tests/_files/NotSelfDescribingTest.php b/tests/_files/NotSelfDescribingTest.php new file mode 100644 index 00000000000..e48389f3c6e --- /dev/null +++ b/tests/_files/NotSelfDescribingTest.php @@ -0,0 +1,22 @@ +assertEquals(__METHOD__ . ': message', $failure->toString()); } + public function testToStringForNonSelfDescribing(): void + { + $test = new \NotSelfDescribingTest(); + $exception = new Exception('message'); + $failure = new TestFailure($test, $exception); + + $this->assertEquals('NotSelfDescribingTest: message', $failure->toString()); + } + public function testgetExceptionAsString(): void { $test = new self(__FUNCTION__); @@ -37,4 +49,93 @@ public function testgetExceptionAsString(): void $this->assertEquals("Error: message\n", $failure->getExceptionAsString()); } + + public function testExceptionToString(): void + { + $exception = new AssertionFailedError('message'); + + $this->assertEquals("message\n", TestFailure::exceptionToString($exception)); + } + + public function testExceptionToStringForExpectationFailedException(): void + { + $exception = new ExpectationFailedException('message'); + + $this->assertEquals("message\n", TestFailure::exceptionToString($exception)); + } + + public function testExceptionToStringForExpectationFailedExceptionWithComparisonFailure(): void + { + $exception = new ExpectationFailedException('message', new ComparisonFailure('expected', 'actual', 'expected', 'actual')); + + $this->assertEquals("message\n--- Expected\n+++ Actual\n@@ @@\n-expected\n+actual\n", TestFailure::exceptionToString($exception)); + } + + public function testExceptionToStringForFrameworkError(): void + { + $exception = new Error('message', 0, 'file', 1); + + $this->assertEquals("message\n", TestFailure::exceptionToString($exception)); + } + + public function testExceptionToStringForExceptionWrapper(): void + { + $exception = new ExceptionWrapper(new \Error('message')); + + $this->assertEquals("Error: message\n", TestFailure::exceptionToString($exception)); + } + + public function testGetTestName(): void + { + $test = new self(__FUNCTION__); + $exception = new Exception('message'); + $failure = new TestFailure($test, $exception); + + $this->assertEquals($this->toString(), $failure->getTestName()); + } + + public function testFailedTest(): void + { + $test = new self(__FUNCTION__); + $exception = new Exception('message'); + $failure = new TestFailure($test, $exception); + + $this->assertEquals($test, $failure->failedTest()); + } + + public function testThrownException(): void + { + $test = new self(__FUNCTION__); + $exception = new Exception('message'); + $failure = new TestFailure($test, $exception); + + $this->assertEquals($exception, $failure->thrownException()); + } + + public function testExceptionMessage(): void + { + $test = new self(__FUNCTION__); + $exception = new Exception('message'); + $failure = new TestFailure($test, $exception); + + $this->assertEquals('message', $failure->exceptionMessage()); + } + + public function testIsFailure(): void + { + $test = new self(__FUNCTION__); + $exception = new ExpectationFailedException('message'); + $failure = new TestFailure($test, $exception); + + $this->assertTrue($failure->isFailure()); + } + + public function testIsFailureFalse(): void + { + $test = new self(__FUNCTION__); + $exception = new Warning('message'); + $failure = new TestFailure($test, $exception); + + $this->assertFalse($failure->isFailure()); + } }