You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.7 KiB

<?php namespace Tests\Aauth\Database;
use CodeIgniter\Test\CIDatabaseTestCase;
use Config\Aauth;
use Config\App;
use App\Models\Aauth\LoginAttemptModel;
class LoginAttemptModelTest extends CIDatabaseTestCase
{
protected $refresh = true;
protected $basePath = FCPATH . '../app/Database/Migrations';
protected $namespace = 'App';
public function setUp()
{
parent::setUp();
$this->response = new \CodeIgniter\HTTP\Response(new App());
$this->model = new LoginAttemptModel($this->db);
}
//--------------------------------------------------------------------
public function testFind()
{
$loginAttempt = $this->model->find();
$this->assertEquals(0, $loginAttempt);
}
public function testSave()
{
$this->assertTrue($this->model->save());
$this->assertEquals(1, $this->model->find());
$this->assertTrue($this->model->save());
$this->assertEquals(2, $this->model->find());
$this->model->save();
$this->model->save();
$this->model->save();
$this->model->save();
$this->model->save();
$this->model->save();
$this->model->save();
$this->assertFalse($this->model->save());
}
public function testDelete()
{
$this->model->save();
$this->assertEquals(1, $this->model->find());
$this->model->delete();
$this->assertEquals(0, $this->model->find());
}
public function testFindCookie()
{
$config = new \Config\Aauth();
$config->loginAttemptCookie = true;
$this->model = new LoginAttemptModel($this->db, $config);
$this->assertEquals(0, $this->model->find());
$this->model->save();
$this->assertEquals(1, $this->model->find());
}
public function testSaveCookie()
{
$config = new \Config\Aauth();
$config->loginAttemptCookie = true;
$this->model = new LoginAttemptModel($this->db, $config, $this->response);
$this->assertTrue($this->model->save());
$this->assertEquals(1, $this->model->find());
$this->assertTrue($this->model->save());
$this->response = new \CodeIgniter\HTTP\Response(new App());
$this->response->setCookie('logins', 10, 4000);
$this->model = new LoginAttemptModel($this->db, $config, $this->response);
$this->assertFalse($this->model->save());
}
public function testDeleteCookie()
{
$config = new Aauth();
$config->loginAttemptCookie = true;
$this->model = new LoginAttemptModel($this->db, $config, $this->response);
$this->model->save();
$this->assertEquals(1, $this->model->find());
$this->model->delete();
$this->assertEquals(0, $this->model->find());
}
public function testConfigDBGroup()
{
$this->model = new LoginAttemptModel();
$this->model->save();
$this->assertEquals(1, $this->model->find());
}
}