Porting showplan code from ssms (#1280)

* Porting showplan code from ssms

* Moving showplans bits to a subfolder

* code cleanup

* Remvoing unnecssary conditional visibility
This commit is contained in:
Aasim Khan
2021-11-04 14:54:52 -07:00
committed by GitHub
parent e33caf38c4
commit e8c50caea1
49 changed files with 45123 additions and 2 deletions

View File

@@ -29,4 +29,8 @@
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
</Project>
<ItemGroup>
<Content Remove=".\ShowPlan\TestExecution.xml" />
<EmbeddedResource Include=".\ShowPlan\TestExecutionPlan.xml" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,32 @@
//
// 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 System.Reflection;
using System.Threading.Tasks;
using NUnit.Framework;
using Microsoft.SqlTools.ServiceLayer.ShowPlan.ShowPlanGraph;
namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ShowPlan
{
public class ShowPlanXMLTests
{
[Test]
public async Task ParseXMLFileReturnsValidShowPlanGraph()
{
Assembly assembly = Assembly.GetAssembly(typeof(ShowPlanXMLTests));
Stream scriptStream = assembly.GetManifestResourceStream(assembly.GetName().Name + ".ShowPlan.TestExecutionPlan.xml");
StreamReader reader = new StreamReader(scriptStream);
string text = reader.ReadToEnd();
var showPlanGraphs = ShowPlanGraph.ParseShowPlanXML(text, ShowPlanType.Actual);
Assert.AreEqual(1, showPlanGraphs.Length, "Single show plan graph not generated from the test xml file");
var testShowPlanGraph = showPlanGraphs[0];
Assert.NotNull(testShowPlanGraph, "graph should not be null");
Assert.NotNull(testShowPlanGraph.Root, "graph should have a root");
}
}
}

File diff suppressed because it is too large Load Diff