// // 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.Formatter; using NUnit.Framework; namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Formatter { public class SqlSelectStatementFormatterTests : FormatterUnitTestsBase { [SetUp] public void Init() { InitFormatterUnitTestsBase(); } [Test] public void SimpleQuery() { LoadAndFormatAndCompare("SimpleQuery", GetInputFile("SimpleQuery.sql"), GetBaselineFile("SimpleQuery.sql"), new FormatOptions(), true); } [Test] public void SimpleQuery_CommasBeforeDefinition() { FormatOptions options = new FormatOptions(); options.PlaceCommasBeforeNextStatement = true; // TODO: fix verify to account for commma placement - this can LoadAndFormatAndCompare("SimpleQuery_CommasBeforeDefinition", GetInputFile("SimpleQuery.sql"), GetBaselineFile("SimpleQuery_CommasBeforeDefinition.sql"), options, false); } [Test] public void SimpleQuery_EachReferenceOnNewLine() { FormatOptions options = new FormatOptions(); options.PlaceEachReferenceOnNewLineInQueryStatements = true; LoadAndFormatAndCompare("SimpleQuery_EachReferenceOnNewLine", GetInputFile("SimpleQuery.sql"), GetBaselineFile("SimpleQuery_EachReferenceOnNewLine.sql"), options, true); } [Test] public void SimpleQuery_EachReferenceOnNewLine_CommasBeforeDefinition() { FormatOptions options = new FormatOptions(); options.PlaceCommasBeforeNextStatement = true; options.PlaceEachReferenceOnNewLineInQueryStatements = true; // TODO: fix verify to account for commma placement - this can LoadAndFormatAndCompare("SimpleQuery_EachReferenceOnNewLine_CommasBeforeDefinition", GetInputFile("SimpleQuery.sql"), GetBaselineFile("SimpleQuery_EachReferenceOnNewLine_CommasBeforeDefinition.sql"), options, false); } [Test] public void SimpleQuery_UseTabs() { FormatOptions options = new FormatOptions(); options.UseTabs = true; options.PlaceEachReferenceOnNewLineInQueryStatements = true; LoadAndFormatAndCompare("SimpleQuery_UseTabs", GetInputFile("SimpleQuery.sql"), GetBaselineFile("SimpleQuery_UseTabs.sql"), options, true); } [Test] public void SimpleQuery_20Spaces() { FormatOptions options = new FormatOptions(); options.SpacesPerIndent = 20; options.PlaceEachReferenceOnNewLineInQueryStatements = true; LoadAndFormatAndCompare("SimpleQuery_20Spaces", GetInputFile("SimpleQuery.sql"), GetBaselineFile("SimpleQuery_20Spaces.sql"), options, true); } [Test] public void SimpleQuery_UpperCaseKeywords() { FormatOptions options = new FormatOptions(); options.KeywordCasing = CasingOptions.Uppercase; options.PlaceEachReferenceOnNewLineInQueryStatements = true; LoadAndFormatAndCompare("SimpleQuery_UpperCaseKeywords", GetInputFile("SimpleQuery.sql"), GetBaselineFile("SimpleQuery_UpperCaseKeywords.sql"), options, true); } [Test] public void SimpleQuery_LowerCaseKeywords() { FormatOptions options = new FormatOptions(); options.KeywordCasing = CasingOptions.Lowercase; options.PlaceEachReferenceOnNewLineInQueryStatements = true; LoadAndFormatAndCompare("SimpleQuery_LowerCaseKeywords", GetInputFile("SimpleQuery.sql"), GetBaselineFile("SimpleQuery_LowerCaseKeywords.sql"), options, true); } [Test] public void SimpleQuery_ForBrowseClause() { LoadAndFormatAndCompare("SimpleQuery_ForBrowseClause", GetInputFile("SimpleQuery_ForBrowseClause.sql"), GetBaselineFile("SimpleQuery_ForBrowseClause.sql"), new FormatOptions(), true); } [Test] public void SimpleQuery_ForXmlClause() { LoadAndFormatAndCompare("SimpleQuery_ForXmlClause", GetInputFile("SimpleQuery_ForXmlClause.sql"), GetBaselineFile("SimpleQuery_ForXmlClause.sql"), new FormatOptions(), true); } } }