public void NuGetDependenciesSubTreeProvider_DependenciesSnapshot_GetUniqueTopLevelDependencies() { var provider = new TestableNuGetDependenciesSubTreeProvider(); var snapshotJson = @" { ""NodesCache"": [ ], ""DependenciesWorld"": [ { ""ItemSpec"": ""tfm1"", ""Properties"": { ""Name"": ""tfm1"", ""Type"": ""Target"", ""Dependencies"": ""Package3/2.0.0;Package2/1.0.0"" } }, { ""ItemSpec"": ""tfm1/Package3/2.0.0"", ""Properties"": { ""Name"": ""Package3"", ""Version"": ""2.0.0"", ""Type"": ""Package"", ""Path"": ""SomePath"", ""Resolved"": ""true"", ""Dependencies"": """" } }, { ""ItemSpec"": ""tfm1/Package2/1.0.0"", ""Properties"": { ""Name"": ""Package2"", ""Version"": ""1.0.0"", ""Type"": ""Package"", ""Path"": ""SomePath"", ""Resolved"": ""true"", ""Dependencies"": """" } }, { ""ItemSpec"": ""tfm2"", ""Properties"": { ""Name"": ""tfm2"", ""Type"": ""Target"", ""Dependencies"": ""Package1/1.0.0"" } }, { ""ItemSpec"": ""tfm2/Package1/1.0.0"", ""Properties"": { ""Name"": ""Package1"", ""Version"": ""1.0.0"", ""Type"": ""Package"", ""Path"": ""SomePath"", ""Resolved"": ""true"", ""Dependencies"": """" } }, { ""ItemSpec"": ""tfm2/Package2/1.0.0"", ""Properties"": { ""Name"": ""Package2"", ""Version"": ""1.0.0"", ""Type"": ""Package"", ""Path"": ""SomePath"", ""Resolved"": ""true"", ""Dependencies"": """" } } ] }"; provider.LoadSnapshotFromJson(snapshotJson); var topLevelDependencies = provider.GetUniqueTopLevelDependencies(); Assert.Equal(3, topLevelDependencies.Count); Assert.True(topLevelDependencies.Contains("tfm1/Package3/2.0.0")); Assert.True(topLevelDependencies.Contains("tfm1/Package2/1.0.0")); Assert.True(topLevelDependencies.Contains("tfm2/Package1/1.0.0")); }