/** * @covers Openbuildings\Kohana\Database_Query::as_object * @covers Openbuildings\Kohana\Database_Query::execute * @covers Openbuildings\Kohana\Database_Result::__construct */ public function test_as_object() { $query = new Database_Query(Database::SELECT, 'SELECT * FROM table1'); $expected = array(new Test_Mysql_Result_Object('tmp'), new Test_Mysql_Result_Object('tmp')); $expected[0]->id = 1; $expected[0]->name = 'test1'; $expected[0]->description = 'test test3'; $expected[0]->price = 0.22; $expected[1]->id = 2; $expected[1]->name = 'test2'; $expected[1]->description = 'test test4'; $expected[1]->price = 231.99; $result = $query->as_object(new Test_Mysql_Result_Object('tmp'), array('tmp'))->execute()->as_array(); $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); }