Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,17 @@ private void EnsureInitialized()
_initialized = true;
}

public void BeginGetGraphData(IGraphContext context)
internal static List<IGraphQuery> GetGraphQueries(IGraphContext context)
{
EnsureInitialized();

var graphQueries = new List<IGraphQuery>();

if (context.Direction == GraphContextDirection.Self && context.RequestedProperties.Contains(DgmlNodeProperties.ContainsChildren))
{
graphQueries.Add(new ContainsChildrenGraphQuery());
}

if (context.Direction == GraphContextDirection.Contains)
if (context.Direction == GraphContextDirection.Contains ||
(context.Direction == GraphContextDirection.Target && context.LinkCategories.Contains(CodeLinkCategories.Contains)))
{
graphQueries.Add(new ContainsGraphQuery());
}
Expand Down Expand Up @@ -129,6 +128,15 @@ public void BeginGetGraphData(IGraphContext context)
}
}

return graphQueries;
}

public void BeginGetGraphData(IGraphContext context)
{
EnsureInitialized();

var graphQueries = GetGraphQueries(context);

if (graphQueries.Count > 0)
{
_graphQueryManager.AddQueries(context, graphQueries);
Expand Down
36 changes: 36 additions & 0 deletions src/VisualStudio/Core/Test/Progression/GraphProviderTests.vb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

Imports Microsoft.VisualStudio.GraphModel
Imports Microsoft.VisualStudio.GraphModel.Schemas
Imports Microsoft.VisualStudio.LanguageServices.Implementation.Progression
Imports Moq
Imports Roslyn.Test.Utilities

Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.Progression

Public Class GraphProviderTests
<WorkItem(1078048)>
<Fact, Trait(Traits.Feature, Traits.Features.Progression)>
Public Sub GetContainsGraphQueries()
Dim context = CreateGraphContext(GraphContextDirection.Contains, {})
Dim queries = AbstractGraphProvider.GetGraphQueries(context)
Assert.Equal(queries.Single().GetType(), GetType(ContainsGraphQuery))
End Sub

<WorkItem(1078048)>
<Fact, Trait(Traits.Feature, Traits.Features.Progression)>
Public Sub GetContainsGraphQueriesWithTarget()
Dim context = CreateGraphContext(GraphContextDirection.Target, {CodeLinkCategories.Contains})
Dim queries = AbstractGraphProvider.GetGraphQueries(context)
Assert.Equal(queries.Single().GetType(), GetType(ContainsGraphQuery))
End Sub

Private Shared Function CreateGraphContext(direction As GraphContextDirection, linkCategories As IEnumerable(Of GraphCategory)) As IGraphContext
Dim context = New Mock(Of IGraphContext)()
context.Setup(Function(x) x.Direction).Returns(direction)
context.Setup(Function(x) x.LinkCategories).Returns(linkCategories)
Return context.Object
End Function
End Class

End Namespace
1 change: 1 addition & 0 deletions src/VisualStudio/Core/Test/ServicesVisualStudioTest.vbproj
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,7 @@
<Compile Include="MockVisualStudioWorkspace.vb" />
<Compile Include="ObjectBrowser\NavInfoNodeDescriptor.vb" />
<Compile Include="ObjectBrowser\VisualBasic\ObjectBrowerTests.vb" />
<Compile Include="Progression\GraphProviderTests.vb" />
<Compile Include="ProjectSystemShim\DeferredProjectLoadingTests.vb" />
<Compile Include="ProjectSystemShim\Framework\MockHierarchy.vb" />
<Compile Include="ProjectSystemShim\VisualBasicProjectTests.vb" />
Expand Down