Skip to content

Commit 888ecac

Browse files
authored
FixedSizeStream decorating FixedSizeStream (#361)
* FixedSizeStream decorating FixedSizeStream * Small optimization * Fix cs * Remove random test
1 parent a879c1a commit 888ecac

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/Stream/FixedSizeStream.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ private function __construct(RequestStream $content, int $chunkSize = 64 * 1024)
2626
public static function create(RequestStream $content, int $chunkSize = 64 * 1024): FixedSizeStream
2727
{
2828
if ($content instanceof self) {
29-
return $content;
29+
if ($content->chunkSize === $chunkSize) {
30+
return $content;
31+
}
32+
33+
return new self($content->content, $chunkSize);
3034
}
3135

3236
return new self($content, $chunkSize);

tests/Unit/Stream/FixedSizeStreamTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,16 @@ public function testChunk(RequestStream $content, int $size, array $expected): v
4343
self::assertSame($expected, \iterator_to_array($stream));
4444
}
4545

46+
/**
47+
* @dataProvider provideChunks
48+
*/
49+
public function testDecoratingFixedSize(RequestStream $content, int $size, array $expected): void
50+
{
51+
$stream = FixedSizeStream::create(FixedSizeStream::create($content, 5), $size);
52+
53+
self::assertSame($expected, \iterator_to_array($stream));
54+
}
55+
4656
public function provideLengths(): iterable
4757
{
4858
yield [StringStream::create('Hello world'), 11];

0 commit comments

Comments
 (0)