/**
  * @covers SQLAdapter::__construct
  * @covers SQLAdapter::select
  */
 public function testSelect()
 {
     $config = new PDOConfig(array('database' => 'test', 'pass' => ''));
     $pdo = new PDOExtended($config);
     #
     # Select
     #
     $adapter = new SQLAdapter($pdo);
     $generator = new BindParamGenerator();
     $generator->equal_('ID', '3');
     $response = $adapter->select('TBL_TEST', array('ID', 'FIELD1', 'FIELD3'), $generator->generate());
     $actual = $response->fetchAll();
     $expected = array(0 => array('ID' => '3', 'FIELD1' => 'f3_1', 'FIELD3' => 'f3_3'));
     $this->assertEquals($expected, $actual, __CLASS__ . "::" . __METHOD__ . ": line " . __LINE__);
     #
     # Select with WHERE IN - 1
     #
     $adapter = new SQLAdapter($pdo);
     $generator = new BindParamGenerator();
     $generator->in_('ID', array(2, 4));
     $response = $adapter->select('TBL_TEST', array('ID', 'FIELD1', 'FIELD3'), $generator->generate());
     $actual = $response->fetchAll();
     $expected = array(0 => array('ID' => '2', 'FIELD1' => 'f2_1', 'FIELD3' => 'f2_3'), 1 => array('ID' => '4', 'FIELD1' => 'f4_1', 'FIELD3' => 'f4_3'));
     $this->assertEquals($expected, $actual, __CLASS__ . "::" . __METHOD__ . ": line " . __LINE__);
     #
     # Select with WHERE IN and ORDER BY
     #
     $adapter = new SQLAdapter($pdo);
     $generator = new BindParamGenerator();
     $generator->in_('FIELD1', array('f2_1', 'f4_1'))->orderBy(array('ID' => 'DESC'));
     $response = $adapter->select('TBL_TEST', array('ID', 'FIELD1', 'FIELD3'), $generator->generate());
     $actual = $response->fetchAll();
     $expected = array(0 => array('ID' => '4', 'FIELD1' => 'f4_1', 'FIELD3' => 'f4_3'), 1 => array('ID' => '2', 'FIELD1' => 'f2_1', 'FIELD3' => 'f2_3'));
     $this->assertEquals($expected, $actual, __CLASS__ . "::" . __METHOD__ . ": line " . __LINE__);
 }
 /**
  * @covers BindParamGenerator::in_
  * @covers BindParamGenerator::_addWhereInParams
  */
 public function test_in_()
 {
     $gen = new BindParamGenerator();
     $gen->in_('field', array(1, 2, 3, 4, "5"));
     $param = $gen->generate();
     $actual = $param->getConditionStr();
     $expected = "field IN (:field_0,:field_1,:field_2,:field_3,:field_4)";
     $this->assertEquals($expected, $actual);
 }