示例#1
0
 /**
  * Execute a failing query
  * 
  * @covers ::query
  * @expectedException \ITC\DataSource\Database\Exception
  * @test
  */
 public function queryFailure()
 {
     // Mock mysqli instance
     $mysqliMock = $this->getMockBuilder('\\mysqli')->disableOriginalConstructor()->setMethods(array('prepare', 'real_escape_string'))->getMock();
     // Get client
     $client = new \ITC\DataSource\Database\Client($mysqliMock);
     // Mock mysqli stmt instance which will be returned by
     // mysqli mock
     $mysqliStatementMock = $this->getMockBuilder('\\mysqli_stmt')->disableOriginalConstructor()->setMethods(array('execute', 'close'))->getMock();
     // Mock prepare method to return mysqli stmt
     $mysqliMock->expects($this->once())->method('prepare')->will($this->returnValue($mysqliStatementMock));
     // Expect statment to be executed
     $mysqliStatementMock->expects($this->once())->method('execute')->will($this->returnValue(false));
     // Expect statment to be closed
     $mysqliStatementMock->expects($this->once())->method('close')->will($this->returnValue(true));
     // Execute query
     $client->query('TRUNCATE `users`');
 }