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 testByContainsSucceedsWhenDocumentsAreDeleted(): void { $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents to start'); Delete::byContains(ThrowawayDb::TABLE, ['value' => 'purple']); $this->assertEquals(3, Count::all(ThrowawayDb::TABLE), 'There should have been 3 documents remaining'); } public function testByContainsSucceedsWhenDocumentsAreNotDeleted(): void { $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents to start'); Delete::byContains(ThrowawayDb::TABLE, ['target' => 'acquired']); $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents remaining'); } #[TestDox('By JSON Path succeeds when documents are deleted')] public function testByJsonPathSucceedsWhenDocumentsAreDeleted(): void { $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents to start'); Delete::byJsonPath(ThrowawayDb::TABLE, '$.num_value ? (@ <> 0)'); $this->assertEquals(1, Count::all(ThrowawayDb::TABLE), 'There should have been 1 document remaining'); } #[TestDox('By JSON Path succeeds when documents are not deleted')] public function testByJsonPathSucceedsWhenDocumentsAreNotDeleted(): void { $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents to start'); Delete::byJsonPath(ThrowawayDb::TABLE, '$.num_value ? (@ < 0)'); $this->assertEquals(5, Count::all(ThrowawayDb::TABLE), 'There should have been 5 documents remaining'); } }