@@ -162,6 +162,34 @@ public function testAddsLinkedDataPlatformHeaders(): void
162162 $ this ->assertSame ('application/ld+json ' , $ response ->headers ->get ('Accept-Post ' ));
163163 }
164164
165+ public function testDynamicResponseStatusFromRequestAttribute (): void
166+ {
167+ $ operation = new Post (class: Employee::class);
168+
169+ $ resourceClassResolver = $ this ->prophesize (ResourceClassResolverInterface::class);
170+ $ resourceClassResolver ->isResourceClass (Employee::class)->willReturn (true );
171+
172+ $ respondProcessor = new RespondProcessor (null , $ resourceClassResolver ->reveal ());
173+
174+ $ req = new Request ([], [], ['_api_response_status ' => 200 ]);
175+ $ req ->setMethod ('POST ' );
176+ $ response = $ respondProcessor ->process ('content ' , $ operation , context: [
177+ 'request ' => $ req ,
178+ 'original_data ' => new Employee (),
179+ ]);
180+
181+ $ this ->assertSame (200 , $ response ->getStatusCode ());
182+
183+ $ req = new Request ();
184+ $ req ->setMethod ('POST ' );
185+ $ response = $ respondProcessor ->process ('content ' , $ operation , context: [
186+ 'request ' => $ req ,
187+ 'original_data ' => new Employee (),
188+ ]);
189+
190+ $ this ->assertSame (201 , $ response ->getStatusCode ());
191+ }
192+
165193 public function testDoesNotAddLinkedDataPlatformHeadersWithoutFactory (): void
166194 {
167195 $ operation = new Get (uriTemplate: '/employees/{id} ' , class: Employee::class);
0 commit comments