Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/microsoft/vscode-mssql
- Loading branch information
Showing
10 changed files
with
226 additions
and
79 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
/* -------------------------------------------------------------------------------------------- | ||
* Copyright (c) Microsoft Corporation. All rights reserved. | ||
* Licensed under the MIT License. See License.txt in the project root for license information. | ||
* ------------------------------------------------------------------------------------------ */ | ||
import * as vscode from 'vscode'; | ||
import * as TypeMoq from 'typemoq'; | ||
import SqlToolsServiceClient from '../src/languageservice/serviceclient'; | ||
import { FirewallService } from '../src/firewall/firewallService'; | ||
import { HandleFirewallRuleRequest, HandleFirewallRuleResponse, | ||
CreateFirewallRuleRequest, CreateFirewallRuleResponse, HandleFirewallRuleParams } from '../src/models/contracts/firewall/firewallRequest'; | ||
import VscodeWrapper from '../src/controllers/vscodeWrapper'; | ||
import { assert } from 'chai'; | ||
import { AzureSession } from '../src/models/interfaces'; | ||
|
||
|
||
suite('Firewall Service Tests', () => { | ||
let firewallService: FirewallService; | ||
let client: TypeMoq.IMock<SqlToolsServiceClient>; | ||
let vscodeWrapper: TypeMoq.IMock<VscodeWrapper>; | ||
|
||
setup(() => { | ||
client = TypeMoq.Mock.ofType(SqlToolsServiceClient, TypeMoq.MockBehavior.Loose); | ||
let mockHandleFirewallResponse: HandleFirewallRuleResponse = { | ||
result: true, | ||
ipAddress: '128.0.0.0' | ||
}; | ||
let mockCreateFirewallRuleResponse: CreateFirewallRuleResponse = { | ||
result: true, | ||
errorMessage: '' | ||
}; | ||
client.setup(c => c.sendResourceRequest(HandleFirewallRuleRequest.type, TypeMoq.It.isAny())).returns(() => Promise.resolve(mockHandleFirewallResponse)); | ||
client.setup(c => c.sendResourceRequest(CreateFirewallRuleRequest.type, TypeMoq.It.isAny())).returns(() => Promise.resolve(mockCreateFirewallRuleResponse)); | ||
vscodeWrapper = TypeMoq.Mock.ofType(VscodeWrapper, TypeMoq.MockBehavior.Loose); | ||
let mockSession: AzureSession = { | ||
environment: undefined, | ||
userId: 'test', | ||
tenantId: 'test', | ||
credentials: undefined | ||
}; | ||
let mockExtension: vscode.Extension<any> = { | ||
id: '', | ||
extensionKind: undefined, | ||
extensionPath: '', | ||
isActive: true, | ||
packageJSON: undefined, | ||
activate: undefined, | ||
exports: { | ||
sessions: [mockSession] | ||
} | ||
}; | ||
vscodeWrapper.setup(v => v.azureAccountExtension).returns(() => mockExtension); | ||
firewallService = new FirewallService(client.object, vscodeWrapper.object); | ||
}); | ||
|
||
test('isSignedIn Test', () => { | ||
let isSignedIn = firewallService.isSignedIn; | ||
assert.isNotTrue(isSignedIn, 'Firewall Service should not be signed in initially'); | ||
firewallService.isSignedIn = true; | ||
assert.isTrue(firewallService.isSignedIn, 'Firewall Service should be signed in once set'); | ||
}); | ||
|
||
test('Handle Firewall Rule test', async () => { | ||
let result = await firewallService.handleFirewallRule(12345, 'firewall error!'); | ||
assert.isNotNull(result, 'Handle Firewall Rule request is sent successfully'); | ||
}); | ||
|
||
test('Create Firewall Rule Test', async () => { | ||
let server = 'test_server'; | ||
let startIpAddress = '1.2.3.1'; | ||
let endIpAddress = '1.2.3.255'; | ||
firewallService.isSignedIn = true; | ||
let mockToken = { | ||
expiresOn: new Date(), | ||
resource: undefined, | ||
tokenType: 'test', | ||
accessToken: 'test_token' | ||
} | ||
firewallService.token = mockToken; | ||
let result = await firewallService.createFirewallRule(server, startIpAddress, endIpAddress); | ||
assert.isNotNull(result, 'Create Firewall Rule request is sent successfully'); | ||
}); | ||
}); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
import DecompressProvider from "../src/languageservice/decompressProvider"; | ||
import { IPackage, IStatusView } from "../src/languageservice/interfaces"; | ||
import { ILogger } from "../src/models/interfaces"; | ||
import { assert } from "chai"; | ||
import HttpClient, { IDownloadProgress } from "../src/languageservice/httpClient"; | ||
import { HttpModule } from "../out/src/views/htmlcontent/src/js/lib/@angular/http"; | ||
|
||
/* -------------------------------------------------------------------------------------------- | ||
* Copyright (c) Microsoft Corporation. All rights reserved. | ||
* Licensed under the MIT License. See License.txt in the project root for license information. | ||
* ------------------------------------------------------------------------------------------ */ | ||
|
||
suite('Language Service Tests', () => { | ||
|
||
suite('Decompress Provider Tests', () => { | ||
let decompressProvider = new DecompressProvider(); | ||
|
||
test('Decompress package test', async () => { | ||
let testPackage: IPackage = { | ||
url: 'test_url', | ||
tmpFile: undefined | ||
}; | ||
let testLogger: ILogger = { | ||
logDebug: undefined, | ||
increaseIndent: undefined, | ||
decreaseIndent: undefined, | ||
append: undefined, | ||
appendLine: undefined | ||
|
||
}; | ||
try { | ||
await decompressProvider.decompress(testPackage, testLogger); | ||
} catch (err) { | ||
assert.isNotNull(err, 'Should throw an error'); | ||
} | ||
}); | ||
}); | ||
|
||
suite('HttpClient Tests', () => { | ||
let httpClient = new HttpClient(); | ||
|
||
test('handleDataReceivedEvent test', () => { | ||
let mockProgress: IDownloadProgress = { | ||
packageSize: 10, | ||
downloadedBytes: 0, | ||
downloadPercentage: 0, | ||
dots: 0 | ||
}; | ||
let testLogger: ILogger = { | ||
logDebug: () => undefined, | ||
increaseIndent: () => undefined, | ||
decreaseIndent: () => undefined, | ||
append: () => undefined, | ||
appendLine: () => undefined | ||
|
||
}; | ||
let mockStatusView: IStatusView = { | ||
installingService: () => undefined, | ||
serviceInstalled: () => undefined, | ||
serviceInstallationFailed: () => undefined, | ||
updateServiceDownloadingProgress: (downloadPercentage: number) => undefined | ||
} | ||
httpClient.handleDataReceivedEvent(mockProgress, [1,2,3,4,5], testLogger, mockStatusView); | ||
assert.strictEqual(mockProgress.downloadPercentage, 50); | ||
assert.strictEqual(mockProgress.downloadedBytes, 5); | ||
assert.strictEqual(mockProgress.dots, 10); | ||
}); | ||
}); | ||
}); | ||
|
Oops, something went wrong.