dbName = ThrowawayDb::create(); } protected function tearDown(): void { ThrowawayDb::destroy($this->dbName); parent::tearDown(); } #[TestDox('By ID succeeds when a document exists')] public function testByIdSucceedsWhenADocumentExists(): void { $this->assertTrue(Exists::byId(ThrowawayDb::TABLE, 'three'), 'There should have been an existing document'); } #[TestDox('By ID succeeds when a document does not exist')] public function testByIdSucceedsWhenADocumentDoesNotExist(): void { $this->assertFalse(Exists::byId(ThrowawayDb::TABLE, 'seven'), 'There should not have been an existing document'); } public function testByFieldsSucceedsWhenDocumentsExist(): void { $this->assertTrue(Exists::byFields(ThrowawayDb::TABLE, [Field::EQ('num_value', 10)]), 'There should have been existing documents'); } public function testByFieldsSucceedsWhenNoMatchingDocumentsExist(): void { $this->assertFalse(Exists::byFields(ThrowawayDb::TABLE, [Field::LT('nothing', 'none')]), 'There should not have been any existing documents'); } public function testByContainsFails(): void { $this->expectException(DocumentException::class); Exists::byContains('', []); } #[TestDox('By JSON Path fails')] public function testByJsonPathFails(): void { $this->expectException(DocumentException::class); Exists::byJsonPath('', ''); } }