data = new Data(); } public function testQueryAnalyzer(): void { global $cached_affected_rows; $cached_affected_rows = 'cached_affected_rows'; SessionCache::set('profiling_supported', true); $value = [ 'sql_text' => 'insert sql_text', '#' => 10, 'argument' => 'argument argument2', ]; $response = new ResponseRenderer(); $response->setAjax(true); $controller = new QueryAnalyzerController( $response, new Template(), $this->data, new Monitor($GLOBALS['dbi']), $GLOBALS['dbi'] ); $_POST['database'] = 'database'; $_POST['query'] = 'query'; $this->dummyDbi->addSelectDb('mysql'); $this->dummyDbi->addSelectDb('database'); $controller(); $this->assertAllSelectsConsumed(); $ret = $response->getJSONResult(); self::assertSame('cached_affected_rows', $ret['message']['affectedRows']); self::assertSame([], $ret['message']['profiling']); self::assertSame([$value], $ret['message']['explain']); } }