zeroOrMoreTimes()->andReturnFirstArg(); $collector = new Sql_Collector(); $this->assertTrue( has_filter( 'query', [ $collector, 'query' ] ) ); $query = 'SELECT * FROM wp_posts'; $collector->query( $query ); global $wpdb; $wpdb = new \stdClass(); $duration = 100; $wpdb->queries[] = [ $query, $duration, 'foo(), bar()' ]; $records = $collector->get_records(); $this->assertInternalType( 'array', $records ); $this->assertCount( 1, $records ); $record = $records[0]; $this->assertInstanceOf( Record::class, $record ); $this->assertEquals( $query, $record->get_name() ); $this->assertContains( $query, $record->get_description() ); $this->assertInternalType( 'float', $record->get_origin() ); $this->assertEquals( $duration, $record->get_duration() ); $this->assertEquals( 'sql-read', $record->get_category() ); } }