// // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // using Microsoft.SqlTools.ServiceLayer.SqlContext; using Xunit; namespace Microsoft.SqlTools.ServiceLayer.Test.LanguageServices { /// /// Tests for the SqlContext settins /// public class SettingsTests { /// /// Validate that the Language Service default settings are as expected /// [Fact] public void ValidateLanguageServiceDefaults() { var sqlToolsSettings = new SqlToolsSettings(); Assert.True(sqlToolsSettings.IsDiagnositicsEnabled); Assert.True(sqlToolsSettings.IsSuggestionsEnabled); Assert.True(sqlToolsSettings.SqlTools.EnableIntellisense); Assert.True(sqlToolsSettings.SqlTools.IntelliSense.EnableDiagnostics); Assert.True(sqlToolsSettings.SqlTools.IntelliSense.EnableSuggestions); Assert.True(sqlToolsSettings.SqlTools.IntelliSense.EnableQuickInfo); Assert.False(sqlToolsSettings.SqlTools.IntelliSense.LowerCaseSuggestions); } /// /// Validate that the IsDiagnositicsEnabled flag behavior /// [Fact] public void ValidateIsDiagnosticsEnabled() { var sqlToolsSettings = new SqlToolsSettings(); // diagnostics is enabled if IntelliSense and Diagnostics flags are set sqlToolsSettings.SqlTools.EnableIntellisense = true; sqlToolsSettings.SqlTools.IntelliSense.EnableDiagnostics = true; Assert.True(sqlToolsSettings.IsDiagnositicsEnabled); // diagnostics is disabled if either IntelliSense and Diagnostics flags is not set sqlToolsSettings.SqlTools.EnableIntellisense = false; sqlToolsSettings.SqlTools.IntelliSense.EnableDiagnostics = true; Assert.False(sqlToolsSettings.IsDiagnositicsEnabled); sqlToolsSettings.SqlTools.EnableIntellisense = true; sqlToolsSettings.SqlTools.IntelliSense.EnableDiagnostics = false; Assert.False(sqlToolsSettings.IsDiagnositicsEnabled); } /// /// Validate that the IsSuggestionsEnabled flag behavior /// [Fact] public void ValidateIsSuggestionsEnabled() { var sqlToolsSettings = new SqlToolsSettings(); // suggestions is enabled if IntelliSense and Suggestions flags are set sqlToolsSettings.SqlTools.EnableIntellisense = true; sqlToolsSettings.SqlTools.IntelliSense.EnableSuggestions = true; Assert.True(sqlToolsSettings.IsSuggestionsEnabled); // suggestions is disabled if either IntelliSense and Suggestions flags is not set sqlToolsSettings.SqlTools.EnableIntellisense = false; sqlToolsSettings.SqlTools.IntelliSense.EnableSuggestions = true; Assert.False(sqlToolsSettings.IsSuggestionsEnabled); sqlToolsSettings.SqlTools.EnableIntellisense = true; sqlToolsSettings.SqlTools.IntelliSense.EnableSuggestions = false; Assert.False(sqlToolsSettings.IsSuggestionsEnabled); } /// /// Validate that the IsQuickInfoEnabled flag behavior /// [Fact] public void ValidateIsQuickInfoEnabled() { var sqlToolsSettings = new SqlToolsSettings(); // quick info is enabled if IntelliSense and quick info flags are set sqlToolsSettings.SqlTools.EnableIntellisense = true; sqlToolsSettings.SqlTools.IntelliSense.EnableQuickInfo = true; Assert.True(sqlToolsSettings.IsQuickInfoEnabled); // quick info is disabled if either IntelliSense and quick info flags is not set sqlToolsSettings.SqlTools.EnableIntellisense = false; sqlToolsSettings.SqlTools.IntelliSense.EnableQuickInfo = true; Assert.False(sqlToolsSettings.IsQuickInfoEnabled); sqlToolsSettings.SqlTools.EnableIntellisense = true; sqlToolsSettings.SqlTools.IntelliSense.EnableQuickInfo = false; Assert.False(sqlToolsSettings.IsQuickInfoEnabled); } } }