// // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // #nullable disable using System.Threading; using System.Threading.Tasks; using Microsoft.SqlTools.ServiceLayer.Test.Common; using NUnit.Framework; using Microsoft.SqlTools.ServiceLayer.Connection.Contracts; namespace Microsoft.SqlTools.ServiceLayer.TestDriver.Tests { [TestFixture] /// /// Language Service end-to-end integration tests /// public class ConnectionTest { /// /// Try to connect with invalid credentials /// [Test] public async Task InvalidConnection() { using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) using (TestServiceDriverProvider testService = new TestServiceDriverProvider()) { bool connected = await testService.Connect(queryTempFile.FilePath, InvalidConnectParams, 60000); Assert.False(connected, "Invalid connection is failed to connect"); await testService.Connect(queryTempFile.FilePath, InvalidConnectParams, 60000); Thread.Sleep(1000); await testService.CancelConnect(queryTempFile.FilePath); await testService.Disconnect(queryTempFile.FilePath); } } /// /// Validate list databases request /// [Test] public async Task ListDatabasesTest() { using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) using (TestServiceDriverProvider testService = new TestServiceDriverProvider()) { bool connected = await testService.Connect(TestServerType.OnPrem, queryTempFile.FilePath); Assert.True(connected, "Connection successful"); var listDatabaseResult = await testService.ListDatabases(queryTempFile.FilePath); Assert.True(listDatabaseResult.DatabaseNames.Length > 0); await testService.Disconnect(queryTempFile.FilePath); } } private static ConnectParams InvalidConnectParams { get { return new ConnectParams() { Connection = new ConnectionDetails() { DatabaseName = "master", ServerName = "localhost", AuthenticationType = "SqlLogin", UserName = "invalid", Password = ".." } }; } } } }