From 0d398a2f2deafba87f5d703961d880f16cb682d0 Mon Sep 17 00:00:00 2001 From: fogelito Date: Wed, 23 Jul 2025 17:42:00 +0300 Subject: [PATCH 01/11] test --- tests/unit/DocumentTest.php | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/unit/DocumentTest.php b/tests/unit/DocumentTest.php index 4d2e517fc..11ad7fc6a 100644 --- a/tests/unit/DocumentTest.php +++ b/tests/unit/DocumentTest.php @@ -8,6 +8,7 @@ use Utopia\Database\Helpers\ID; use Utopia\Database\Helpers\Permission; use Utopia\Database\Helpers\Role; +use Utopia\Database\Validator\Authorization; class DocumentTest extends TestCase { @@ -68,6 +69,45 @@ public function tearDown(): void { } + public function testDocumentNulls(): void + { + +// $doc = new \ArrayObject($nulls); +// var_dump(isset($doc['error'])); +// var_dump(isset($doc['$shmuel'])); + + $data = [ + '$permissions' => null, + 'shmuel' => null, + ]; + + /** + * Expected + */ + $this->assertEquals(null, $data['shmuel']); + $this->assertEquals(false, isset($data['shmuel'])); + + + $document = new Document($data); + + $this->assertEquals(null, $document['$permissions']); + $this->assertEquals(false, isset($document['$permissions'])); + + $this->assertEquals(null, $document['shmuel']); + $this->assertEquals(false, isset($document['shmuel'])); + + var_dump(isset($document['shmuel'])); + $this->assertEquals(true, $document['shmuel']); + $this->assertEquals(true, $document['shmuel']); + exit; + + var_dump($document->getAttribute('error', 'error')); + var_dump($document->getAttribute('$permissions', '$permissions')); + var_dump($document->getAttribute('shmuel', 'shmuel')); + + $this->assertEquals(true, false); + } + public function testId(): void { $this->assertEquals($this->id, $this->document->getId()); From 0573b802456f20594f9e24d4378aa6f98c558140 Mon Sep 17 00:00:00 2001 From: fogelito Date: Wed, 23 Jul 2025 19:22:47 +0300 Subject: [PATCH 02/11] Test --- phpunit.xml | 2 +- tests/unit/DocumentTest.php | 15 ++------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/phpunit.xml b/phpunit.xml index 2a0531cfd..34365d48d 100755 --- a/phpunit.xml +++ b/phpunit.xml @@ -7,7 +7,7 @@ convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" - stopOnFailure="false" + stopOnFailure="true" > diff --git a/tests/unit/DocumentTest.php b/tests/unit/DocumentTest.php index 11ad7fc6a..15cb788de 100644 --- a/tests/unit/DocumentTest.php +++ b/tests/unit/DocumentTest.php @@ -79,6 +79,7 @@ public function testDocumentNulls(): void $data = [ '$permissions' => null, 'shmuel' => null, + //'bla' => true, // When adding this tests are passing ]; /** @@ -87,25 +88,13 @@ public function testDocumentNulls(): void $this->assertEquals(null, $data['shmuel']); $this->assertEquals(false, isset($data['shmuel'])); - $document = new Document($data); $this->assertEquals(null, $document['$permissions']); $this->assertEquals(false, isset($document['$permissions'])); $this->assertEquals(null, $document['shmuel']); - $this->assertEquals(false, isset($document['shmuel'])); - - var_dump(isset($document['shmuel'])); - $this->assertEquals(true, $document['shmuel']); - $this->assertEquals(true, $document['shmuel']); - exit; - - var_dump($document->getAttribute('error', 'error')); - var_dump($document->getAttribute('$permissions', '$permissions')); - var_dump($document->getAttribute('shmuel', 'shmuel')); - - $this->assertEquals(true, false); + $this->assertEquals(false, isset($document['shmuel'])); // Why is failing????? } public function testId(): void From b793ce28f1013c9273f5567d7c2d58167773f5f3 Mon Sep 17 00:00:00 2001 From: fogelito Date: Wed, 23 Jul 2025 19:23:17 +0300 Subject: [PATCH 03/11] formatting --- tests/unit/DocumentTest.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/unit/DocumentTest.php b/tests/unit/DocumentTest.php index 15cb788de..249cb5caa 100644 --- a/tests/unit/DocumentTest.php +++ b/tests/unit/DocumentTest.php @@ -8,7 +8,6 @@ use Utopia\Database\Helpers\ID; use Utopia\Database\Helpers\Permission; use Utopia\Database\Helpers\Role; -use Utopia\Database\Validator\Authorization; class DocumentTest extends TestCase { @@ -72,9 +71,9 @@ public function tearDown(): void public function testDocumentNulls(): void { -// $doc = new \ArrayObject($nulls); -// var_dump(isset($doc['error'])); -// var_dump(isset($doc['$shmuel'])); + // $doc = new \ArrayObject($nulls); + // var_dump(isset($doc['error'])); + // var_dump(isset($doc['$shmuel'])); $data = [ '$permissions' => null, From 20a17076bf5c6d21973890c7c1290316c1c0f802 Mon Sep 17 00:00:00 2001 From: fogelito Date: Wed, 23 Jul 2025 19:29:59 +0300 Subject: [PATCH 04/11] Change name --- tests/unit/DocumentTest.php | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/tests/unit/DocumentTest.php b/tests/unit/DocumentTest.php index 249cb5caa..e1af6d217 100644 --- a/tests/unit/DocumentTest.php +++ b/tests/unit/DocumentTest.php @@ -70,30 +70,26 @@ public function tearDown(): void public function testDocumentNulls(): void { - // $doc = new \ArrayObject($nulls); // var_dump(isset($doc['error'])); - // var_dump(isset($doc['$shmuel'])); + // var_dump(isset($doc['$dog'])); $data = [ '$permissions' => null, - 'shmuel' => null, + 'dog' => null, //'bla' => true, // When adding this tests are passing ]; - /** - * Expected - */ - $this->assertEquals(null, $data['shmuel']); - $this->assertEquals(false, isset($data['shmuel'])); + $this->assertEquals(null, $data['dog']); + $this->assertEquals(false, isset($data['dog'])); $document = new Document($data); $this->assertEquals(null, $document['$permissions']); $this->assertEquals(false, isset($document['$permissions'])); - $this->assertEquals(null, $document['shmuel']); - $this->assertEquals(false, isset($document['shmuel'])); // Why is failing????? + $this->assertEquals(null, $document['dog']); + $this->assertEquals(false, isset($document['dog'])); // Why is failing????? } public function testId(): void From d5a8f72c89425f52228f8a4bf9c52950259cadf7 Mon Sep 17 00:00:00 2001 From: fogelito Date: Wed, 23 Jul 2025 19:31:10 +0300 Subject: [PATCH 05/11] message --- tests/unit/DocumentTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/DocumentTest.php b/tests/unit/DocumentTest.php index e1af6d217..075216876 100644 --- a/tests/unit/DocumentTest.php +++ b/tests/unit/DocumentTest.php @@ -77,7 +77,7 @@ public function testDocumentNulls(): void $data = [ '$permissions' => null, 'dog' => null, - //'bla' => true, // When adding this tests are passing + //'bla' => true, // When adding this tests are passing, meaning the null entry is not last in the document ]; $this->assertEquals(null, $data['dog']); From f1db8791aa034127ddf4703c3419438693a17bce Mon Sep 17 00:00:00 2001 From: fogelito Date: Wed, 23 Jul 2025 19:32:12 +0300 Subject: [PATCH 06/11] message --- tests/unit/DocumentTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/DocumentTest.php b/tests/unit/DocumentTest.php index 075216876..bc1bb52f6 100644 --- a/tests/unit/DocumentTest.php +++ b/tests/unit/DocumentTest.php @@ -77,7 +77,7 @@ public function testDocumentNulls(): void $data = [ '$permissions' => null, 'dog' => null, - //'bla' => true, // When adding this tests are passing, meaning the null entry is not last in the document + //'bla' => true, // When adding this line, tests are passing, meaning the 'dog' => null entry is not last in the document ]; $this->assertEquals(null, $data['dog']); From b0e9f493d206b12e0a60acb68a0e7f24d0a86682 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 24 Jul 2025 16:20:00 +1200 Subject: [PATCH 07/11] Unset value --- src/Database/Document.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Database/Document.php b/src/Database/Document.php index 2ed634f46..9baf3d9a8 100644 --- a/src/Database/Document.php +++ b/src/Database/Document.php @@ -50,6 +50,8 @@ public function __construct(array $input = []) } } + unset($value); + parent::__construct($input); } From 8bb8cdb1c1b43b6b71b123e6af89d81cd6cc58fd Mon Sep 17 00:00:00 2001 From: fogelito Date: Thu, 24 Jul 2025 12:28:41 +0300 Subject: [PATCH 08/11] Bug fix --- src/Database/Document.php | 2 +- tests/unit/DocumentTest.php | 12 ++---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/Database/Document.php b/src/Database/Document.php index 9baf3d9a8..43947096e 100644 --- a/src/Database/Document.php +++ b/src/Database/Document.php @@ -50,7 +50,7 @@ public function __construct(array $input = []) } } - unset($value); + unset($value); // Unset Reference parent::__construct($input); } diff --git a/tests/unit/DocumentTest.php b/tests/unit/DocumentTest.php index bc1bb52f6..384dcb177 100644 --- a/tests/unit/DocumentTest.php +++ b/tests/unit/DocumentTest.php @@ -70,26 +70,18 @@ public function tearDown(): void public function testDocumentNulls(): void { - // $doc = new \ArrayObject($nulls); - // var_dump(isset($doc['error'])); - // var_dump(isset($doc['$dog'])); - $data = [ '$permissions' => null, - 'dog' => null, - //'bla' => true, // When adding this line, tests are passing, meaning the 'dog' => null entry is not last in the document + 'dog' => null, // last entry is null ]; - $this->assertEquals(null, $data['dog']); - $this->assertEquals(false, isset($data['dog'])); - $document = new Document($data); $this->assertEquals(null, $document['$permissions']); $this->assertEquals(false, isset($document['$permissions'])); $this->assertEquals(null, $document['dog']); - $this->assertEquals(false, isset($document['dog'])); // Why is failing????? + $this->assertEquals(false, isset($document['dog'])); } public function testId(): void From d70dca1820810209ad0f542eba3f94b11e427c55 Mon Sep 17 00:00:00 2001 From: fogelito Date: Thu, 24 Jul 2025 12:32:28 +0300 Subject: [PATCH 09/11] Cat Dog --- tests/unit/DocumentTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/unit/DocumentTest.php b/tests/unit/DocumentTest.php index 384dcb177..ed21d4bfb 100644 --- a/tests/unit/DocumentTest.php +++ b/tests/unit/DocumentTest.php @@ -71,14 +71,14 @@ public function tearDown(): void public function testDocumentNulls(): void { $data = [ - '$permissions' => null, + 'cat' => null, 'dog' => null, // last entry is null ]; $document = new Document($data); - $this->assertEquals(null, $document['$permissions']); - $this->assertEquals(false, isset($document['$permissions'])); + $this->assertEquals(null, $document['cat']); + $this->assertEquals(false, isset($document['cat'])); $this->assertEquals(null, $document['dog']); $this->assertEquals(false, isset($document['dog'])); From 5e2b293ba4abbe71f12ee291a6d64aed35c6ba7f Mon Sep 17 00:00:00 2001 From: fogelito Date: Thu, 24 Jul 2025 12:35:27 +0300 Subject: [PATCH 10/11] Last test --- tests/unit/DocumentTest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/unit/DocumentTest.php b/tests/unit/DocumentTest.php index ed21d4bfb..a9ca44e1e 100644 --- a/tests/unit/DocumentTest.php +++ b/tests/unit/DocumentTest.php @@ -79,9 +79,11 @@ public function testDocumentNulls(): void $this->assertEquals(null, $document['cat']); $this->assertEquals(false, isset($document['cat'])); + $this->assertEquals('cat', $document->getAttribute('cat', 'cat')); $this->assertEquals(null, $document['dog']); $this->assertEquals(false, isset($document['dog'])); + $this->assertEquals('dog', $document->getAttribute('dog', 'dog')); } public function testId(): void From 14e33843333222d825ba70316fc6530d3c25880c Mon Sep 17 00:00:00 2001 From: fogelito Date: Thu, 24 Jul 2025 12:39:57 +0300 Subject: [PATCH 11/11] stopOnFailure --- phpunit.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpunit.xml b/phpunit.xml index 34365d48d..2a0531cfd 100755 --- a/phpunit.xml +++ b/phpunit.xml @@ -7,7 +7,7 @@ convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" - stopOnFailure="true" + stopOnFailure="false" >