/** * @covers Openbuildings\Kohana\Database_Query::parameters * @covers Openbuildings\Kohana\Database_Query::bind * @covers Openbuildings\Kohana\Database_Query::compile * @covers Openbuildings\Kohana\Database_Query::param */ public function test_parameters() { $query = new Database_Query(Database::SELECT, 'SELECT * FROM table1 WHERE name = :param1 AND price > :param2 AND name IS NOT :param3'); $param2 = 20; $query->parameters(array(':param1' => 'test')); $query->param(':param3', NULL); $query->bind(':param2', $param2); $param2 = 10; $expected = "SELECT * FROM table1 WHERE name = 'test' AND price > 10 AND name IS NOT NULL"; $result = $query->compile(); $this->assertEquals($expected, $result); }
/** * @covers Openbuildings\Kohana\Database_MySQL_Result::seek * @covers Openbuildings\Kohana\Database_MySQL_Result::__construct * @covers Openbuildings\Kohana\Database_MySQL_Result::__destruct * @covers Openbuildings\Kohana\Database_MySQL_Result::current */ public function test_ArrayAccess() { $expected = array('id' => 1, 'name' => 'test1', 'description' => 'test test3', 'price' => 0.22); $query = new Database_Query(Database::SELECT, 'SELECT * FROM table1'); $result = $query->execute(); $this->assertTrue($result->seek(1)); $result->prev(); $current = $result->current(); $this->assertEquals(1, $current['id']); $this->assertFalse($result->seek(3)); $this->assertNotNull($result->current()); $query = new Database_Query(Database::SELECT, 'SELECT * FROM table1'); $result = $query->as_object()->execute(); $this->assertEquals((object) $expected, $result->current()); $query = new Database_Query(Database::SELECT, 'SELECT * FROM table1'); $result = $query->as_object('Test_Mysql_Result_Object2')->execute(); $this->assertEquals($expected['name'], $result->current()->name); $this->assertEquals($expected['description'], $result->current()->description); }
/** * @covers Openbuildings\Kohana\Database_Result::as_array */ public function test_as_array_object() { $query = new Database_Query(Database::SELECT, 'SELECT * FROM table1'); $result = $query->as_object()->execute(); $array = $result->as_array(); $expected = array((object) array('id' => 1, 'name' => 'test1', 'description' => 'test test3', 'price' => 0.22), (object) array('id' => 2, 'name' => 'test2', 'description' => 'test test4', 'price' => 231.99)); $this->assertEquals($expected, $array); $array = $result->as_array('name'); $expected = array('test1' => (object) array('id' => 1, 'name' => 'test1', 'description' => 'test test3', 'price' => 0.22), 'test2' => (object) array('id' => 2, 'name' => 'test2', 'description' => 'test test4', 'price' => 231.99)); $this->assertEquals($expected, $array); $array = $result->as_array(NULL, 'description'); $expected = array('test test3', 'test test4'); $this->assertEquals($expected, $array); $array = $result->as_array('name', 'description'); $expected = array('test1' => 'test test3', 'test2' => 'test test4'); $this->assertEquals($expected, $array); }