Skip to content

Commit 019dc5b

Browse files
committed
Added test
1 parent 42585da commit 019dc5b

File tree

5 files changed

+27
-15
lines changed

5 files changed

+27
-15
lines changed

src/Utils/ScalarBeanPropertyDescriptor.php

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -210,21 +210,16 @@ public function getGetterSetterCode(): array
210210

211211
$resourceTypeCheck = '';
212212
if ($normalizedType === 'resource') {
213+
$checkNullable = '';
213214
if ($isNullable) {
214-
$resourceTypeCheck .= <<<EOF
215-
if ($%s !== null && !\is_resource($%s)) {
216-
throw \TheCodingMachine\TDBM\TDBMInvalidArgumentException::badType('resource', $%s, __METHOD__);
217-
}
218-
EOF;
219-
$resourceTypeCheck = sprintf($resourceTypeCheck, $this->column->getName(), $this->column->getName(), $this->column->getName());
220-
} else {
221-
$resourceTypeCheck .= <<<EOF
222-
if (!\is_resource($%s)) {
215+
$checkNullable = sprintf('$%s !== null && ', $this->column->getName());
216+
}
217+
$resourceTypeCheck .= <<<EOF
218+
if (%s!\is_resource($%s)) {
223219
throw \TheCodingMachine\TDBM\TDBMInvalidArgumentException::badType('resource', $%s, __METHOD__);
224220
}
225221
EOF;
226-
$resourceTypeCheck = sprintf($resourceTypeCheck, $this->column->getName(), $this->column->getName());
227-
}
222+
$resourceTypeCheck = sprintf($resourceTypeCheck, $checkNullable, $this->column->getName(), $this->column->getName());
228223
}
229224

230225

tests/TDBMAbstractServiceTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,8 @@ private static function initSchema(Connection $connection): void
350350
$db->table('article')
351351
->column('id')->string(36)->primaryKey()->comment('@UUID')
352352
->column('content')->string(255)
353-
->column('author_id')->references('users')->null();
353+
->column('author_id')->references('users')->null()
354+
->column('attachment')->blob()->null();
354355

355356
$db->table('article2')
356357
->column('id')->string(36)->primaryKey()->comment('@UUID v4')

tests/TDBMDaoGeneratorTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1988,6 +1988,9 @@ public function testAddInterfaceOnDaoAnnotation()
19881988
$this->assertTrue($refClass->implementsInterface(TestUserDaoInterface::class));
19891989
}
19901990

1991+
/**
1992+
* @depends testDaoGeneration
1993+
*/
19911994
public function testTrait()
19921995
{
19931996
if (!$this->tdbmService->getConnection()->getDatabasePlatform() instanceof MySqlPlatform) {
@@ -2004,4 +2007,17 @@ public function testTrait()
20042007
$refClass = new ReflectionClass(UserBaseDao::class);
20052008
$this->assertTrue($refClass->hasMethod('findNothing'));
20062009
}
2010+
2011+
/**
2012+
* @depends testDaoGeneration
2013+
*/
2014+
public function testCanNullifyBlob()
2015+
{
2016+
$article = new ArticleBean('content');
2017+
$fp = fopen(__FILE__, 'r');
2018+
$article->setAttachment($fp);
2019+
$article->setAttachment(null);
2020+
$this->assertNull($article->getAttachment(null));
2021+
fclose($fp);
2022+
}
20072023
}

vendor-bin/couscous/composer.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor-bin/require-checker/composer.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)