diff --git a/CHANGELOG.md b/CHANGELOG.md index dd0e6ae..5d61098 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## 2.1.3 under development -- New #107: Add `DataStream` (@vjik) +- New #107, #110: Add `DataStream` (@vjik) - New #107: Add `FormatterInterface` and implementations: `HtmlFormatter`, `JsonFormatter`, `PlainTextFormatter`, `XmlFormatter` (@vjik) - New #107: Add `DataResponseFactoryInterface` and implementations: `DataResponseFactory`, `FormattedResponseFactory`, diff --git a/src/DataStream/DataStream.php b/src/DataStream/DataStream.php index 68d3944..5833f93 100644 --- a/src/DataStream/DataStream.php +++ b/src/DataStream/DataStream.php @@ -46,6 +46,16 @@ public function hasFormatter(): bool return $this->formatter !== null; } + /** + * Returns the formatter. + * + * @return FormatterInterface|null The formatter or `null` if not set. + */ + public function getFormatter(): ?FormatterInterface + { + return $this->formatter; + } + /** * Changes the formatter. * @@ -57,6 +67,16 @@ public function changeFormatter(FormatterInterface $formatter): void $this->resetState(); } + /** + * Returns the raw data. + * + * @return mixed The raw data. + */ + public function getData(): mixed + { + return $this->data; + } + /** * Changes the data. * diff --git a/tests/DataStream/DataStreamTest.php b/tests/DataStream/DataStreamTest.php index e4eb997..483394d 100644 --- a/tests/DataStream/DataStreamTest.php +++ b/tests/DataStream/DataStreamTest.php @@ -24,6 +24,8 @@ public function testBase(): void $stream = new DataStream('test data'); $this->assertFalse($stream->hasFormatter()); + $this->assertNull($stream->getFormatter()); + $this->assertSame('test data', $stream->getData()); } public function testGetFormattedWithoutFormatter(): void @@ -37,9 +39,11 @@ public function testGetFormattedWithoutFormatter(): void public function testFormatter(): void { - $stream = new DataStream('test', new JsonFormatter()); + $formatter = new JsonFormatter(); + $stream = new DataStream('test', $formatter); $this->assertTrue($stream->hasFormatter()); + $this->assertSame($formatter, $stream->getFormatter()); $this->assertSame('"test"', (string) $stream); } @@ -51,6 +55,7 @@ public function testChangeFormatter(): void $stream->changeFormatter($formatter); $this->assertTrue($stream->hasFormatter()); + $this->assertSame($formatter, $stream->getFormatter()); $this->assertSame('"test"', (string) $stream); } @@ -73,6 +78,7 @@ public function testChangeData(): void $stream->changeData('world'); $this->assertSame('world', (string) $stream); + $this->assertSame('world', $stream->getData()); } public function testCloseStreamOnChangeData(): void