public function it_should_allow_asserting_queries_by_action_and_statement()
{
$this->wpdb->queries = [['INSERT INTO ... (SELECT * ...)', 'some ms timing', "a stack trace including do_action('actionOne')"], ['SELECT ID FROM ... (SELECT...)', 'some ms timing', "a stack trace including do_action('actionTwo')"], ['SELECT * FROM ... INSERT', 'some ms timing', "a stack trace including do_action('actionTwo')"], ['UPDATE some_table... (SELECT', 'some ms timing', "a stack trace including do_action('actionThree')"]];
$sut = $this->make_instance();
$sut->assertQueriesByStatementAndAction('INSERT', 'actionOne');
$sut->assertQueriesCountByStatementAndAction(2, 'SELECT', 'actionTwo');
$sut->assertNotQueriesByStatementAndAction('UPDATE', 'actionOne');
$this->expectException('PHPUnit_Framework_AssertionFailedError');
$sut->assertQueriesByStatementAndAction('UPDATE', 'actionOne');
$this->expectException('PHPUnit_Framework_AssertionFailedError');
$sut->assertQueriesCountByStatementAndAction(3, 'UPDATE', 'actionThree');
$this->expectException('PHPUnit_Framework_AssertionFailedError');
$sut->assertNotQueriesByStatementAndAction('SELECT', 'actionOne');
}