format('Y-m-d H:i:s'), StringUtils::stringify($date)); self::assertEquals('abc', StringUtils::stringify(new class() { public function __toString() { return 'abc'; } })); self::assertEquals('abc', StringUtils::stringify(new class() implements RenderableInterface { public function render(mixed ...$data) : string { return 'abc'; } })); } /** * @testdox Stringify/rendering a unknown data type returns null * @covers phpOMS\Utils\StringUtils * @group framework */ public function testInvalidStringify() : void { self::assertNull(StringUtils::stringify(new class() {})); } /** * @testdox The difference between two strings can be evaluated * @covers phpOMS\Utils\StringUtils * @group framework */ public function testStringDiffHtml() : void { $original = 'This is a test string.'; $new = 'This is a new string.'; self::assertEquals( 'This is a tnestw string.', StringUtils::createDiffMarkup($original, $new) ); self::assertEquals( 'This is a testnew string.', StringUtils::createDiffMarkup($original, $new, ' ') ); $original = ''; $new = 'This is a new string.'; self::assertEquals( '' . $new . '', StringUtils::createDiffMarkup($original, $new) ); $original = 'This is a new string.'; $new = ''; self::assertEquals( '' . $original . '', StringUtils::createDiffMarkup($original, $new) ); $original = 'This is a new string'; $new = 'This is a new string!'; self::assertEquals( $original . '!', StringUtils::createDiffMarkup($original, $new) ); $original = 'This is a new string.'; $new = 'This is a new string'; self::assertEquals( $new . '.', StringUtils::createDiffMarkup($original, $new) ); } }