mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-14 17:23:27 -05:00
* init * More fixes * moving filters from contracts to core OE classes * Fixing some tests * More fixes and added doc comments * Fixing tests * Quick refactoring * more cleanups * cleanup * Adding stateless OE * Adding null checks * Making group by schema independent of settings * Fixing tests * Removing node info from core oe code * Fixing tests and moving OE code to its own project * moving oe to own project * Removing changes to Kusto * Removing azure access token from service layer * Fixing project description and title * Fixing file name typo * Removing unused strings from service layer * Fixing localized strings in tests Adding comments to stateless OE * Fixing stuff * Update src/Microsoft.SqlTools.SqlCore/Microsoft.SqlTools.SqlCore.csproj Co-authored-by: Charles Gagnon <chgagnon@microsoft.com> * Fixing project nesting * Fixing more stuff and removing OE class * Cleanup * Code cleanup * fixing oe service provider * Fixing test name * Remove using * Update src/Microsoft.SqlTools.SqlCore/ObjectExplorer/SmoModel/SmoQueryContext.cs Co-authored-by: Charles Gagnon <chgagnon@microsoft.com> * Fixing syntax error * Adding project to locproject * Fixing stuff * Fixing errors * sorting usings --------- Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
84 lines
3.0 KiB
C#
84 lines
3.0 KiB
C#
//
|
|
// 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.Threading.Tasks;
|
|
using NUnit.Framework;
|
|
using Microsoft.SqlTools.ServiceLayer.Test.Common;
|
|
using Microsoft.SqlTools.CoreSql.ObjectExplorer;
|
|
using Microsoft.SqlTools.ServiceLayer.Test.Common.Extensions;
|
|
using Microsoft.SqlTools.SqlCore.ObjectExplorer;
|
|
using System.Linq;
|
|
|
|
namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.ObjectExplorer
|
|
{
|
|
public class StatelessObjectExplorerServiceTests
|
|
{
|
|
|
|
string databaseName = "tempdb";
|
|
|
|
ObjectExplorerServerInfo serverInfo = new ObjectExplorerServerInfo()
|
|
{
|
|
DatabaseName = "tempdb",
|
|
ServerName = "testserver",
|
|
UserName = "testuser",
|
|
IsCloud = true,
|
|
isDefaultOrSystemDatabase = false
|
|
};
|
|
|
|
ObjectExplorerOptions options = new ObjectExplorerOptions()
|
|
{
|
|
GroupBySchemaFlagGetter = () => true,
|
|
OperationTimeoutSeconds = 10000,
|
|
};
|
|
|
|
[Test]
|
|
[TestCase("", "dbo")]
|
|
[TestCase("testserver/{0}/dbo", "Tables")]
|
|
[TestCase("testserver/{0}/dbo/Tables", "dbo.t1")]
|
|
[TestCase("testserver/{0}/dbo/Tables", "dbo.t2")]
|
|
public async Task ExpandingPathShouldReturnCorrectNodes(string oePath, string childLabel)
|
|
{
|
|
var query = @"Create table t1 (c1 int)
|
|
GO
|
|
Create table t2 (c1 int)
|
|
GO";
|
|
await RunTest(databaseName, query, "testdb", async (testdbName, connectionString) =>
|
|
{
|
|
serverInfo.DatabaseName = testdbName;
|
|
var pathWithDb = string.Format(oePath, testdbName);
|
|
var nodes = StatelessObjectExplorer.Expand(connectionString, null, pathWithDb, serverInfo, options);
|
|
|
|
Assert.True(nodes.Any(node => node.Label == childLabel), $"Expansion result for {pathWithDb} does not contain node {childLabel}");
|
|
});
|
|
}
|
|
|
|
private async Task RunTest(string databaseName, string query, string testDbPrefix, Func<string, string, Task> test)
|
|
{
|
|
SqlTestDb? testDb = null;
|
|
try
|
|
{
|
|
testDb = await SqlTestDb.CreateNewAsync(TestServerType.OnPrem, false, null, query, testDbPrefix);
|
|
if (databaseName == "#testDb#")
|
|
{
|
|
databaseName = testDb.DatabaseName;
|
|
}
|
|
await test(testDb.DatabaseName, testDb.ConnectionString);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string msg = ex.BuildRecursiveErrorMessage();
|
|
throw new Exception($"Failed to run OE test. error:{msg} {ex.StackTrace}");
|
|
}
|
|
finally
|
|
{
|
|
if (testDb != null)
|
|
{
|
|
await testDb.CleanupAsync();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |