1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
<?php
class Like_test extends CI_TestCase {
/**
* @var object Database/Query Builder holder
*/
protected $db;
public function set_up()
{
$this->db = Mock_Database_Schema_Skeleton::init(DB_DRIVER);
Mock_Database_Schema_Skeleton::create_tables();
Mock_Database_Schema_Skeleton::create_data();
}
// ------------------------------------------------------------------------
/**
* @see ./mocks/schema/skeleton.php
*/
public function test_like()
{
$job1 = $this->db->like('name', 'veloper')
->get('job')
->row();
// Check the result
$this->assertEquals('1', $job1->id);
$this->assertEquals('Developer', $job1->name);
}
// ------------------------------------------------------------------------
/**
* @see ./mocks/schema/skeleton.php
*/
public function test_or_like()
{
$jobs = $this->db->like('name', 'ian')
->or_like('name', 'veloper')
->get('job')
->result_array();
// Check the result
$this->assertCount(3, $jobs);
$this->assertEquals('Developer', $jobs[0]['name']);
$this->assertEquals('Politician', $jobs[1]['name']);
$this->assertEquals('Musician', $jobs[2]['name']);
}
// ------------------------------------------------------------------------
/**
* @see ./mocks/schema/skeleton.php
*/
public function test_not_like()
{
$jobs = $this->db->not_like('name', 'veloper')
->get('job')
->result_array();
// Check the result
$this->assertCount(3, $jobs);
$this->assertEquals('Politician', $jobs[0]['name']);
$this->assertEquals('Accountant', $jobs[1]['name']);
$this->assertEquals('Musician', $jobs[2]['name']);
}
// ------------------------------------------------------------------------
/**
* @see ./mocks/schema/skeleton.php
*/
public function test_or_not_like()
{
$jobs = $this->db->like('name', 'an')
->or_not_like('name', 'veloper')
->get('job')
->result_array();
// Check the result
$this->assertCount(3, $jobs);
$this->assertEquals('Politician', $jobs[0]['name']);
$this->assertEquals('Accountant', $jobs[1]['name']);
$this->assertEquals('Musician', $jobs[2]['name']);
}
// ------------------------------------------------------------------------
/**
* GitHub issue #273
*
* @see ./mocks/schema/skeleton.php
*/
public function test_like_spaces_and_tabs()
{
$spaces = $this->db->like('value', ' ')->get('misc')->result_array();
$tabs = $this->db->like('value', "\t")->get('misc')->result_array();
$this->assertCount(1, $spaces);
$this->assertCount(1, $tabs);
}
/**
* GitHub issue #5462
*
* @see ./mocks/schema/skeleton.php
*
* @dataProvider like_set_side_provider
*/
public function test_like_set_side($str, $side, $expected_name)
{
$actual = $this->db->like('name', $str, $side)->get('job')->result_array();
$this->assertCount(1, $actual);
$this->assertEquals($expected_name, $actual[0]['name']);
}
public function like_set_side_provider()
{
return array(
array('Developer', 'none', 'Developer'),
array('tician', 'before', 'Politician'),
array('Accou', 'after', 'Accountant'),
array('usicia', 'both', 'Musician'),
);
}
}
|