Skip to content

Commit 2da2e45

Browse files
committed
test delete override to soft-delete
1 parent 43af7f4 commit 2da2e45

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

tests/RandomTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@ protected function init(): void
3939

4040
$this->addField('is_deleted', ['type' => 'boolean', 'nullable' => false, 'default' => false]);
4141
$this->addCondition('is_deleted', false);
42+
$this->onHook(Model::HOOK_BEFORE_DELETE, function (Model $entity) {
43+
$softDeleteController = new ControllerSoftDelete();
44+
$softDeleteController->softDelete($entity);
45+
46+
$entity->hook(Model::HOOK_AFTER_DELETE);
47+
$entity->breakHook(false); // this will cancel original Model::delete()
48+
});
4249
}
4350
}
4451
class Model_Item2 extends Model
@@ -176,6 +183,15 @@ public function testSoftDelete(): void
176183
2 => ['id' => 2, 'name' => 'Michael', 'parent_item_id' => null, 'is_deleted' => false],
177184
],
178185
], $this->getDb());
186+
187+
$entity = $m->loadBy('name', 'Michael');
188+
$entity->delete();
189+
$this->assertEquals([
190+
'item' => [
191+
1 => ['id' => 1, 'name' => 'John', 'parent_item_id' => null, 'is_deleted' => false],
192+
2 => ['id' => 2, 'name' => 'Michael', 'parent_item_id' => null, 'is_deleted' => true],
193+
],
194+
], $this->getDb());
179195
}
180196

181197
public function testTitleImport(): void

0 commit comments

Comments
 (0)