Exemple #1
0
        public override void BeforeAddOrUpdate(
            ITargetFramework targetFramework,
            IDependency dependency,
            IReadOnlyDictionary <string, IProjectDependenciesSubTreeProvider> subTreeProviderByProviderType,
            IImmutableSet <string>?projectItemSpecs,
            IAddDependencyContext context)
        {
            // The check for SharedProjectDependency is needed because a SharedProject is not a dependency reference
            if (!dependency.TopLevel ||
                dependency.Implicit ||
                !dependency.Resolved ||
                !dependency.Flags.Contains(DependencyTreeFlags.GenericDependencyFlags) ||
                dependency.Flags.Contains(DependencyTreeFlags.SharedProjectFlags))
            {
                context.Accept(dependency);
                return;
            }

            if (projectItemSpecs == null)
            {
                // No data, so don't update
                context.Accept(dependency);
                return;
            }

            if (!projectItemSpecs.Contains(dependency.OriginalItemSpec))
            {
                // It is an implicit dependency
                if (subTreeProviderByProviderType.TryGetValue(dependency.ProviderType, out IProjectDependenciesSubTreeProvider provider) &&
                    provider is IProjectDependenciesSubTreeProviderInternal internalProvider)
                {
                    ImageMoniker implicitIcon = internalProvider.GetImplicitIcon();

                    DependencyIconSet implicitIconSet = DependencyIconSetCache.Instance.GetOrAddIconSet(
                        implicitIcon,
                        implicitIcon,
                        dependency.IconSet.UnresolvedIcon,
                        dependency.IconSet.UnresolvedExpandedIcon);

                    context.Accept(dependency.SetProperties(
                                       iconSet: implicitIconSet,
                                       isImplicit: true));
                    return;
                }
            }

            context.Accept(dependency);
        }
Exemple #2
0
        public IDependency SetProperties(
            string caption         = null,
            bool?resolved          = null,
            ProjectTreeFlags?flags = null,
            string schemaName      = null,
            IImmutableList <string> dependencyIDs = null,
            DependencyIconSet iconSet             = null,
            bool?isImplicit = null)
        {
            var clone = new Dependency(this, _modelId);

            if (caption != null)
            {
                clone.Caption = caption;
            }

            if (resolved != null)
            {
                clone.Resolved = resolved.Value;
            }

            if (flags != null)
            {
                clone.Flags = flags.Value;
            }

            if (schemaName != null)
            {
                clone.SchemaName = schemaName;
            }

            if (dependencyIDs != null)
            {
                clone.DependencyIDs = dependencyIDs;
            }

            if (iconSet != null)
            {
                clone.IconSet = s_iconSetCache.GetOrAddIconSet(iconSet);
            }

            if (isImplicit != null)
            {
                clone.Implicit = isImplicit.Value;
            }

            return(clone);
        }
 public SubTreeRootDependencyModel(
     string providerType,
     string name,
     DependencyIconSet iconSet,
     ProjectTreeFlags flags)
     : base(
         name,
         originalItemSpec: name,
         flags: flags + s_flagCache.Get(isResolved: true, isImplicit: false),
         isResolved: true,
         isImplicit: false,
         properties: null)
 {
     ProviderType = providerType;
     IconSet      = iconSet;
 }
 public DependencyGroupModel(
     string providerType,
     string name,
     DependencyIconSet iconSet,
     ProjectTreeFlags flags)
     : base(
         name,
         originalItemSpec: name,
         flags: flags + ProjectTreeFlags.VirtualFolder + DependencyTreeFlags.DependencyGroup,
         isResolved: true,
         isImplicit: false,
         properties: null)
 {
     ProviderType = providerType;
     IconSet      = iconSet;
 }
        public override IDependency BeforeAdd(
            string projectPath,
            ITargetFramework targetFramework,
            IDependency dependency,
            ImmutableDictionary <string, IDependency> .Builder worldBuilder,
            IReadOnlyDictionary <string, IProjectDependenciesSubTreeProvider> subTreeProviderByProviderType,
            IImmutableSet <string> projectItemSpecs,
            out bool filterAnyChanges)
        {
            filterAnyChanges = false;

            if (!dependency.TopLevel ||
                dependency.Implicit ||
                !dependency.Resolved ||
                !dependency.Flags.Contains(DependencyTreeFlags.GenericDependencyFlags))
            {
                return(dependency);
            }

            if (projectItemSpecs == null)
            {
                // No data, so don't update
                return(dependency);
            }

            if (!projectItemSpecs.Contains(dependency.OriginalItemSpec))
            {
                // It is an implicit dependency
                if (subTreeProviderByProviderType.TryGetValue(dependency.ProviderType, out IProjectDependenciesSubTreeProvider provider) &&
                    provider is IProjectDependenciesSubTreeProviderInternal internalProvider)
                {
                    DependencyIconSet implicitIconSet = dependency.IconSet
                                                        .WithIcon(internalProvider.GetImplicitIcon())
                                                        .WithExpandedIcon(internalProvider.GetImplicitIcon());

                    filterAnyChanges = true;
                    return(dependency.SetProperties(
                               iconSet: implicitIconSet,
                               isImplicit: true));
                }
            }

            return(dependency);
        }
Exemple #6
0
        public static IDependency FromJson(
            string jsonString,
            ProjectTreeFlags?flags    = null,
            DependencyIconSet iconSet = null,
            Dictionary <string, string> properties = null,
            IEnumerable <string> dependenciesIds   = null,
            ITargetFramework targetFramework       = null)
        {
            if (string.IsNullOrEmpty(jsonString))
            {
                return(null);
            }

            var json = JObject.Parse(jsonString);
            var data = json.ToObject <TestDependency>();

            if (flags.HasValue)
            {
                data.Flags = data.Flags.Union(flags.Value);
            }

            if (iconSet != null)
            {
                data.IconSet = iconSet;
            }

            if (properties != null)
            {
                data.Properties = ImmutableStringDictionary <string> .EmptyOrdinal.AddRange(properties);
            }

            if (dependenciesIds != null)
            {
                data.DependencyIDs = ImmutableArray.CreateRange(dependenciesIds);
            }

            if (targetFramework != null)
            {
                data.TargetFramework = targetFramework;
            }

            return(data);
        }
        public override void BeforeAddOrUpdate(
            IDependency dependency,
            IReadOnlyDictionary <string, IProjectDependenciesSubTreeProvider> subTreeProviderByProviderType,
            IImmutableSet <string>?projectItemSpecs,
            AddDependencyContext context)
        {
            if (projectItemSpecs != null &&                                           // must have data
                !Strings.IsNullOrEmpty(dependency.OriginalItemSpec) &&
                !dependency.Implicit &&                                               // explicit
                dependency.Resolved &&                                                // resolved
                dependency.Flags.Contains(DependencyTreeFlags.GenericDependency) &&   // generic dependency
                !dependency.Flags.Contains(DependencyTreeFlags.SharedProjectDependency) && // except for shared projects
                !projectItemSpecs.Contains(dependency.OriginalItemSpec) &&            // is not a known item spec
                subTreeProviderByProviderType.TryGetValue(dependency.ProviderType, out IProjectDependenciesSubTreeProvider provider) &&
                provider is IProjectDependenciesSubTreeProviderInternal internalProvider)
            {
                // Obtain custom implicit icon
                ImageMoniker implicitIcon = internalProvider.ImplicitIcon;

                // Obtain a pooled icon set with this implicit icon
                DependencyIconSet implicitIconSet = DependencyIconSetCache.Instance.GetOrAddIconSet(
                    implicitIcon,
                    implicitIcon,
                    dependency.IconSet.UnresolvedIcon,
                    dependency.IconSet.UnresolvedExpandedIcon);

                context.Accept(
                    dependency.SetProperties(
                        iconSet: implicitIconSet,
                        isImplicit: true,
                        flags: dependency.Flags.Except(DependencyTreeFlags.SupportsRemove)));
                return;
            }

            context.Accept(dependency);
        }
        public IDependency SetProperties(
            string caption         = null,
            bool?resolved          = null,
            ProjectTreeFlags?flags = null,
            string schemaName      = null,
            ImmutableArray <string> dependencyIDs = default,
            DependencyIconSet iconSet             = null,
            bool?isImplicit = null)
        {
            return(new TestDependency
            {
                // Copy all properties from this instance
                ClonePropertiesFrom = this,

                // Override specific properties as needed
                Caption = caption ?? Caption,
                Resolved = resolved ?? Resolved,
                Flags = flags ?? Flags,
                SchemaName = schemaName ?? SchemaName,
                DependencyIDs = dependencyIDs.IsDefault ? DependencyIDs : dependencyIDs,
                IconSet = iconSet ?? IconSet,
                Implicit = isImplicit ?? Implicit
            });
        }
Exemple #9
0
 public TestableDependencyModel(string path, string originalItemSpec, DependencyIconSet iconSet)
     : base(path, originalItemSpec, ProjectTreeFlags.Empty, isResolved: false, isImplicit: false, properties: null)
 {
     IconSet = iconSet;
 }
Exemple #10
0
        public void ToViewModel()
        {
            var iconSet = new DependencyIconSet(
                KnownMonikers.Uninstall,
                KnownMonikers.AbsolutePosition,
                KnownMonikers.AboutBox,
                KnownMonikers.Abbreviation);

            var dependencyResolved = IDependencyFactory.FromJson(@"
{
    ""ProviderType"": ""Yyy"",
    ""Id"": ""tfm1\\yyy\\dependencyExisting"",
    ""Name"":""dependencyExisting"",
    ""Caption"":""DependencyExisting"",
    ""HasUnresolvedDependency"":""false"",
    ""SchemaName"":""MySchema"",
    ""SchemaItemType"":""MySchemaItemType"",
    ""Priority"":""1"",
    ""Resolved"":""true""
}", iconSet: iconSet);

            var dependencyUnresolved = IDependencyFactory.FromJson(@"
{
    ""ProviderType"": ""Yyy"",
    ""Id"": ""tfm1\\yyy\\dependencyExisting"",
    ""Name"":""dependencyExisting"",
    ""Caption"":""DependencyExisting"",
    ""HasUnresolvedDependency"":""false"",
    ""SchemaName"":""MySchema"",
    ""SchemaItemType"":""MySchemaItemType"",
    ""Priority"":""1"",
    ""Resolved"":""false""
}", iconSet: iconSet);

            var mockSnapshot = ITargetedDependenciesSnapshotFactory.ImplementMock(checkForUnresolvedDependencies: false).Object;
            var mockSnapshotUnresolvedDependency = ITargetedDependenciesSnapshotFactory.ImplementMock(checkForUnresolvedDependencies: true).Object;

            var viewModelResolved = dependencyResolved.ToViewModel(mockSnapshot);

            Assert.Equal(dependencyResolved.Caption, viewModelResolved.Caption);
            Assert.Equal(dependencyResolved.Flags, viewModelResolved.Flags);
            Assert.Equal(dependencyResolved.Id, viewModelResolved.FilePath);
            Assert.Equal(dependencyResolved.SchemaName, viewModelResolved.SchemaName);
            Assert.Equal(dependencyResolved.SchemaItemType, viewModelResolved.SchemaItemType);
            Assert.Equal(dependencyResolved.Priority, viewModelResolved.Priority);
            Assert.Equal(iconSet.Icon, viewModelResolved.Icon);
            Assert.Equal(iconSet.ExpandedIcon, viewModelResolved.ExpandedIcon);

            var viewModelUnresolved = dependencyUnresolved.ToViewModel(mockSnapshot);

            Assert.Equal(dependencyUnresolved.Caption, viewModelUnresolved.Caption);
            Assert.Equal(dependencyUnresolved.Flags, viewModelUnresolved.Flags);
            Assert.Equal(dependencyUnresolved.Id, viewModelUnresolved.FilePath);
            Assert.Equal(dependencyUnresolved.SchemaName, viewModelUnresolved.SchemaName);
            Assert.Equal(dependencyUnresolved.SchemaItemType, viewModelUnresolved.SchemaItemType);
            Assert.Equal(dependencyUnresolved.Priority, viewModelUnresolved.Priority);
            Assert.Equal(iconSet.UnresolvedIcon, viewModelUnresolved.Icon);
            Assert.Equal(iconSet.UnresolvedExpandedIcon, viewModelUnresolved.ExpandedIcon);

            var viewModelUnresolvedDependency = dependencyResolved.ToViewModel(mockSnapshotUnresolvedDependency);

            Assert.Equal(dependencyUnresolved.Caption, viewModelUnresolvedDependency.Caption);
            Assert.Equal(dependencyUnresolved.Flags, viewModelUnresolvedDependency.Flags);
            Assert.Equal(dependencyUnresolved.Id, viewModelUnresolvedDependency.FilePath);
            Assert.Equal(dependencyUnresolved.SchemaName, viewModelUnresolvedDependency.SchemaName);
            Assert.Equal(dependencyUnresolved.SchemaItemType, viewModelUnresolvedDependency.SchemaItemType);
            Assert.Equal(dependencyUnresolved.Priority, viewModelUnresolvedDependency.Priority);
            Assert.Equal(iconSet.UnresolvedIcon, viewModelUnresolvedDependency.Icon);
            Assert.Equal(iconSet.UnresolvedExpandedIcon, viewModelUnresolvedDependency.ExpandedIcon);
        }
Exemple #11
0
        public void ToViewModel()
        {
            var iconSet = new DependencyIconSet(
                KnownMonikers.Uninstall,
                KnownMonikers.AbsolutePosition,
                KnownMonikers.AboutBox,
                KnownMonikers.Abbreviation);

            var dependencyResolved = new TestDependency
            {
                ProviderType   = "Yyy",
                Id             = "tfm1\\yyy\\dependencyExisting",
                Name           = "dependencyExisting",
                Caption        = "DependencyExisting",
                SchemaName     = "MySchema",
                SchemaItemType = "MySchemaItemType",
                Priority       = 1,
                Resolved       = true,
                IconSet        = iconSet
            };

            var dependencyUnresolved = new TestDependency
            {
                ProviderType   = "Yyy",
                Id             = "tfm1\\yyy\\dependencyExisting",
                Name           = "dependencyExisting",
                Caption        = "DependencyExisting",
                SchemaName     = "MySchema",
                SchemaItemType = "MySchemaItemType",
                Priority       = 1,
                Resolved       = false,
                IconSet        = iconSet
            };

            var mockSnapshot = ITargetedDependenciesSnapshotFactory.ImplementMock(checkForUnresolvedDependencies: false).Object;
            var mockSnapshotUnresolvedDependency = ITargetedDependenciesSnapshotFactory.ImplementMock(checkForUnresolvedDependencies: true).Object;

            var viewModelResolved = dependencyResolved.ToViewModel(mockSnapshot);

            Assert.Equal(dependencyResolved.Caption, viewModelResolved.Caption);
            Assert.Equal(dependencyResolved.Flags, viewModelResolved.Flags);
            Assert.Equal(dependencyResolved.Id, viewModelResolved.FilePath);
            Assert.Equal(dependencyResolved.SchemaName, viewModelResolved.SchemaName);
            Assert.Equal(dependencyResolved.SchemaItemType, viewModelResolved.SchemaItemType);
            Assert.Equal(dependencyResolved.Priority, viewModelResolved.Priority);
            Assert.Equal(iconSet.Icon, viewModelResolved.Icon);
            Assert.Equal(iconSet.ExpandedIcon, viewModelResolved.ExpandedIcon);

            var viewModelUnresolved = dependencyUnresolved.ToViewModel(mockSnapshot);

            Assert.Equal(dependencyUnresolved.Caption, viewModelUnresolved.Caption);
            Assert.Equal(dependencyUnresolved.Flags, viewModelUnresolved.Flags);
            Assert.Equal(dependencyUnresolved.Id, viewModelUnresolved.FilePath);
            Assert.Equal(dependencyUnresolved.SchemaName, viewModelUnresolved.SchemaName);
            Assert.Equal(dependencyUnresolved.SchemaItemType, viewModelUnresolved.SchemaItemType);
            Assert.Equal(dependencyUnresolved.Priority, viewModelUnresolved.Priority);
            Assert.Equal(iconSet.UnresolvedIcon, viewModelUnresolved.Icon);
            Assert.Equal(iconSet.UnresolvedExpandedIcon, viewModelUnresolved.ExpandedIcon);

            var viewModelUnresolvedDependency = dependencyResolved.ToViewModel(mockSnapshotUnresolvedDependency);

            Assert.Equal(dependencyUnresolved.Caption, viewModelUnresolvedDependency.Caption);
            Assert.Equal(dependencyUnresolved.Flags, viewModelUnresolvedDependency.Flags);
            Assert.Equal(dependencyUnresolved.Id, viewModelUnresolvedDependency.FilePath);
            Assert.Equal(dependencyUnresolved.SchemaName, viewModelUnresolvedDependency.SchemaName);
            Assert.Equal(dependencyUnresolved.SchemaItemType, viewModelUnresolvedDependency.SchemaItemType);
            Assert.Equal(dependencyUnresolved.Priority, viewModelUnresolvedDependency.Priority);
            Assert.Equal(iconSet.UnresolvedIcon, viewModelUnresolvedDependency.Icon);
            Assert.Equal(iconSet.UnresolvedExpandedIcon, viewModelUnresolvedDependency.ExpandedIcon);
        }
Exemple #12
0
        public static Mock <IDependency> Implement(string providerType                 = null,
                                                   string id                           = null,
                                                   string originalItemSpec             = null,
                                                   string path                         = null,
                                                   string fullPath                     = null,
                                                   string name                         = null,
                                                   string caption                      = null,
                                                   string alias                        = null,
                                                   IEnumerable <string> dependencyIDs  = null,
                                                   bool?resolved                       = null,
                                                   bool?topLevel                       = null,
                                                   bool?isImplicit                     = null,
                                                   ProjectTreeFlags?flags              = null,
                                                   string setPropertiesCaption         = null,
                                                   bool?setPropertiesResolved          = null,
                                                   ProjectTreeFlags?setPropertiesFlags = null,
                                                   bool?setPropertiesImplicit          = null,
                                                   IDependency setPropertiesReturn     = null,
                                                   bool?equals                         = null,
                                                   ImmutableArray <string> setPropertiesDependencyIDs = default,
                                                   string setPropertiesSchemaName         = null,
                                                   ITargetFramework targetFramework       = null,
                                                   DependencyIconSet iconSet              = null,
                                                   DependencyIconSet setPropertiesIconSet = null,
                                                   MockBehavior mockBehavior              = MockBehavior.Strict)
        {
            var mock = new Mock <IDependency>(mockBehavior);

            if (providerType != null)
            {
                mock.Setup(x => x.ProviderType).Returns(providerType);
            }

            if (id != null)
            {
                mock.Setup(x => x.Id).Returns(id);
            }

            if (originalItemSpec != null)
            {
                mock.Setup(x => x.OriginalItemSpec).Returns(originalItemSpec);
            }

            if (fullPath != null)
            {
                mock.Setup(x => x.FullPath).Returns(fullPath);
            }

            if (path != null)
            {
                mock.Setup(x => x.Path).Returns(path);
            }

            if (name != null)
            {
                mock.Setup(x => x.Name).Returns(name);
            }

            if (caption != null)
            {
                mock.Setup(x => x.Caption).Returns(caption);
            }

            if (alias != null)
            {
                mock.Setup(x => x.Alias).Returns(alias);
            }

            if (dependencyIDs != null)
            {
                mock.Setup(x => x.DependencyIDs).Returns(ImmutableArray.CreateRange(dependencyIDs));
            }

            if (resolved.HasValue)
            {
                mock.Setup(x => x.Resolved).Returns(resolved.Value);
            }

            if (topLevel.HasValue)
            {
                mock.Setup(x => x.TopLevel).Returns(topLevel.Value);
            }

            if (isImplicit.HasValue)
            {
                mock.Setup(x => x.Implicit).Returns(isImplicit.Value);
            }

            if (flags.HasValue)
            {
                mock.Setup(x => x.Flags).Returns(flags.Value);
            }

            if (targetFramework != null)
            {
                mock.Setup(x => x.TargetFramework).Returns(targetFramework);
            }

            if (iconSet != null)
            {
                mock.Setup(x => x.IconSet).Returns(iconSet);
            }

            if (setPropertiesCaption != null ||
                !setPropertiesDependencyIDs.IsDefault ||
                setPropertiesResolved != null ||
                setPropertiesFlags != null ||
                setPropertiesImplicit != null ||
                setPropertiesIconSet != null)
            {
                mock.Setup(x => x.SetProperties(
                               setPropertiesCaption,
                               setPropertiesResolved,
                               setPropertiesFlags,
                               setPropertiesSchemaName,
                               setPropertiesDependencyIDs,
                               setPropertiesIconSet,
                               setPropertiesImplicit))
                .Returns(setPropertiesReturn ?? mock.Object);
            }

            if (equals == true)
            {
                mock.Setup(x => x.Equals(It.IsAny <IDependency>())).Returns(true);
            }

            return(mock);
        }
        public void ToViewModel()
        {
            var iconSet = new DependencyIconSet(
                KnownMonikers.Uninstall,
                KnownMonikers.AbsolutePosition,
                KnownMonikers.AboutBox,
                KnownMonikers.Abbreviation);

            // This is a resolved dependency
            var dependencyResolved = new TestDependency
            {
                ProviderType   = "Yyy",
                Id             = "tfm1\\yyy\\dependencyResolved",
                Name           = "dependencyResolved",
                Caption        = "DependencyResolved",
                SchemaName     = "MySchema",
                SchemaItemType = "MySchemaItemType",
                Priority       = 1,
                Resolved       = true,
                TopLevel       = true,
                IconSet        = iconSet
            };

            // This is an unresolved dependency
            var dependencyUnresolved = new TestDependency
            {
                ProviderType   = "Yyy",
                Id             = "tfm1\\yyy\\dependencyUnresolved",
                Name           = "dependencyUnresolved",
                Caption        = "DependencyUnresolved",
                SchemaName     = "MySchema",
                SchemaItemType = "MySchemaItemType",
                Priority       = 1,
                Resolved       = false,
                TopLevel       = true,
                IconSet        = iconSet
            };

            // This is a resolved dependency with an unresolved child dependency
            var dependencyUnresolvedChild = new TestDependency
            {
                ProviderType   = "Yyy",
                Id             = "tfm1\\yyy\\dependencyUnresolvedChild",
                Name           = "dependencyUnresolvedChild",
                Caption        = "DependencyUnresolvedChild",
                SchemaName     = "MySchema",
                SchemaItemType = "MySchemaItemType",
                Priority       = 1,
                Resolved       = true,
                TopLevel       = true,
                IconSet        = iconSet,
                DependencyIDs  = ImmutableArray.Create(dependencyUnresolved.Id)
            };

            var snapshotResolved        = TargetedDependenciesSnapshotFactory.ImplementFromDependencies(new[] { dependencyResolved });
            var snapshotUnresolved      = TargetedDependenciesSnapshotFactory.ImplementFromDependencies(new[] { dependencyUnresolved });
            var snapshotUnresolvedChild = TargetedDependenciesSnapshotFactory.ImplementFromDependencies(new[] { dependencyUnresolved, dependencyUnresolvedChild });

            Assert.False(snapshotResolved.ShouldAppearUnresolved(dependencyResolved));
            Assert.True(snapshotUnresolved.ShouldAppearUnresolved(dependencyUnresolved));
            Assert.True(snapshotUnresolvedChild.ShouldAppearUnresolved(dependencyUnresolvedChild));

            var viewModelResolved = dependencyResolved.ToViewModel(snapshotResolved);

            Assert.Equal(dependencyResolved.Caption, viewModelResolved.Caption);
            Assert.Equal(dependencyResolved.Flags, viewModelResolved.Flags);
            Assert.Equal(dependencyResolved.Id, viewModelResolved.FilePath);
            Assert.Equal(dependencyResolved.SchemaName, viewModelResolved.SchemaName);
            Assert.Equal(dependencyResolved.SchemaItemType, viewModelResolved.SchemaItemType);
            Assert.Equal(dependencyResolved.Priority, viewModelResolved.Priority);
            Assert.Equal(iconSet.Icon, viewModelResolved.Icon);
            Assert.Equal(iconSet.ExpandedIcon, viewModelResolved.ExpandedIcon);

            var viewModelUnresolved = dependencyUnresolved.ToViewModel(snapshotResolved);

            Assert.Equal(dependencyUnresolved.Caption, viewModelUnresolved.Caption);
            Assert.Equal(dependencyUnresolved.Flags, viewModelUnresolved.Flags);
            Assert.Equal(dependencyUnresolved.Id, viewModelUnresolved.FilePath);
            Assert.Equal(dependencyUnresolved.SchemaName, viewModelUnresolved.SchemaName);
            Assert.Equal(dependencyUnresolved.SchemaItemType, viewModelUnresolved.SchemaItemType);
            Assert.Equal(dependencyUnresolved.Priority, viewModelUnresolved.Priority);
            Assert.Equal(iconSet.UnresolvedIcon, viewModelUnresolved.Icon);
            Assert.Equal(iconSet.UnresolvedExpandedIcon, viewModelUnresolved.ExpandedIcon);

            var viewModelUnresolvedChild = dependencyUnresolvedChild.ToViewModel(snapshotUnresolvedChild);

            Assert.Equal(dependencyUnresolvedChild.Caption, viewModelUnresolvedChild.Caption);
            Assert.Equal(dependencyUnresolvedChild.Flags, viewModelUnresolvedChild.Flags);
            Assert.Equal(dependencyUnresolvedChild.Id, viewModelUnresolvedChild.FilePath);
            Assert.Equal(dependencyUnresolvedChild.SchemaName, viewModelUnresolvedChild.SchemaName);
            Assert.Equal(dependencyUnresolvedChild.SchemaItemType, viewModelUnresolvedChild.SchemaItemType);
            Assert.Equal(dependencyUnresolvedChild.Priority, viewModelUnresolvedChild.Priority);
            Assert.Equal(iconSet.UnresolvedIcon, viewModelUnresolvedChild.Icon);
            Assert.Equal(iconSet.UnresolvedExpandedIcon, viewModelUnresolvedChild.ExpandedIcon);
        }