Initial check-in of SqlProjects service addition to SqlToolsService (#1805)

* initial commit

* Initial SqlProjects service + tests

* Added SqlObject script tests; PR feedback

* Added comments for contracts

* Swapping SqlProjectResult for ResultStatus

* Updating tests

* Added automatic test base that provides a working directory and automatic cleanup.
This commit is contained in:
Benjin Dubishar
2023-01-25 14:16:15 -08:00
committed by GitHub
parent da6bb1c6c3
commit 9cce26fcbd
16 changed files with 553 additions and 1 deletions

View File

@@ -0,0 +1,47 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using System;
using System.IO;
using NUnit.Framework;
namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.Utility
{
[TestFixture]
public abstract class TestBase
{
static TestBase()
{
RunTimestamp = DateTime.Now.ToString("yyyyMMdd-HHmmssffff");
}
public static string RunTimestamp
{
get;
private set;
}
public static string TestRunFolder => Path.Join(TestContext.CurrentContext.WorkDirectory, "SqlToolsServiceTestRuns", $"Run{RunTimestamp}");
[OneTimeSetUp]
public void SetUp()
{
if (!Directory.Exists(TestRunFolder))
{
Directory.CreateDirectory(TestRunFolder);
}
}
[OneTimeTearDown]
public void TearDown()
{
if (Directory.Exists(TestRunFolder))
{
Directory.Delete(TestRunFolder, recursive: true);
}
}
}
}

View File

@@ -0,0 +1,19 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using System.IO;
using NUnit.Framework;
namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.Utility
{
public static class TestContextHelpers
{
private static string TestName => TestContext.CurrentContext.Test.Name;
public static string GetTestWorkingFolder(this TestContext context) => Path.Join(TestBase.TestRunFolder, TestName);
public static string GetTestProjectPath(this TestContext context, string? projectName = null) => Path.Join(context.GetTestWorkingFolder(), $"{projectName ?? TestName}.sqlproj");
}
}