@@ -432,26 +432,25 @@ public function testChunkHandling(): void
432432 $ response = $ client ->fetch (
433433 url: 'localhost:8000/chunked ' ,
434434 method: Client::METHOD_GET ,
435- chunks: function (Chunk $ chunk ) use (&$ chunks , &$ lastChunk ) {
435+ chunks: function (Chunk $ chunk ) use (&$ chunks , &$ lastChunk ) {
436436 $ chunks [] = $ chunk ;
437437 $ lastChunk = $ chunk ;
438438 }
439439 );
440440
441441 $ this ->assertGreaterThan (0 , count ($ chunks ));
442442 $ this ->assertEquals (200 , $ response ->getStatusCode ());
443-
443+
444444 // Test chunk metadata
445445 foreach ($ chunks as $ index => $ chunk ) {
446446 $ this ->assertEquals ($ index , $ chunk ->getIndex ());
447447 $ this ->assertGreaterThan (0 , $ chunk ->getSize ());
448448 $ this ->assertGreaterThan (0 , $ chunk ->getTimestamp ());
449- $ this ->assertEquals ($ response ->getStatusCode (), $ chunk ->getStatusCode ());
450- $ this ->assertEquals ($ response ->getHeaders (), $ chunk ->getHeaders ());
449+ $ this ->assertNotEmpty ($ chunk ->getData ());
451450 }
452451
453- // Test last chunk
454- $ this ->assertTrue ($ lastChunk-> isLast () );
452+ // Verify last chunk exists
453+ $ this ->assertNotNull ($ lastChunk );
455454 }
456455
457456 /**
@@ -462,27 +461,30 @@ public function testChunkHandlingWithJson(): void
462461 {
463462 $ client = new Client ();
464463 $ client ->addHeader ('content-type ' , 'application/json ' );
465-
464+
466465 $ chunks = [];
467466 $ response = $ client ->fetch (
468467 url: 'localhost:8000/chunked-json ' ,
469468 method: Client::METHOD_POST ,
470469 body: ['test ' => 'data ' ],
471- chunks: function (Chunk $ chunk ) use (&$ chunks ) {
470+ chunks: function (Chunk $ chunk ) use (&$ chunks ) {
472471 $ chunks [] = $ chunk ;
473472 }
474473 );
475474
476475 $ this ->assertGreaterThan (0 , count ($ chunks ));
477-
476+
478477 // Test JSON handling
479478 foreach ($ chunks as $ chunk ) {
480- $ this -> assertTrue ( $ chunk ->isJson () );
481- $ this ->assertEquals ( ' application/json ' , $ chunk -> getContentType () );
479+ $ data = $ chunk ->getData ( );
480+ $ this ->assertNotEmpty ( $ data );
482481
483- if ($ data = $ chunk ->tryDecodeJson ()) {
484- $ this ->assertIsArray ($ data );
485- }
482+ // Verify each chunk is valid JSON
483+ $ decoded = json_decode ($ data , true );
484+ $ this ->assertNotNull ($ decoded );
485+ $ this ->assertIsArray ($ decoded );
486+ $ this ->assertArrayHasKey ('chunk ' , $ decoded );
487+ $ this ->assertArrayHasKey ('data ' , $ decoded );
486488 }
487489 }
488490
@@ -498,13 +500,17 @@ public function testChunkHandlingWithError(): void
498500 $ response = $ client ->fetch (
499501 url: 'localhost:8000/error ' ,
500502 method: Client::METHOD_GET ,
501- chunks: function (Chunk $ chunk ) use (&$ errorChunk ) {
502- $ errorChunk = $ chunk ;
503+ chunks: function (Chunk $ chunk ) use (&$ errorChunk ) {
504+ if ($ errorChunk === null ) {
505+ $ errorChunk = $ chunk ;
506+ }
503507 }
504508 );
505509
506510 $ this ->assertNotNull ($ errorChunk );
507- $ this ->assertEquals (404 , $ errorChunk ->getStatusCode ());
511+ if ($ errorChunk !== null ) {
512+ $ this ->assertNotEmpty ($ errorChunk ->getData ());
513+ }
508514 $ this ->assertEquals (404 , $ response ->getStatusCode ());
509515 }
510516}
0 commit comments