1616use  Symfony \Component \Messenger \Envelope ;
1717use  Symfony \Component \Messenger \Exception \HandlerFailedException ;
1818use  Symfony \Component \Messenger \Stamp \ErrorDetailsStamp ;
19+ use  Symfony \Component \Messenger \Transport \Serialization \Normalizer \FlattenExceptionNormalizer ;
20+ use  Symfony \Component \Messenger \Transport \Serialization \Serializer ;
21+ use  Symfony \Component \Serializer \Encoder \JsonEncoder ;
22+ use  Symfony \Component \Serializer \Normalizer \ArrayDenormalizer ;
23+ use  Symfony \Component \Serializer \Normalizer \ObjectNormalizer ;
24+ use  Symfony \Component \Serializer \Serializer  as  SymfonySerializer ;
1925
2026class  ErrorDetailsStampTest extends  TestCase
2127{
@@ -24,7 +30,7 @@ public function testGetters(): void
2430        $ exceptionnew  \Exception ('exception message ' );
2531        $ flattenExceptioncreateFromThrowable ($ exception
2632
27-         $ stampnew   ErrorDetailsStamp ($ exception
33+         $ stamp:: create ($ exception
2834
2935        $ this assertSame (\Exception::class, $ stampgetExceptionClass ());
3036        $ this assertSame ('exception message ' , $ stampgetExceptionMessage ());
@@ -38,11 +44,30 @@ public function testUnwrappingHandlerFailedException(): void
3844        $ exceptionnew  HandlerFailedException ($ envelope$ wrappedException
3945        $ flattenExceptioncreateFromThrowable ($ wrappedException
4046
41-         $ stampnew   ErrorDetailsStamp ($ exception
47+         $ stamp:: create ($ exception
4248
4349        $ this assertSame (\Exception::class, $ stampgetExceptionClass ());
4450        $ this assertSame ('I am inside ' , $ stampgetExceptionMessage ());
4551        $ this assertSame (123 , $ stampgetExceptionCode ());
4652        $ this assertEquals ($ flattenException$ stampgetFlattenException ());
4753    }
54+ 
55+     public  function  testDeserialization (): void 
56+     {
57+         $ exceptionnew  \Exception ('exception message ' );
58+         $ stampcreate ($ exception
59+         $ serializernew  Serializer (
60+             new  SymfonySerializer ([
61+                 new  ArrayDenormalizer (),
62+                 new  FlattenExceptionNormalizer (),
63+                 new  ObjectNormalizer (),
64+             ], [new  JsonEncoder ()])
65+         );
66+ 
67+         $ deserializedEnvelope$ serializerdecode ($ serializerencode (new  Envelope (new  \stdClass (), [$ stamp
68+ 
69+         $ deserializedStamp$ deserializedEnvelopelast (ErrorDetailsStamp::class);
70+         $ this assertInstanceOf (ErrorDetailsStamp::class, $ deserializedStamp
71+         $ this assertEquals ($ stamp$ deserializedStamp
72+     }
4873}
0 commit comments