public void Error() { var properties = ImmutableStringDictionary <string> .EmptyOrdinal.Add("myProp", "myVal"); var model = new DiagnosticDependencyModel( "myOriginalItemSpec", DiagnosticMessageSeverity.Error, "nu1002", "myMessage", isVisible: true, properties: properties); Assert.Equal(PackageRuleHandler.ProviderTypeString, model.ProviderType); Assert.Equal("myOriginalItemSpec", model.Path); Assert.Equal("myOriginalItemSpec", model.OriginalItemSpec); Assert.Equal("myOriginalItemSpec", model.Id); Assert.Equal("NU1002 myMessage", model.Caption); Assert.False(model.TopLevel); Assert.True(model.Visible); Assert.Null(model.SchemaName); Assert.False(model.Resolved); Assert.False(model.Implicit); Assert.Equal(properties, model.Properties); Assert.Equal(Dependency.DiagnosticsErrorNodePriority, model.Priority); Assert.Null(model.SchemaItemType); Assert.Equal(ManagedImageMonikers.ErrorSmall, model.Icon); Assert.Equal(ManagedImageMonikers.ErrorSmall, model.ExpandedIcon); Assert.Equal(ManagedImageMonikers.ErrorSmall, model.UnresolvedIcon); Assert.Equal(ManagedImageMonikers.ErrorSmall, model.UnresolvedExpandedIcon); Assert.Equal( DependencyTreeFlags.NuGetSubTreeNodeFlags + DependencyTreeFlags.DiagnosticNodeFlags + DependencyTreeFlags.DiagnosticErrorNodeFlags + DependencyTreeFlags.GenericUnresolvedDependencyFlags, model.Flags); }
private IDependencyModel GetDependencyModel( string itemSpec, bool resolved, IImmutableDictionary <string, string> properties, IProjectChangeDescription projectChange, HashSet <string> unresolvedChanges, ITargetFramework targetFramework) { PackageDependencyMetadata metadata; bool isTopLevel = true; bool isTarget = false; if (resolved) { metadata = new PackageDependencyMetadata(itemSpec, properties); isTopLevel = metadata.IsImplicitlyDefined || (metadata.DependencyType == DependencyType.Package && unresolvedChanges != null && unresolvedChanges.Contains(metadata.Name)); isTarget = metadata.IsTarget; ITargetFramework packageTargetFramework = TargetFrameworkProvider.GetTargetFramework(metadata.Target); if (!(packageTargetFramework?.Equals(targetFramework) == true)) { return(null); } } else { metadata = CreateUnresolvedMetadata(itemSpec, properties); } if (isTarget) { return(null); } string originalItemSpec = itemSpec; if (resolved && isTopLevel) { originalItemSpec = metadata.Name; } IDependencyModel dependencyModel = null; switch (metadata.DependencyType) { case DependencyType.Package: dependencyModel = new PackageDependencyModel( ProviderType, itemSpec, originalItemSpec, metadata.Name, DependencyTreeFlags.NuGetSubTreeNodeFlags, metadata.Version, resolved, metadata.IsImplicitlyDefined, isTopLevel, !metadata.IsImplicitlyDefined /*visible*/, properties, metadata.DependenciesItemSpecs); break; case DependencyType.Assembly: case DependencyType.FrameworkAssembly: dependencyModel = new PackageAssemblyDependencyModel( ProviderType, itemSpec, originalItemSpec, metadata.Name, DependencyTreeFlags.NuGetSubTreeNodeFlags, resolved, properties, metadata.DependenciesItemSpecs); break; case DependencyType.AnalyzerAssembly: dependencyModel = new PackageAnalyzerAssemblyDependencyModel( ProviderType, itemSpec, originalItemSpec, metadata.Name, DependencyTreeFlags.NuGetSubTreeNodeFlags, resolved, properties, metadata.DependenciesItemSpecs); break; case DependencyType.Diagnostic: dependencyModel = new DiagnosticDependencyModel( ProviderType, itemSpec, metadata.Severity, metadata.DiagnosticCode, metadata.Name, DependencyTreeFlags.NuGetSubTreeNodeFlags, isVisible: true, properties: properties); break; default: dependencyModel = new PackageUnknownDependencyModel( ProviderType, itemSpec, originalItemSpec, metadata.Name, DependencyTreeFlags.NuGetSubTreeNodeFlags, resolved, properties, metadata.DependenciesItemSpecs); break; } return(dependencyModel); }