@@ -38,6 +38,7 @@ function (ServerRequestInterface $request) use (&$exposedRequest) {
3838 $ stream ->write ('world ' );
3939 $ stream ->end ('! ' );
4040
41+ $ this ->assertSame (11 , $ exposedRequest ->getBody ()->getSize ());
4142 $ this ->assertSame ('helloworld! ' , $ exposedRequest ->getBody ()->getContents ());
4243 }
4344
@@ -63,13 +64,14 @@ function (ServerRequestInterface $request) use (&$exposedRequest) {
6364 }
6465 );
6566
67+ $ this ->assertSame ($ size , $ exposedRequest ->getBody ()->getSize ());
6668 $ this ->assertSame ($ body , $ exposedRequest ->getBody ()->getContents ());
6769 }
6870
6971 public function testKnownExcessiveSizedBodyIsDisgardedTheRequestIsPassedDownToTheNextMiddleware ()
7072 {
7173 $ loop = Factory::create ();
72-
74+
7375 $ stream = new ThroughStream ();
7476 $ stream ->end ('aa ' );
7577 $ serverRequest = new ServerRequest (
@@ -91,6 +93,28 @@ function (ServerRequestInterface $request) {
9193 $ this ->assertSame ('' , $ response ->getBody ()->getContents ());
9294 }
9395
96+ public function testAlreadyBufferedExceedingSizeResolvesImmediatelyWithEmptyBody ()
97+ {
98+ $ serverRequest = new ServerRequest (
99+ 'GET ' ,
100+ 'https://example.com/ ' ,
101+ array (),
102+ 'hello '
103+ );
104+
105+ $ exposedRequest = null ;
106+ $ buffer = new RequestBodyBufferMiddleware (1 );
107+ $ buffer (
108+ $ serverRequest ,
109+ function (ServerRequestInterface $ request ) use (&$ exposedRequest ) {
110+ $ exposedRequest = $ request ;
111+ }
112+ );
113+
114+ $ this ->assertSame (0 , $ exposedRequest ->getBody ()->getSize ());
115+ $ this ->assertSame ('' , $ exposedRequest ->getBody ()->getContents ());
116+ }
117+
94118 public function testExcessiveSizeBodyIsDiscardedAndTheRequestIsPassedDownToTheNextMiddleware ()
95119 {
96120 $ loop = Factory::create ();
@@ -128,7 +152,7 @@ function (ServerRequestInterface $request) {
128152 public function testBufferingErrorThrows ()
129153 {
130154 $ loop = Factory::create ();
131-
155+
132156 $ stream = new ThroughStream ();
133157 $ serverRequest = new ServerRequest (
134158 'GET ' ,
0 commit comments