dbName = ThrowawayDb::create(); } protected function tearDown(): void { ThrowawayDb::destroy($this->dbName); parent::tearDown(); } #[TestDox('By ID succeeds when a document is deleted')] public function testByIdSucceedsWhenADocumentIsDeleted(): void { $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents to start'); Delete::byId(ThrowawayDb::TABLE, 'four'); $this->assertEquals(4, Count::all(ThrowawayDb::TABLE), 'There should have been 4 documents remaining'); } #[TestDox('By ID succeeds when a document is not deleted')] public function testByIdSucceedsWhenADocumentIsNotDeleted(): void { $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents to start'); Delete::byId(ThrowawayDb::TABLE, 'negative four'); $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents remaining'); } public function testByFieldsSucceedsWhenDocumentsAreDeleted(): void { $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents to start'); Delete::byFields(ThrowawayDb::TABLE, [Field::NE('value', 'purple')]); $this->assertEquals(2, Count::all(ThrowawayDb::TABLE), 'There should have been 2 documents remaining'); } public function testByFieldsSucceedsWhenDocumentsAreNotDeleted(): void { $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents to start'); Delete::byFields(ThrowawayDb::TABLE, [Field::EQ('value', 'crimson')]); $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents remaining'); } public function testByContainsFails(): void { $this->expectException(DocumentException::class); Delete::byContains('', []); } #[TestDox('By JSON Path fails')] public function testByJsonPathFails(): void { $this->expectException(DocumentException::class); Delete::byJsonPath('', ''); } }