private void VerifyTryGetNuGetVersionForSdk(string version, NuGetVersion expectedVersion, SdkResolverContextBase context = null) { var result = NuGetSdkResolver.TryGetNuGetVersionForSdk("foo", version, context, out var parsedVersion); if (expectedVersion != null) { result.Should().BeTrue(); parsedVersion.Should().NotBeNull(); parsedVersion.Should().Be(expectedVersion); } else { result.Should().BeFalse(); parsedVersion.Should().BeNull(); } }
public void Resolve_WhenPackageDoesNotExists_ReturnsFailedSdkResultAndLogsError() { using (var pathContext = new SimpleTestPathContext()) { var sdkReference = new SdkReference(PackageA, VersionOnePointZero, minimumVersion: null); var sdkResolverContext = new MockSdkResolverContext(pathContext.WorkingDirectory); var sdkResultFactory = new MockSdkResultFactory(); var sdkResolver = new NuGetSdkResolver(); MockSdkResult result = sdkResolver.Resolve(sdkReference, sdkResolverContext, sdkResultFactory) as MockSdkResult; result.Should().NotBeNull(); result.Success.Should().BeFalse(); result.Path.Should().BeNull(); result.Version.Should().BeNull(); result.Errors.Should().BeEquivalentTo(new[] { $"Unable to find package {sdkReference.Name}. No packages exist with this id in source(s): source" }); result.Warnings.Should().BeEmpty(); } }
public void Resolve_WhenPackageExists_ReturnsSucceededSdkResult() { using (var pathContext = new SimpleTestPathContext()) { var sdkReference = new SdkReference(PackageA, VersionOnePointZero, minimumVersion: null); var package = new SimpleTestPackageContext(sdkReference.Name, sdkReference.Version); package.AddFile("Sdk/Sdk.props", "<Project />"); package.AddFile("Sdk/Sdk.targets", "<Project />"); SimpleTestPackageUtility.CreateFolderFeedV3Async(pathContext.PackageSource, PackageSaveMode.Defaultv3, package).Wait(); var sdkResolverContext = new MockSdkResolverContext(pathContext.WorkingDirectory); var sdkResultFactory = new MockSdkResultFactory(); var sdkResolver = new NuGetSdkResolver(); MockSdkResult result = sdkResolver.Resolve(sdkReference, sdkResolverContext, sdkResultFactory) as MockSdkResult; result.Should().NotBeNull(); result.Success.Should().BeTrue(); result.Path.Should().Be(Path.Combine(pathContext.UserPackagesFolder, sdkReference.Name.ToLowerInvariant(), sdkReference.Version, "Sdk")); result.Version.Should().Be(sdkReference.Version); result.Errors.Should().BeEmpty(); result.Warnings.Should().BeEmpty(); } }
private void VerifyTryGetNuGetVersionForSdk(Dictionary <string, string> allVersions, string version, NuGetVersion expectedVersion, SdkResolverContext context) { var globalJsonReader = new MockGlobalJsonReader(allVersions); var sdkResolver = new NuGetSdkResolver(globalJsonReader); var result = sdkResolver.TryGetNuGetVersionForSdk(PackageA, version, context, out var parsedVersion); if (expectedVersion != null) { result.Should().BeTrue(); parsedVersion.Should().NotBeNull(); parsedVersion.Should().Be(expectedVersion); } else { result.Should().BeFalse(); parsedVersion.Should().BeNull(); } }
private void TryGetNuGetVersionNullVersionShouldNotLoadNuGetAssemblies() { // Keep a list of assemblies loaded before attempting to parse Assembly[] assembliesLoadedBeforeParsingVersion = AppDomain.CurrentDomain.GetAssemblies(); MockSdkResolverContext context = new MockSdkResolverContext("foo.proj"); object parsedVersion; // Since we pass a null version, we expect no NuGet assemblies to be loaded NuGetSdkResolver.TryGetNuGetVersionForSdk( id: "foo", version: null, context: context, parsedVersion: out parsedVersion); foreach (string newlyLoadedAssembly in AppDomain.CurrentDomain.GetAssemblies() .Except(assembliesLoadedBeforeParsingVersion) .Select(i => i.ManifestModule.Name)) { NuGetSdkResolverBase.NuGetAssemblies.ShouldNotContain(newlyLoadedAssembly); } }