public function it_should_allow_asserting_queries_by_function_and_statement()
{
$this->wpdb->queries = [['INSERT INTO ... (SELECT * ...)', 'some ms timing', 'a stack trace including functionOne'], ['SELECT ID FROM ... (SELECT...)', 'some ms timing', 'a stack trace including functionTwo'], ['SELECT * FROM ... INSERT', 'some ms timing', 'a stack trace including functionTwo'], ['UPDATE some_table... (SELECT', 'some ms timing', 'a stack trace including functionThree']];
$sut = $this->make_instance();
$sut->assertQueriesByStatementAndFunction('INSERT', 'functionOne');
$sut->assertQueriesCountByStatementAndFunction(2, 'SELECT', 'functionTwo');
$sut->assertNotQueriesByStatementAndFunction('UPDATE', 'functionOne');
$this->expectException('PHPUnit_Framework_AssertionFailedError');
$sut->assertQueriesByStatementAndFunction('UPDATE', 'functionOne');
$this->expectException('PHPUnit_Framework_AssertionFailedError');
$sut->assertQueriesCountByStatementAndFunction(3, 'UPDATE', 'functionThree');
$this->expectException('PHPUnit_Framework_AssertionFailedError');
$sut->assertNotQueriesByStatementAndFunction('SELECT', 'functionOne');
}