diff --git a/src/Symfony/Component/Mime/RawMessage.php b/src/Symfony/Component/Mime/RawMessage.php index ee3e2ab86f2cb..bf31239d240eb 100644 --- a/src/Symfony/Component/Mime/RawMessage.php +++ b/src/Symfony/Component/Mime/RawMessage.php @@ -21,7 +21,7 @@ class RawMessage private iterable|string|null $message = null; private bool $isGeneratorClosed; - public function __construct(iterable|string $message) + public function __construct(iterable|string|null $message) { $this->message = $message; } diff --git a/src/Symfony/Component/Mime/Tests/EmailTest.php b/src/Symfony/Component/Mime/Tests/EmailTest.php index 2e7d61ccf7eea..4695f5734e50b 100644 --- a/src/Symfony/Component/Mime/Tests/EmailTest.php +++ b/src/Symfony/Component/Mime/Tests/EmailTest.php @@ -24,6 +24,7 @@ use Symfony\Component\Mime\Part\TextPart; use Symfony\Component\Mime\Test\Constraint\EmailHeaderSame; use Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor; +use Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor; use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer; use Symfony\Component\Serializer\Normalizer\MimeMessageNormalizer; @@ -591,6 +592,40 @@ public function testSymfonySerialize() $this->assertEquals($expected->getBody(), $n->getBody()); } + public function testSymfonySerialize2() + { + $e = new Email(); + $expected = clone $e; + + $expectedJson = <<serialize($e, 'json', [ObjectNormalizer::IGNORED_ATTRIBUTES => ['cachedBody']]); + $this->assertSame($expectedJson, json_encode(json_decode($serialized), \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES)); + + $n = $serializer->deserialize($serialized, Email::class, 'json'); + $this->assertEquals($expected, $n); + } + public function testMissingHeaderDoesNotThrowError() { $this->expectException(ExpectationFailedException::class);