77use Basster \LazyResponseBundle \Response \Handler \JsonSerializeResponseHandler ;
88use Basster \LazyResponseBundle \Response \JsonSerializeResponse ;
99use Prophecy \PhpUnit \ProphecyTrait ;
10- use Prophecy \Prophecy \ObjectProphecy ;
10+ use Symfony \Component \Serializer \Encoder \JsonEncoder ;
11+ use Symfony \Component \Serializer \Normalizer \ObjectNormalizer ;
12+ use Symfony \Component \Serializer \Serializer ;
1113use Symfony \Component \Serializer \SerializerInterface ;
1214
1315/**
@@ -19,11 +21,11 @@ final class JsonSerializeResponseHandlerTest extends AbstractLazyResponseHandler
1921{
2022 use ProphecyTrait;
2123
22- private SerializerInterface | ObjectProphecy $ serializer ;
24+ private SerializerInterface $ serializer ;
2325
2426 protected function setUp (): void
2527 {
26- $ this ->serializer = $ this -> prophesize (SerializerInterface::class );
28+ $ this ->serializer = new Serializer ([ new ObjectNormalizer ()], [ new JsonEncoder ()] );
2729 parent ::setUp ();
2830 }
2931
@@ -33,11 +35,16 @@ protected function setUp(): void
3335 public function serializeControllerResultDataWhenSupported (): void
3436 {
3537 $ data = new class () {
38+ public string $ foo = 'bar ' ;
3639 };
3740 $ controllerResult = new JsonSerializeResponse ($ data );
3841 $ event = $ this ->createViewEvent ($ controllerResult );
3942 $ this ->handler ->handleLazyResponse ($ event );
40- $ this ->serializer ->serialize ($ data , 'json ' )->shouldHaveBeenCalled ();
43+
44+ self ::assertJsonStringEqualsJsonString (
45+ '{"foo":"bar"} ' ,
46+ $ event ->getResponse ()->getContent ()
47+ );
4148 }
4249
4350 /**
@@ -75,6 +82,6 @@ protected function getHandlerClassName(): string
7582
7683 protected function createHandlerSubject (): AbstractLazyResponseHandler
7784 {
78- return new JsonSerializeResponseHandler ($ this ->serializer -> reveal () );
85+ return new JsonSerializeResponseHandler ($ this ->serializer );
7986 }
8087}
0 commit comments