public void DependenciesViewModelFactoryTests_CreateRootViewModel() { var project = UnconfiguredProjectFactory.Create(); var dependency = IDependencyFactory.FromJson(@" { ""ProviderType"": ""MyProvider1"", ""Id"": ""ZzzDependencyRoot"", ""Name"":""ZzzDependencyRoot"", ""Caption"":""ZzzDependencyRoot"" }", icon: KnownMonikers.AboutBox); var subTreeProvider1 = IProjectDependenciesSubTreeProviderFactory.Implement( providerType: "MyProvider1", createRootDependencyNode: dependency); var subTreeProvider2 = IProjectDependenciesSubTreeProviderFactory.Implement( providerType: "MyProvider2"); var factory = new TestableDependenciesViewModelFactory(project, new[] { subTreeProvider1, subTreeProvider2 }); var result = factory.CreateRootViewModel("MyProvider1", hasUnresolvedDependency: false); Assert.NotNull(result); Assert.Equal("ZzzDependencyRoot", result.Caption); Assert.Equal(KnownMonikers.AboutBox, result.Icon); }
public void CreateRootViewModel() { var project = UnconfiguredProjectFactory.Create(); var dependencyModel = new TestDependencyModel { ProviderType = "MyProvider1", Id = "ZzzDependencyRoot", Name = "ZzzDependencyRoot", Caption = "ZzzDependencyRoot", Icon = KnownMonikers.AboutBox }; var subTreeProvider1 = IProjectDependenciesSubTreeProviderFactory.Implement( providerType: "MyProvider1", createRootDependencyNode: dependencyModel); var subTreeProvider2 = IProjectDependenciesSubTreeProviderFactory.Implement( providerType: "MyProvider2"); var factory = new TestableDependenciesViewModelFactory(project, new[] { subTreeProvider1, subTreeProvider2 }); var result = factory.CreateRootViewModel("MyProvider1", hasUnresolvedDependency: false); Assert.NotNull(result); Assert.Equal("ZzzDependencyRoot", result.Caption); Assert.Equal(KnownMonikers.AboutBox, result.Icon); }
public void CreateGroupNodeViewModel() { var project = UnconfiguredProjectFactory.Create(); var dependencyModel = new TestDependencyModel { ProviderType = "MyProvider1", Id = "ZzzDependencyRoot", OriginalItemSpec = "ZzzDependencyRoot", Caption = "ZzzDependencyRoot", Icon = KnownMonikers.AboutBox }; var subTreeProvider1 = IProjectDependenciesSubTreeProviderFactory.Implement( providerType: "MyProvider1", createRootDependencyNode: dependencyModel); var subTreeProvider2 = IProjectDependenciesSubTreeProviderFactory.Implement( providerType: "MyProvider2"); var factory = new TestableDependenciesViewModelFactory(project, new[] { subTreeProvider1, subTreeProvider2 }); var result = factory.CreateGroupNodeViewModel("MyProvider1", maximumDiagnosticLevel: DiagnosticLevel.None); Assert.NotNull(result); Assert.Equal("ZzzDependencyRoot", result !.Caption); Assert.Equal(KnownMonikers.AboutBox, result.Icon); }
public void BeforeAddOrUpdate_WhenNeedToApplyImplicit_ShouldSetProperties() { const string providerType = "providerType"; const string projectItemSpec = "projectItemSpec"; var implicitIcon = KnownMonikers.Abbreviation; var dependency = new TestDependency { Id = "dependency1", ProviderType = providerType, TopLevel = true, Implicit = false, Resolved = true, Flags = DependencyTreeFlags.GenericDependencyFlags, OriginalItemSpec = projectItemSpec, IconSet = new DependencyIconSet(KnownMonikers.Reference, KnownMonikers.Reference, KnownMonikers.Reference, KnownMonikers.Reference) }; var worldBuilder = new IDependency[] { dependency }.ToImmutableDictionary(d => d.Id).ToBuilder(); var context = new AddDependencyContext(worldBuilder); var filter = new ImplicitTopLevelDependenciesSnapshotFilter(); var subTreeProvider = IProjectDependenciesSubTreeProviderFactory.ImplementInternal( providerType: providerType, implicitIcon: implicitIcon); filter.BeforeAddOrUpdate( null, null, dependency, new Dictionary <string, IProjectDependenciesSubTreeProvider> { { providerType, subTreeProvider } }, ImmutableHashSet <string> .Empty, context); var acceptedDependency = context.GetResult(filter); // Returns changed dependency Assert.NotNull(acceptedDependency); Assert.NotSame(dependency, acceptedDependency); acceptedDependency.AssertEqualTo( new TestDependency { ClonePropertiesFrom = dependency, Implicit = true, IconSet = new DependencyIconSet( implicitIcon, implicitIcon, KnownMonikers.Reference, KnownMonikers.Reference) }); // No other changes made Assert.False(context.Changed); }
public void BeforeAddOrUpdate_WhenNeedToApplyImplicit_ShouldSetProperties() { const string providerType = "providerType"; const string projectItemSpec = "projectItemSpec"; var implicitIcon = KnownMonikers.Abbreviation; var dependency = new TestDependency { Id = "dependency1", ProviderType = providerType, Implicit = false, Resolved = true, Flags = DependencyTreeFlags.GenericResolvedDependencyFlags, OriginalItemSpec = projectItemSpec, IconSet = new DependencyIconSet(KnownMonikers.Reference, KnownMonikers.Reference, KnownMonikers.Reference, KnownMonikers.Reference) }; var dependencyById = new Dictionary <(string ProviderType, string ModelId), IDependency> { { (dependency.ProviderType, dependency.Id), dependency } }; var context = new AddDependencyContext(dependencyById); var filter = new ImplicitDependenciesSnapshotFilter(); var subTreeProvider = IProjectDependenciesSubTreeProviderFactory.ImplementInternal( providerType: providerType, implicitIcon: implicitIcon); filter.BeforeAddOrUpdate( dependency, new Dictionary <string, IProjectDependenciesSubTreeProvider> { { providerType, subTreeProvider } }, ImmutableHashSet <string> .Empty, context); var acceptedDependency = context.GetResult(filter); // Returns changed dependency Assert.NotNull(acceptedDependency); Assert.NotSame(dependency, acceptedDependency); DependencyAssert.Equal( new TestDependency { ClonePropertiesFrom = dependency, Implicit = true, IconSet = new DependencyIconSet( implicitIcon, implicitIcon, KnownMonikers.Reference, KnownMonikers.Reference), Flags = DependencyTreeFlags.GenericResolvedDependencyFlags.Except(DependencyTreeFlags.SupportsRemove) }, acceptedDependency !); // No other changes made Assert.False(context.Changed); }
public void CreateRootViewModelReturnsNullForUnknownProviderType() { var project = UnconfiguredProjectFactory.Create(); var subTreeProvider1 = IProjectDependenciesSubTreeProviderFactory.Implement(providerType: "MyProvider1"); var factory = new TestableDependenciesViewModelFactory(project, new[] { subTreeProvider1 }); var result = factory.CreateRootViewModel("UnknownProviderType", hasUnresolvedDependency: false); Assert.Null(result); }
public void CreateGroupNodeViewModel_ReturnsNullForUnknownProviderType() { var project = UnconfiguredProjectFactory.Create(); var subTreeProvider1 = IProjectDependenciesSubTreeProviderFactory.Implement(providerType: "MyProvider1"); var factory = new TestableDependenciesViewModelFactory(project, new[] { subTreeProvider1 }); var result = factory.CreateGroupNodeViewModel("UnknownProviderType", maximumDiagnosticLevel: DiagnosticLevel.None); Assert.Null(result); }
public void WhenNeedToApplyImplicit_ShouldSetProperties() { var dependency = IDependencyFactory.Implement( id: "mydependency2", providerType: "myProvider", topLevel: true, isImplicit: false, resolved: true, flags: DependencyTreeFlags.GenericDependencyFlags, originalItemSpec: "myprojectitem", setPropertiesImplicit: true, iconSet: new DependencyIconSet(KnownMonikers.Reference, KnownMonikers.Reference, KnownMonikers.Reference, KnownMonikers.Reference), setPropertiesIconSet: new DependencyIconSet(KnownMonikers.Abbreviation, KnownMonikers.Abbreviation, KnownMonikers.Reference, KnownMonikers.Reference)); var worldBuilder = new Dictionary <string, IDependency>() { { dependency.Object.Id, dependency.Object } }.ToImmutableDictionary().ToBuilder(); var subTreeProvider = IProjectDependenciesSubTreeProviderFactory.ImplementInternal( providerType: "myProvider", icon: KnownMonikers.Abbreviation); var filter = new ImplicitTopLevelDependenciesSnapshotFilter(); var resultDependency = filter.BeforeAdd( null, null, dependency.Object, worldBuilder, null, new Dictionary <string, IProjectDependenciesSubTreeProvider> { { subTreeProvider.ProviderType, subTreeProvider } }, new HashSet <string>(), out bool filterAnyChanges); Assert.Equal(dependency.Object.Id, resultDependency.Id); Assert.True(filterAnyChanges); dependency.VerifyAll(); }