-
Notifications
You must be signed in to change notification settings - Fork 445
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
196 additions
and
53 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
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,68 @@ | ||
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', () => { | ||
let testPackage: IPackage = { | ||
url: 'test_url', | ||
tmpFile: undefined | ||
}; | ||
let testLogger: ILogger = { | ||
logDebug: undefined, | ||
increaseIndent: undefined, | ||
decreaseIndent: undefined, | ||
append: undefined, | ||
appendLine: undefined | ||
|
||
}; | ||
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); | ||
}); | ||
}); | ||
}); | ||
|
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