Query Runner Tests (#10252)

* rework some code and write an inital test

* fix strict

* add more to standard test

* add to existing workflow test

* fix tests

* simplify the code

* add more tests

* remove bad import

* fix compile

* fix timestampiong
This commit is contained in:
Anthony Dresser
2020-05-06 13:38:12 -07:00
committed by GitHub
parent 4199cec393
commit df5df38a55
25 changed files with 856 additions and 430 deletions

View File

@@ -6,12 +6,11 @@
import { IConnectionManagementService } from 'sql/platform/connection/common/connectionManagement';
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
import QueryRunner from 'sql/workbench/services/query/common/queryRunner';
import { IColumn, ICellValue, ResultSetSubset } from 'sql/workbench/services/query/common/query';
import * as Utils from 'sql/platform/connection/common/utils';
import { IErrorMessageService } from 'sql/platform/errorMessage/common/errorMessageService';
import { resolveQueryFilePath } from '../common/insightsUtils';
import { DbCellValue, IDbColumn, QueryExecuteSubsetResult } from 'azdata';
import Severity from 'vs/base/common/severity';
import * as types from 'vs/base/common/types';
import * as nls from 'vs/nls';
@@ -27,8 +26,8 @@ export class InsightsDialogController {
private _queryRunner: QueryRunner;
private _connectionProfile: IConnectionProfile;
private _connectionUri: string;
private _columns: IDbColumn[];
private _rows: DbCellValue[][];
private _columns: IColumn[];
private _rows: ICellValue[][];
constructor(
private readonly _model: IInsightsDialogModel,
@@ -160,13 +159,13 @@ export class InsightsDialogController {
) {
let resultset = batch.resultSetSummaries[0];
this._columns = resultset.columnInfo;
let rows: QueryExecuteSubsetResult;
let rows: ResultSetSubset;
try {
rows = await this._queryRunner.getQueryRows(0, resultset.rowCount, batch.id, resultset.id);
} catch (e) {
return Promise.reject(e);
}
this._rows = rows.resultSubset.rows;
this._rows = rows.rows;
this.updateModel();
}
}

View File

@@ -4,13 +4,13 @@
*--------------------------------------------------------------------------------------------*/
import { InsightsDialogController } from 'sql/workbench/services/insights/browser/insightsDialogController';
import QueryRunner, { IQueryMessage } from 'sql/workbench/services/query/common/queryRunner';
import QueryRunner from 'sql/workbench/services/query/common/queryRunner';
import { IQueryMessage, BatchSummary, IColumn, ResultSetSubset } from 'sql/workbench/services/query/common/query';
import { ConnectionManagementService } from 'sql/workbench/services/connection/browser/connectionManagementService';
import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService';
import * as azdata from 'azdata';
import { equal } from 'assert';
import { Mock, MockBehavior, It } from 'typemoq';
import { Emitter } from 'vs/base/common/event';
@@ -114,12 +114,12 @@ function getPrimedQueryRunner(data: string[][], columns: string[]): IPrimedQuery
querymock.setup(x => x.onQueryEnd).returns(x => emitter.event);
querymock.setup(x => x.onMessage).returns(x => new Emitter<[IQueryMessage]>().event);
querymock.setup(x => x.batchSets).returns(x => {
return <Array<azdata.BatchSummary>>[
return <Array<BatchSummary>>[
{
id: 0,
resultSetSummaries: [
{
columnInfo: <Array<azdata.IDbColumn>>columns.map(c => { return { columnName: c }; }),
columnInfo: <Array<IColumn>>columns.map(c => { return { columnName: c }; }),
id: 0,
rowCount: data.length
}
@@ -129,11 +129,9 @@ function getPrimedQueryRunner(data: string[][], columns: string[]): IPrimedQuery
});
querymock.setup(x => x.getQueryRows(It.isAnyNumber(), It.isAnyNumber(), It.isAnyNumber(), It.isAnyNumber()))
.returns(x => Promise.resolve(<azdata.QueryExecuteSubsetResult>{
resultSubset: <azdata.ResultSetSubset>{
rowCount: data.length,
rows: data.map(r => r.map(c => { return { displayValue: c }; }))
}
.returns(x => Promise.resolve(<ResultSetSubset>{
rowCount: data.length,
rows: data.map(r => r.map(c => { return { displayValue: c }; }))
}));
querymock.setup(x => x.runQuery(It.isAnyString())).returns(x => Promise.resolve());