/**
  * Tests to ensure that the Query Mocker is used to execute a query.
  */
 public function testExecuteMocker()
 {
     $mocker = new QueryMocker();
     $mocker->setResult(true);
     QueryType::setMocker($mocker);
     $this->assertInstanceOf('\\Queryer\\Mock\\QueryMockerResult', $this->queryType->execute());
 }
 /**
  * Tests the setResult method to ensure that it always returns the same result each time a query is executed.
  */
 public function testSetResult()
 {
     $resultSet = array(array('user_id' => 1, 'user_name' => 'Me'), array('user_id' => 2, 'user_name' => 'You'));
     $affectedRows = 2;
     $insertId = 100;
     $errorCode = 504;
     $errorMessage = 'error!';
     // Set our result.
     $this->queryMocker->setResult($resultSet, $affectedRows, $insertId, $errorCode, $errorMessage);
     // Just get the result.
     $result = $this->queryMocker->execute(array());
     // Make sure we get an instance of a QueryMockerResult.
     $this->assertInstanceOf('\\Queryer\\Mock\\QueryMockerResult', $result);
     $this->assertEquals(count($resultSet), $result->getNumRows());
     $this->assertEquals($affectedRows, $result->getAffectedRows());
     $this->assertEquals($insertId, $result->getInsertId());
     $this->assertEquals($errorCode, $result->getErrorCode());
     $this->assertEquals($errorMessage, $result->getErrorMessage());
     // Check the rows.
     for ($i = 0; $i < count($resultSet); $i++) {
         $row = $resultSet[$i];
         $this->assertEquals($row, $result->fetchAssoc());
     }
 }