Passing test sc service to unit test (#7006)

* passing test sc service to for UT execution
This commit is contained in:
Udeesha Gautam
2019-08-29 17:22:14 -07:00
committed by GitHub
parent 947ac1fbf2
commit 9b003ad285
2 changed files with 15 additions and 14 deletions

View File

@@ -15,7 +15,6 @@ import { getTelemetryErrorType, getEndpointName, verifyConnectionAndGetOwnerUri
import { SchemaCompareDialog } from './dialogs/schemaCompareDialog';
import { isNullOrUndefined } from 'util';
const localize = nls.loadMessageBundle();
const msSqlProvider = 'MSSQL';
const diffEditorTitle = localize('schemaCompare.CompareDetailsTitle', 'Compare Details');
const applyConfirmation = localize('schemaCompare.ApplyConfirmation', 'Are you sure you want to update the target?');
const reCompareToRefeshMessage = localize('schemaCompare.RecompareToRefresh', 'Press Compare to refresh the comparison.');
@@ -74,7 +73,7 @@ export class SchemaCompareMainWindow {
public sourceEndpointInfo: mssql.SchemaCompareEndpointInfo;
public targetEndpointInfo: mssql.SchemaCompareEndpointInfo;
constructor() {
constructor(private schemaCompareService?: mssql.ISchemaCompareService) {
this.SchemaCompareActionMap = new Map<Number, string>();
this.SchemaCompareActionMap[mssql.SchemaUpdateAction.Delete] = localize('schemaCompare.deleteAction', 'Delete');
this.SchemaCompareActionMap[mssql.SchemaUpdateAction.Change] = localize('schemaCompare.changeAction', 'Change');
@@ -274,7 +273,7 @@ export class SchemaCompareMainWindow {
public async execute(): Promise<void> {
Telemetry.sendTelemetryEvent('SchemaComparisonStarted');
const service = await SchemaCompareMainWindow.getService(msSqlProvider);
const service = await this.getService();
if (!this.operationId) {
// create once per page
this.operationId = generateGuid();
@@ -590,7 +589,7 @@ export class SchemaCompareMainWindow {
// cancel compare
if (this.operationId) {
const service = await SchemaCompareMainWindow.getService(msSqlProvider);
const service = await this.getService();
const result = await service.schemaCompareCancel(this.operationId);
if (!result || !result.success) {
@@ -622,7 +621,7 @@ export class SchemaCompareMainWindow {
'startTime:': Date.now().toString(),
'operationId': this.comparisonResult.operationId
});
const service = await SchemaCompareMainWindow.getService(msSqlProvider);
const service = await this.getService();
const result = await service.schemaCompareGenerateScript(this.comparisonResult.operationId, this.targetEndpointInfo.serverName, this.targetEndpointInfo.databaseName, azdata.TaskExecutionMode.script);
if (!result || !result.success) {
Telemetry.sendTelemetryEvent('SchemaCompareGenerateScriptFailed', {
@@ -682,7 +681,7 @@ export class SchemaCompareMainWindow {
// disable apply and generate script buttons because the results are no longer valid after applying the changes
this.setButtonsForRecompare();
const service = await SchemaCompareMainWindow.getService(msSqlProvider);
const service = await this.getService();
const result = await service.schemaComparePublishChanges(this.comparisonResult.operationId, this.targetEndpointInfo.serverName, this.targetEndpointInfo.databaseName, azdata.TaskExecutionMode.execute);
if (!result || !result.success) {
Telemetry.sendTelemetryEvent('SchemaCompareApplyFailed', {
@@ -870,7 +869,7 @@ export class SchemaCompareMainWindow {
}
let fileUri = fileUris[0];
const service = await SchemaCompareMainWindow.getService('MSSQL');
const service = await this.getService();
let startTime = Date.now();
const result = await service.schemaCompareOpenScmp(fileUri.fsPath);
if (!result || !result.success) {
@@ -969,7 +968,7 @@ export class SchemaCompareMainWindow {
let startTime = Date.now();
Telemetry.sendTelemetryEvent('SchemaCompareSaveScmp');
const service = await SchemaCompareMainWindow.getService(msSqlProvider);
const service = await this.getService();
const result = await service.schemaCompareSaveScmp(this.sourceEndpointInfo, this.targetEndpointInfo, azdata.TaskExecutionMode.execute, this.deploymentOptions, filePath.fsPath, sourceExcludes, targetExcludes);
if (!result || !result.success) {
Telemetry.sendTelemetryEvent('SchemaCompareSaveScmpFailed', {
@@ -1012,14 +1011,16 @@ export class SchemaCompareMainWindow {
}
}
private static async getService(providerName: string): Promise<mssql.ISchemaCompareService> {
let service = (vscode.extensions.getExtension(mssql.extension.name).exports as mssql.IExtension).schemaCompare;
return service;
private async getService(): Promise<mssql.ISchemaCompareService> {
if (isNullOrUndefined(this.schemaCompareService)) {
this.schemaCompareService = (vscode.extensions.getExtension(mssql.extension.name).exports as mssql.IExtension).schemaCompare;
}
return this.schemaCompareService;
}
private async GetDefaultDeploymentOptions(): Promise<void> {
// Same as dacfx default options
const service = await SchemaCompareMainWindow.getService(msSqlProvider);
const service = await this.getService();
let result = await service.schemaCompareGetDefaultOptions();
this.setDeploymentOptions(result.defaultDeploymentOptions);
}

View File

@@ -69,7 +69,7 @@ describe('SchemaCompareResult.start', function (): void {
it('Should be correct when created.', async function (): Promise<void> {
let sc = new SchemaCompareTestService();
let result = new SchemaCompareMainWindow();
let result = new SchemaCompareMainWindow(sc);
await result.start(null);
let promise = new Promise(resolve => setTimeout(resolve, 5000)); // to ensure comparison result view is initialized
await promise;
@@ -80,6 +80,6 @@ describe('SchemaCompareResult.start', function (): void {
await result.execute();
should(result.getComparisonResult() !== undefined);
should(result.getComparisonResult().operationId !== undefined);
should(result.getComparisonResult().operationId === 'Test Operation Id');
});
});