public function it_should_allow_asserting_queries_by_class_method()
{
$this->wpdb->queries = [['INSERT INTO ... (SELECT * ...)', 'some ms timing', 'a stack trace including Acme\\MyPlugin->methodOne'], ['SELECT ID FROM ... (SELECT...)', 'some ms timing', 'a stack trace including Acme\\MyPlugin->methodTwo'], ['SELECT * FROM ... INSERT', 'some ms timing', 'a stack trace including Acme\\MyPlugin->methodTwo'], ['UPDATE some_table... (SELECT', 'some ms timing', 'a stack trace including Acme\\MyPlugin->methodThree']];
$sut = $this->make_instance();
$sut->assertQueriesByMethod('Acme\\MyPlugin', 'methodOne');
$sut->assertQueriesByMethod('\\Acme\\MyPlugin', 'methodOne');
$sut->assertQueriesCountByMethod(2, 'Acme\\MyPlugin', 'methodTwo');
$sut->assertNotQueriesByMethod('Acme\\MyPlugin', 'someMethod');
$this->expectException('PHPUnit_Framework_AssertionFailedError');
$sut->assertQueriesByMethod('Acme\\MyPlugin', 'methodFour');
$this->expectException('PHPUnit_Framework_AssertionFailedError');
$sut->assertQueriesByMethod('\\Acme\\MyPlugin', 'methodFour');
$this->expectException('PHPUnit_Framework_AssertionFailedError');
$sut->assertQueriesCountByMethod(3, 'Acme\\MyPlugin', 'methodTwo');
$this->expectException('PHPUnit_Framework_AssertionFailedError');
$sut->assertNotQueriesByMethod('Acme\\MyPlugin', 'methodTwo');
}