/**
  * @depends testConnection
  */
 public function testTypeWithSql()
 {
     $this->adapter->query('DELETE FROM foo WHERE id = 1', Adapter::QUERY_MODE_EXECUTE);
     $search = new Search($this->adapter);
     $search->setQueryMode($search::QUERY_MODE_EXECUTE);
     $indexer = new Indexer($this->adapter);
     $indexer->setQueryMode($indexer::QUERY_MODE_EXECUTE);
     $sql = new Sql($this->adapter);
     //test Replace with sql query
     $insert = new Replace('foo');
     $insert->values(['id' => 1, 'c1' => 10, 'c2' => true, 'c3' => '5', 'f1' => 3.333]);
     $affectedRow = $indexer->insertWith($insert);
     $this->assertEquals(1, $affectedRow);
     $select = new Select('foo');
     $select->where(['id' => 1]);
     //test select sql
     $results = $search->searchWith($select);
     foreach ($results as $result) {
         $this->assertEquals(1, $result['id']);
         $this->assertEquals(10, $result['c1']);
         $this->assertEquals(1, $result['c2']);
         $this->assertEquals(5, $result['c3']);
         $this->assertEquals(3.333, $result['f1']);
         break;
     }
     $select = new Select('foo');
     $select->where(['f1' => 3.333]);
     //test select sql with float in where and direct adapter execution
     $results = $this->adapter->query($sql->getSqlStringForSqlObject($select), Adapter::QUERY_MODE_EXECUTE);
     foreach ($results as $result) {
         $this->assertEquals(1, $result['id']);
         $this->assertEquals(10, $result['c1']);
         $this->assertEquals(1, $result['c2']);
         $this->assertEquals(5, $result['c3']);
         $this->assertEquals(3.333, $result['f1']);
         break;
     }
 }