// // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // //#define USE_LIVE_CONNECTION using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.SqlTools.ServiceLayer.Connection; using Microsoft.SqlTools.ServiceLayer.LanguageServices; using Microsoft.SqlTools.ServiceLayer.SqlContext; using Xunit; namespace Microsoft.SqlTools.Test.Utility { /// /// Tests for the ServiceHost Connection Service tests /// public class TestObjects { /// /// Creates a test connection service /// public static ConnectionService GetTestConnectionService() { #if !USE_LIVE_CONNECTION // use mock database connection return new ConnectionService(new TestSqlConnectionFactory()); #else // connect to a real server instance return ConnectionService.Instance; #endif } /// /// Creates a test connection details object /// public static ConnectionDetails GetTestConnectionDetails() { return new ConnectionDetails() { UserName = "sa", Password = "Yukon900", DatabaseName = "AdventureWorks2016CTP3_2", ServerName = "sqltools11" }; } /// /// Create a test language service instance /// /// public static LanguageService GetTestLanguageService() { return new LanguageService(new SqlToolsContext(null, null)); } /// /// Creates a test autocomplete service instance /// public static AutoCompleteService GetAutoCompleteService() { return AutoCompleteService.Instance; } /// /// Creates a test sql connection factory instance /// public static ISqlConnectionFactory GetTestSqlConnectionFactory() { #if !USE_LIVE_CONNECTION // use mock database connection return new TestSqlConnectionFactory(); #else // connect to a real server instance return ConnectionService.Instance.ConnectionFactory; #endif } } /// /// Test mock class for SqlConnection wrapper /// public class TestSqlConnection : ISqlConnection { public void OpenDatabaseConnection(string connectionString) { } public IEnumerable GetServerObjects() { return null; } } /// /// Test mock class for SqlConnection factory /// public class TestSqlConnectionFactory : ISqlConnectionFactory { public ISqlConnection CreateSqlConnection() { return new TestSqlConnection(); } } }