Skip to content

Commit 09afb94

Browse files
committed
feature #736 [Platform] Make BinaryResult properties private with getters (OskarStark)
This PR was merged into the main branch. Discussion ---------- [Platform] Make `BinaryResult` properties private with getters | Q | A | ------------- | --- | Bug fix? | no | New feature? | yes | Docs? | no | Issues | -- | License | MIT - Changed data and mimeType properties from public to private - Added getMimeType() getter - Updated all test files to use new getter methods instead of direct property access - Added comprehensive BinaryResultTest with tests for all methods including the new getters Commits ------- c58508c [Platform][Result] Make BinaryResult properties private with getters
2 parents 3fd202f + c58508c commit 09afb94

File tree

6 files changed

+74
-8
lines changed

6 files changed

+74
-8
lines changed

src/platform/src/Result/BinaryResult.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,16 @@
1919
final class BinaryResult extends BaseResult
2020
{
2121
public function __construct(
22-
public string $data,
23-
public ?string $mimeType = null,
22+
private string $data,
23+
private ?string $mimeType = null,
2424
) {
2525
}
2626

27+
public function getMimeType(): ?string
28+
{
29+
return $this->mimeType;
30+
}
31+
2732
public function getContent(): string
2833
{
2934
return $this->data;

src/platform/tests/Bridge/ElevenLabs/ElevenLabsConverterTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,6 @@ public function getContent(): string
6666
$result = $converter->convert($rawResult);
6767

6868
$this->assertInstanceOf(BinaryResult::class, $result);
69-
$this->assertSame('audio/mpeg', $result->mimeType);
69+
$this->assertSame('audio/mpeg', $result->getMimeType());
7070
}
7171
}

src/platform/tests/Bridge/Gemini/Gemini/ResultConverterTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public function testConvertsInlineDataToBinaryResult()
103103
$result = $converter->convert(new RawHttpResult($httpResponse));
104104
$this->assertInstanceOf(BinaryResult::class, $result);
105105
$this->assertSame('base64EncodedImageData', $result->getContent());
106-
$this->assertSame('image/png', $result->mimeType);
106+
$this->assertSame('image/png', $result->getMimeType());
107107
}
108108

109109
public function testConvertsInlineDataWithoutMimeTypeToBinaryResult()
@@ -130,6 +130,6 @@ public function testConvertsInlineDataWithoutMimeTypeToBinaryResult()
130130
$result = $converter->convert(new RawHttpResult($httpResponse));
131131
$this->assertInstanceOf(BinaryResult::class, $result);
132132
$this->assertSame('base64EncodedData', $result->getContent());
133-
$this->assertNull($result->mimeType);
133+
$this->assertNull($result->getMimeType());
134134
}
135135
}

src/platform/tests/Bridge/HuggingFace/ResultConverterTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,6 @@ public function testConvertWithTextToImageTask()
230230

231231
$this->assertInstanceOf(BinaryResult::class, $convertedResult);
232232
$this->assertSame($binaryContent, $convertedResult->getContent());
233-
$this->assertSame('image/png', $convertedResult->mimeType);
233+
$this->assertSame('image/png', $convertedResult->getMimeType());
234234
}
235235
}

src/platform/tests/Bridge/VertexAi/Gemini/ResultConverterTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public function testConvertsInlineDataToBinaryResult()
154154

155155
$this->assertInstanceOf(BinaryResult::class, $result);
156156
$this->assertSame('base64EncodedImageData', $result->getContent());
157-
$this->assertSame('image/png', $result->mimeType);
157+
$this->assertSame('image/png', $result->getMimeType());
158158
}
159159

160160
public function testConvertsInlineDataWithoutMimeTypeToBinaryResult()
@@ -184,6 +184,6 @@ public function testConvertsInlineDataWithoutMimeTypeToBinaryResult()
184184

185185
$this->assertInstanceOf(BinaryResult::class, $result);
186186
$this->assertSame('base64EncodedData', $result->getContent());
187-
$this->assertNull($result->mimeType);
187+
$this->assertNull($result->getMimeType());
188188
}
189189
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <[email protected]>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\AI\Platform\Tests\Result;
13+
14+
use PHPUnit\Framework\TestCase;
15+
use Symfony\AI\Platform\Result\BinaryResult;
16+
17+
final class BinaryResultTest extends TestCase
18+
{
19+
public function testGetContent()
20+
{
21+
$result = new BinaryResult($expected = 'binary data');
22+
$this->assertSame($expected, $result->getContent());
23+
}
24+
25+
public function testGetMimeType()
26+
{
27+
$result = new BinaryResult('binary data', $expected = 'image/png');
28+
$this->assertSame($expected, $result->getMimeType());
29+
}
30+
31+
public function testGetMimeTypeReturnsNullWhenNotSet()
32+
{
33+
$result = new BinaryResult('binary data');
34+
$this->assertNull($result->getMimeType());
35+
}
36+
37+
public function testToBase64()
38+
{
39+
$data = 'Hello World';
40+
$result = new BinaryResult($data);
41+
$this->assertSame(base64_encode($data), $result->toBase64());
42+
}
43+
44+
public function testToDataUri()
45+
{
46+
$data = 'Hello World';
47+
$mimeType = 'text/plain';
48+
$result = new BinaryResult($data, $mimeType);
49+
$this->assertSame('data:text/plain;base64,'.base64_encode($data), $result->toDataUri());
50+
}
51+
52+
public function testToDataUriThrowsExceptionWhenMimeTypeNotSet()
53+
{
54+
$result = new BinaryResult('binary data');
55+
56+
$this->expectException(\RuntimeException::class);
57+
$this->expectExceptionMessage('Mime type is not set.');
58+
59+
$result->toDataUri();
60+
}
61+
}

0 commit comments

Comments
 (0)