public void BeforeAddOrUpdate_WhenSdk_ShouldFindMatchingPackageAndSetProperties() { var targetFramework = new TargetFramework("tfm"); const string sdkName = "sdkName"; var sdkDependency = new TestDependency { Id = "dependency1Id", Name = sdkName, Resolved = false, Flags = DependencyTreeFlags.SdkDependency }; var packageDependency = new TestDependency { Id = Dependency.GetID(targetFramework, PackageRuleHandler.ProviderTypeString, sdkName), Resolved = true, Flags = DependencyTreeFlags.PackageDependency }; var builder = new IDependency[] { sdkDependency, packageDependency }.ToDictionary(d => d.Id); var context = new AddDependencyContext(builder); var filter = new SdkAndPackagesDependenciesSnapshotFilter(); filter.BeforeAddOrUpdate( targetFramework, sdkDependency, null !, null, context); var acceptedDependency = context.GetResult(filter); // Dependency should be accepted, but converted to resolved state Assert.NotNull(acceptedDependency); Assert.NotSame(sdkDependency, acceptedDependency); DependencyAssert.Equal( sdkDependency.ToResolved( schemaName: ResolvedSdkReference.SchemaName), acceptedDependency !); // No changes other than the filtered dependency Assert.False(context.Changed); }
public void BeforeAddOrUpdate_WhenPackage_ShouldFindMatchingSdkAndSetProperties() { var targetFramework = new TargetFramework("tfm"); const string packageName = "packageName"; var sdkDependency = new TestDependency { Id = Dependency.GetID(targetFramework, SdkRuleHandler.ProviderTypeString, packageName), Resolved = true, Flags = DependencyTreeFlags.PackageDependency.Union(DependencyTreeFlags.Unresolved) // to see if unresolved is fixed }; var packageDependency = new TestDependency { Id = "packageId", Name = packageName, Flags = DependencyTreeFlags.PackageDependency, Resolved = true }; var builder = new IDependency[] { packageDependency, sdkDependency }.ToDictionary(d => d.Id); var context = new AddDependencyContext(builder); var filter = new SdkAndPackagesDependenciesSnapshotFilter(); filter.BeforeAddOrUpdate( targetFramework, packageDependency, null !, null, context); // Accepts unchanged dependency Assert.Same(packageDependency, context.GetResult(filter)); // Other changes made Assert.True(context.Changed); Assert.True(context.TryGetDependency(sdkDependency.Id, out IDependency sdkDependencyAfter)); DependencyAssert.Equal( sdkDependency.ToResolved( schemaName: ResolvedSdkReference.SchemaName), sdkDependencyAfter); }
public void BeforeAddOrUpdate_WhenPackage_ShouldFindMatchingSdkAndSetProperties() { const string packageName = "packageName"; var sdkDependency = new TestDependency { Id = packageName, ProviderType = SdkRuleHandler.ProviderTypeString, Resolved = true, Flags = DependencyTreeFlags.PackageDependency.Union(ProjectTreeFlags.BrokenReference) // to see if unresolved is fixed }; var packageDependency = new TestDependency { Id = packageName, ProviderType = PackageRuleHandler.ProviderTypeString, Flags = DependencyTreeFlags.PackageDependency, Resolved = true }; var builder = new IDependency[] { packageDependency, sdkDependency }.ToDictionary(IDependencyExtensions.GetDependencyId); var context = new AddDependencyContext(builder); var filter = new SdkAndPackagesDependenciesSnapshotFilter(); filter.BeforeAddOrUpdate( packageDependency, null !, null, context); // Accepts unchanged dependency Assert.Same(packageDependency, context.GetResult(filter)); // Other changes made Assert.True(context.Changed); Assert.True(context.TryGetDependency(sdkDependency.GetDependencyId(), out IDependency sdkDependencyAfter)); DependencyAssert.Equal( sdkDependency.ToResolved(schemaName: ResolvedSdkReference.SchemaName, diagnosticLevel: DiagnosticLevel.None), sdkDependencyAfter); }
public void BeforeAddOrUpdate_WhenSdk_ShouldFindMatchingPackageAndSetProperties() { const string sdkName = "sdkName"; var sdkDependency = new TestDependency { Id = sdkName, ProviderType = SdkRuleHandler.ProviderTypeString, Resolved = false, Flags = DependencyTreeFlags.SdkDependency }; var packageDependency = new TestDependency { Id = sdkName, ProviderType = PackageRuleHandler.ProviderTypeString, Resolved = true, Flags = DependencyTreeFlags.PackageDependency }; var builder = new IDependency[] { sdkDependency, packageDependency }.ToDictionary(IDependencyExtensions.GetDependencyId); var context = new AddDependencyContext(builder); var filter = new SdkAndPackagesDependenciesSnapshotFilter(); filter.BeforeAddOrUpdate( sdkDependency, context); var acceptedDependency = context.GetResult(filter); // Dependency should be accepted, but converted to resolved state Assert.NotNull(acceptedDependency); Assert.NotSame(sdkDependency, acceptedDependency); DependencyAssert.Equal( sdkDependency.ToResolved(schemaName: ResolvedSdkReference.SchemaName, diagnosticLevel: DiagnosticLevel.None), acceptedDependency !); // No changes other than the filtered dependency Assert.False(context.Changed); }