castopod/tests/database/ExampleDatabaseTest.php

54 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace Tests\Database;
use CodeIgniter\Test\CIUnitTestCase;
use CodeIgniter\Test\DatabaseTestTrait;
use Tests\Support\Database\Seeds\ExampleSeeder;
use Tests\Support\Models\ExampleModel;
class ExampleDatabaseTest extends CIUnitTestCase
{
use DatabaseTestTrait;
/**
* @var string
*/
protected $seed = ExampleSeeder::class;
public function testModelFindAll(): void
{
$model = new ExampleModel();
// Get every row created by ExampleSeeder
$objects = $model->findAll();
// Make sure the count is as expected
$this->assertCount(3, $objects);
}
public function testSoftDeleteLeavesRow(): void
{
$model = new ExampleModel();
$this->setPrivateProperty($model, 'useSoftDeletes', true);
$this->setPrivateProperty($model, 'tempUseSoftDeletes', true);
$object = $model->first();
$model->delete($object->id);
// The model should no longer find it
$this->assertNull($model->find($object->id));
// ... but it should still be in the database
$result = $model
->builder()
->where('id', $object->id)
->get()
->getResult();
$this->assertCount(1, $result);
}
}