Skip to content

Commit 698dc45

Browse files
test: cover file status contract hardening
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
1 parent 7650f18 commit 698dc45

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

tests/php/Unit/Db/FileTest.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace OCA\Libresign\Tests\Unit\Db;
1010

1111
use OCA\Libresign\Db\File;
12+
use OCA\Libresign\Enum\FileStatus;
1213
use OCA\Libresign\Enum\NodeType;
1314
use OCA\Libresign\Enum\SignatureFlow;
1415
use OCA\Libresign\Tests\Unit\TestCase;
@@ -54,4 +55,25 @@ public function testHasParentReturnsTrueWhenParentFileIdIsSet(): void {
5455
$this->file->setParentFileId(123);
5556
$this->assertTrue($this->file->hasParent());
5657
}
58+
59+
public function testGetStatusReturnsDraftWhenInternalStatusIsNull(): void {
60+
$reflectionProperty = new \ReflectionProperty($this->file, 'status');
61+
$reflectionProperty->setAccessible(true);
62+
$reflectionProperty->setValue($this->file, null);
63+
64+
$this->assertSame(FileStatus::DRAFT->value, $this->file->getStatus());
65+
}
66+
67+
public function testSetStatusRejectsInvalidStatusCode(): void {
68+
$this->expectException(\InvalidArgumentException::class);
69+
$this->expectExceptionMessage('Invalid file status code: 999');
70+
71+
$this->file->setStatus(999);
72+
}
73+
74+
public function testSetStatusAcceptsKnownFileStatusCodes(): void {
75+
$this->file->setStatus(FileStatus::SIGNED->value);
76+
77+
$this->assertSame(FileStatus::SIGNED->value, $this->file->getStatus());
78+
}
5779
}

0 commit comments

Comments
 (0)