mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-16 01:25:36 -05:00
168 lines
7.4 KiB
TypeScript
168 lines
7.4 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
'use strict';
|
|
|
|
import 'mocha';
|
|
import * as vscode from 'vscode';
|
|
import * as azdata from 'azdata';
|
|
import * as mssql from '../../mssql';
|
|
import * as utils from './utils';
|
|
import * as uuid from 'uuid';
|
|
import { context } from './testContext';
|
|
import assert = require('assert');
|
|
import { getStandaloneServer, TestServerProfile, getBdcServer } from './testConfig';
|
|
|
|
let cmsService: mssql.ICmsService;
|
|
let server: TestServerProfile;
|
|
let connectionId: string;
|
|
let ownerUri: string;
|
|
const SERVER_CONNECTION_TIMEOUT: number = 3000;
|
|
const TEST_CMS_NAME = `adsTestCms_${uuid.v4()}`;
|
|
const TEST_CMS_GROUP = `adsTestCmsGroup_${uuid.v4()}`;
|
|
const TEST_CMS_SERVER = `adsTestCmsServer_${uuid.v4()}`;
|
|
const TEST_CMS_REG_SERVER = `adsTestCmsRegisteredServer_${uuid.v4()}`;
|
|
|
|
if (context.RunTest) {
|
|
suite('CMS integration test suite', () => {
|
|
|
|
setup(async function () {
|
|
// Set up CMS provider
|
|
if (!cmsService) {
|
|
cmsService = ((await vscode.extensions.getExtension(mssql.extension.name).activate() as mssql.IExtension)).cmsService;
|
|
assert(cmsService !== undefined);
|
|
}
|
|
|
|
// Set up connection
|
|
if (!server) {
|
|
server = await getStandaloneServer();
|
|
connectionId = await utils.connectToServer(server, SERVER_CONNECTION_TIMEOUT);
|
|
ownerUri = await azdata.connection.getConnectionString(connectionId, true);
|
|
console.log('Start CMS tests');
|
|
}
|
|
if (!ownerUri) {
|
|
ownerUri = await azdata.connection.getConnectionString(connectionId, true);
|
|
}
|
|
});
|
|
|
|
test('Create CMS Server', async function () {
|
|
// Should fail
|
|
await utils.assertThrowsAsync(
|
|
async () => await cmsService.createCmsServer(undefined, 'test_description', undefined, ownerUri),
|
|
'Cannot add a CMS server without a name or connection');
|
|
let connection = {
|
|
serverName: server.serverName,
|
|
userName: server.userName,
|
|
password: server.password,
|
|
authenticationType: server.authenticationTypeName,
|
|
database: server.database,
|
|
provider: server.provider,
|
|
version: server.version,
|
|
engineType: server.engineType,
|
|
options: {}
|
|
};
|
|
|
|
// Should create a CMS Server without an error
|
|
await cmsService.createCmsServer(TEST_CMS_NAME, 'test_description', connection, ownerUri);
|
|
});
|
|
|
|
test('Add and delete registered group to/from CMS server', async function () {
|
|
await utils.assertThrowsAsync(
|
|
async () => await cmsService.addServerGroup(ownerUri, '', undefined, 'test_description'),
|
|
'Cannot add a server group without a name');
|
|
|
|
// Should create a server group
|
|
let result = await cmsService.addServerGroup(ownerUri, '', TEST_CMS_GROUP, 'test_description');
|
|
assert(result === true, `Server group ${TEST_CMS_GROUP} was not added to CMS server successfully`);
|
|
|
|
let existingRegisteredServerGroupCount = (await cmsService.getRegisteredServers(ownerUri, '')).registeredServerGroups.length;
|
|
|
|
// Shouldn't be able to create a new server group with same name
|
|
await utils.assertThrowsAsync(
|
|
async () => await cmsService.addServerGroup(ownerUri, '', TEST_CMS_GROUP, 'test_description'),
|
|
'Cannot add a server group with existing name');
|
|
|
|
let cmsResources = await cmsService.getRegisteredServers(ownerUri, '');
|
|
assert(cmsResources.registeredServerGroups.length === existingRegisteredServerGroupCount,
|
|
`Unexpected number of Registered Server Groups after attempting to add group that already exists. Groups : [${cmsResources.registeredServerGroups.map(g => g.name).join(', ')}]`);
|
|
|
|
// Should remove the server group we added above
|
|
let deleteResult = await cmsService.removeServerGroup(ownerUri, '', TEST_CMS_GROUP);
|
|
assert(deleteResult === true, `Server group ${TEST_CMS_GROUP} was not removed successfully`);
|
|
|
|
cmsResources = await cmsService.getRegisteredServers(ownerUri, '');
|
|
assert(cmsResources.registeredServerGroups.find(g => g.name === TEST_CMS_GROUP) === undefined,
|
|
`The server group ${TEST_CMS_GROUP} was not removed successfully. Groups : [${cmsResources.registeredServerGroups.map(g => g.name).join(', ')}]`);
|
|
});
|
|
|
|
test('Add and delete registered server to/from CMS server', async function () {
|
|
|
|
await utils.assertThrowsAsync(
|
|
async () => cmsService.addRegisteredServer(ownerUri, '', undefined, 'test_description', undefined),
|
|
'Cannot add a registered without a name or connection');
|
|
|
|
let bdcServer = await getBdcServer();
|
|
let bdcConnection = {
|
|
serverName: bdcServer.serverName,
|
|
userName: bdcServer.userName,
|
|
password: bdcServer.password,
|
|
authenticationType: bdcServer.authenticationTypeName,
|
|
database: bdcServer.database,
|
|
provider: bdcServer.provider,
|
|
version: bdcServer.version,
|
|
engineType: bdcServer.engineType,
|
|
options: {}
|
|
};
|
|
|
|
// Should create a registered server
|
|
let result = await cmsService.addRegisteredServer(ownerUri, '', TEST_CMS_SERVER, 'test_description', bdcConnection);
|
|
assert(result === true, `Registered server ${TEST_CMS_SERVER} was not added to CMS server successfully`);
|
|
|
|
// Shouldn't be able to create a new registered server with same name
|
|
await utils.assertThrowsAsync(
|
|
async () => await cmsService.addRegisteredServer(ownerUri, '', TEST_CMS_SERVER, 'test_description', bdcConnection),
|
|
'Cannot add a registered server with existing name');
|
|
|
|
// Should remove the registered server we added above
|
|
let deleteResult = await cmsService.removeRegisteredServer(ownerUri, '', TEST_CMS_SERVER);
|
|
assert(deleteResult === true, `Registered server ${TEST_CMS_SERVER} was not removed correctly`);
|
|
});
|
|
|
|
test('Add and delete registered server to/from server group', async function () {
|
|
|
|
// Should create a server group
|
|
let result = await cmsService.addServerGroup(ownerUri, '', TEST_CMS_GROUP, 'test_description');
|
|
assert(result === true, `Server group ${TEST_CMS_GROUP} was not created successfully`);
|
|
|
|
// Make sure server group is created
|
|
let cmsResources = await cmsService.getRegisteredServers(ownerUri, '');
|
|
assert(cmsResources.registeredServerGroups.find(g => g.name === TEST_CMS_GROUP),
|
|
`Registered Server Group ${TEST_CMS_GROUP} was not found after being added. Groups : [${cmsResources.registeredServerGroups.map(g => g.name).join(', ')}]`);
|
|
|
|
// Should create a registered server under the group
|
|
let bdcServer = await getBdcServer();
|
|
let bdcConnection = {
|
|
serverName: bdcServer.serverName,
|
|
userName: bdcServer.userName,
|
|
password: bdcServer.password,
|
|
authenticationType: bdcServer.authenticationTypeName,
|
|
database: bdcServer.database,
|
|
provider: bdcServer.provider,
|
|
version: bdcServer.version,
|
|
engineType: bdcServer.engineType,
|
|
options: {}
|
|
};
|
|
let relativePath = cmsResources.registeredServerGroups[0].relativePath;
|
|
|
|
result = await cmsService.addRegisteredServer(ownerUri, relativePath, TEST_CMS_REG_SERVER, 'test_description', bdcConnection);
|
|
assert(result === true, `Registered server ${TEST_CMS_REG_SERVER} was not added to server group successfully`);
|
|
|
|
// Should remove the server group we added above
|
|
let deleteResult = await cmsService.removeServerGroup(ownerUri, '', TEST_CMS_GROUP);
|
|
assert(deleteResult === true, `Server group ${TEST_CMS_GROUP} was not deleted from CMS server successfully`);
|
|
});
|
|
});
|
|
}
|