public void Implicit()
        {
            var properties = ImmutableStringDictionary <string> .EmptyOrdinal.Add("myProp", "myVal");

            var model = new ProjectDependencyModel(
                "c:\\myPath.dll",
                "myOriginalItemSpec",
                isResolved: true,
                isImplicit: true,
                properties: properties);

            Assert.Equal(ProjectRuleHandler.ProviderTypeString, model.ProviderType);
            Assert.Equal("c:\\myPath.dll", model.Path);
            Assert.Equal("myOriginalItemSpec", model.OriginalItemSpec);
            Assert.Equal("myPath", model.Caption);
            Assert.Equal(ResolvedProjectReference.SchemaName, model.SchemaName);
            Assert.True(model.Resolved);
            Assert.True(model.Implicit);
            Assert.Equal(properties, model.Properties);
            Assert.Equal(ProjectReference.PrimaryDataSourceItemType, model.SchemaItemType);
            Assert.Equal(ManagedImageMonikers.ApplicationPrivate, model.Icon);
            Assert.Equal(ManagedImageMonikers.ApplicationPrivate, model.ExpandedIcon);
            Assert.Equal(ManagedImageMonikers.ApplicationWarning, model.UnresolvedIcon);
            Assert.Equal(ManagedImageMonikers.ApplicationWarning, model.UnresolvedExpandedIcon);
            Assert.Equal(
                DependencyTreeFlags.ProjectDependency +
                DependencyTreeFlags.GenericResolvedDependencyFlags -
                DependencyTreeFlags.SupportsRemove +
                ProjectTreeFlags.Create("$ID:myPath"),
                model.Flags);
        }
        public void Unresolved()
        {
            var properties = ImmutableStringDictionary <string> .EmptyOrdinal.Add("myProp", "myVal");

            var model = new ProjectDependencyModel(
                "c:\\ResolvedPath\\MyProject.dll",
                "Project\\MyProject.csproj",
                isResolved: false,
                isImplicit: false,
                properties: properties);

            Assert.Equal(ProjectRuleHandler.ProviderTypeString, model.ProviderType);
            Assert.Equal("c:\\ResolvedPath\\MyProject.dll", model.Path);
            Assert.Equal("Project\\MyProject.csproj", model.OriginalItemSpec);
            Assert.Equal("MyProject", model.Caption);
            Assert.Equal(ProjectReference.SchemaName, model.SchemaName);
            Assert.False(model.Resolved);
            Assert.False(model.Implicit);
            Assert.Equal(properties, model.Properties);
            Assert.Equal(ProjectReference.PrimaryDataSourceItemType, model.SchemaItemType);
            Assert.Equal(KnownMonikers.Application, model.Icon);
            Assert.Equal(KnownMonikers.Application, model.ExpandedIcon);
            Assert.Equal(KnownMonikers.ApplicationWarning, model.UnresolvedIcon);
            Assert.Equal(KnownMonikers.ApplicationWarning, model.UnresolvedExpandedIcon);
            Assert.Equal(
                DependencyTreeFlags.ProjectDependency +
                DependencyTreeFlags.SupportsBrowse +
                DependencyTreeFlags.UnresolvedDependencyFlags +
                ProjectTreeFlags.Create("$ID:MyProject"),
                model.Flags);
        }