예제 #1
0
        public async Task GetMessageAsync_WithPackageSourceMappingAndProvidersNotConsidered_NU1101IncludesSourceMappingDetails()
        {
            var  libraryId = "x";
            var  range     = new LibraryRange(libraryId, LibraryDependencyTarget.Package);
            bool isPackageSourceMappingEnabled = true;
            var  provider1        = GetProvider("http://nuget.org/a/", new List <NuGetVersion>());
            var  provider2        = GetProvider("http://nuget.org/b/", new List <NuGetVersion>());
            var  provider3        = GetProvider("http://nuget.org/c/", new List <NuGetVersion>());
            var  enabledProviders = new List <IRemoteDependencyProvider>()
            {
                provider1.Object
            };
            var allProviders = new List <IRemoteDependencyProvider>()
            {
                provider3.Object, provider1.Object, provider2.Object
            };
            var targetGraphName = "targetGraphName";

            var message = await UnresolvedMessages.GetMessageAsync(targetGraphName, range, enabledProviders, isPackageSourceMappingEnabled, allProviders, new Mock <SourceCacheContext>().Object, new TestLogger(), CancellationToken.None);

            message.Code.Should().Be(NuGetLogCode.NU1101);
            message.LibraryId.Should().Be(libraryId);
            message.Message.Should().Be($"Unable to find package x. No packages exist with this id in source(s): http://nuget.org/a/. PackageSourceMapping is enabled, the following source(s) were not considered: http://nuget.org/b/, http://nuget.org/c/.");
            message.TargetGraphs.Should().BeEquivalentTo(new[] { targetGraphName });
            message.Level.Should().Be(LogLevel.Error);
        }
        public async Task GivenAnUnresolvedPackageWithNoVersionsAndMultipleSourcesVerifyMessage()
        {
            var range    = new LibraryRange("x", LibraryDependencyTarget.Package);
            var versions = new List <NuGetVersion>();

            var token             = CancellationToken.None;
            var logger            = new TestLogger();
            var provider1         = GetProvider("http://nuget.org/a/", versions);
            var provider2         = GetProvider("http://nuget.org/b/", versions);
            var cacheContext      = new Mock <SourceCacheContext>();
            var remoteWalkContext = new RemoteWalkContext(cacheContext.Object, NullLogger.Instance);

            remoteWalkContext.RemoteLibraryProviders.Add(provider1.Object);
            remoteWalkContext.RemoteLibraryProviders.Add(provider2.Object);
            var graph = new Mock <IRestoreTargetGraph>();

            graph.SetupGet(e => e.TargetGraphName).Returns("abc");

            var message = await UnresolvedMessages.GetMessageAsync(graph.Object, range, remoteWalkContext, logger, token);

            message.Code.Should().Be(NuGetLogCode.NU1101);
            message.LibraryId.Should().Be("x");
            message.Message.Should().Be("Unable to find package x. No packages exist with this id in source(s): http://nuget.org/a/, http://nuget.org/b/");
            message.TargetGraphs.ShouldBeEquivalentTo(new[] { "abc" });
            message.Level.Should().Be(LogLevel.Error);
        }
예제 #3
0
        private static async Task <RestoreLogMessage> GetMessage(LibraryRange range, List <NuGetVersion> versions)
        {
            var token                  = CancellationToken.None;
            var logger                 = new TestLogger();
            var provider               = GetProvider("http://nuget.org/a/", versions);
            var cacheContext           = new Mock <SourceCacheContext>();
            var remoteLibraryProviders = new List <IRemoteDependencyProvider>()
            {
                provider.Object
            };
            var targetGraphName = "abc";

            var message = await UnresolvedMessages.GetMessageAsync(targetGraphName, range, remoteLibraryProviders, false, remoteLibraryProviders, cacheContext.Object, logger, token);

            return(message);
        }
        private static async Task <RestoreLogMessage> GetMessage(LibraryRange range, List <NuGetVersion> versions)
        {
            var token             = CancellationToken.None;
            var logger            = new TestLogger();
            var provider          = GetProvider("http://nuget.org/a/", versions);
            var cacheContext      = new Mock <SourceCacheContext>();
            var remoteWalkContext = new RemoteWalkContext(cacheContext.Object, NullLogger.Instance);

            remoteWalkContext.RemoteLibraryProviders.Add(provider.Object);
            var graph = new Mock <IRestoreTargetGraph>();

            graph.SetupGet(e => e.TargetGraphName).Returns("abc");

            var message = await UnresolvedMessages.GetMessageAsync(graph.Object, range, remoteWalkContext, logger, token);

            return(message);
        }
예제 #5
0
        public async Task GivenAnUnresolvedPackageWithNoVersionsAndMultipleSourcesVerifyMessage()
        {
            var range    = new LibraryRange("x", LibraryDependencyTarget.Package);
            var versions = new List <NuGetVersion>();

            var token                  = CancellationToken.None;
            var logger                 = new TestLogger();
            var provider1              = GetProvider("http://nuget.org/a/", versions);
            var provider2              = GetProvider("http://nuget.org/b/", versions);
            var cacheContext           = new Mock <SourceCacheContext>();
            var remoteLibraryProviders = new List <IRemoteDependencyProvider>()
            {
                provider1.Object, provider2.Object
            };
            var targetGraphName = "abc";

            var message = await UnresolvedMessages.GetMessageAsync(targetGraphName, range, remoteLibraryProviders, cacheContext.Object, logger, token);

            message.Code.Should().Be(NuGetLogCode.NU1101);
            message.LibraryId.Should().Be("x");
            message.Message.Should().Be("Unable to find package x. No packages exist with this id in source(s): http://nuget.org/a/, http://nuget.org/b/");
            message.TargetGraphs.Should().BeEquivalentTo(new[] { targetGraphName });
            message.Level.Should().Be(LogLevel.Error);
        }
예제 #6
0
        public async Task GetMessageAsync_WithPackageSourceMappingAndProvidersNotConsidered_NU1102IncludesSourceMappingDetails()
        {
            var  libraryId = "x";
            var  range     = new LibraryRange(libraryId, VersionRange.Parse("6.0.0"), LibraryDependencyTarget.Package);
            bool isPackageSourceMappingEnabled = true;
            var  provider1 = GetProvider("http://nuget.org/a/", new List <NuGetVersion>()
            {
                NuGetVersion.Parse("6.0.0")
            });
            var provider2        = GetProvider("http://nuget.org/b/", new List <NuGetVersion>());
            var provider3        = GetProvider("http://nuget.org/c/", new List <NuGetVersion>());
            var enabledProviders = new List <IRemoteDependencyProvider>()
            {
                provider1.Object
            };
            var allProviders = new List <IRemoteDependencyProvider>()
            {
                provider3.Object, provider1.Object, provider2.Object
            };
            var targetGraphName = "targetGraphName";

            var message = await UnresolvedMessages.GetMessageAsync(targetGraphName, range, enabledProviders, isPackageSourceMappingEnabled, allProviders, new Mock <SourceCacheContext>().Object, new TestLogger(), CancellationToken.None);

            message.Code.Should().Be(NuGetLogCode.NU1102);
            message.LibraryId.Should().Be(libraryId);
            message.Message.Should().Be($"Unable to find package x with version (>= 6.0.0)" +
                                        Environment.NewLine +
                                        "  - Found 1 version(s) in http://nuget.org/a/ [ Nearest version: 6.0.0 ]" +
                                        Environment.NewLine +
                                        "  - Versions from http://nuget.org/b/ were not considered" +
                                        Environment.NewLine +
                                        "  - Versions from http://nuget.org/c/ were not considered"
                                        );
            message.TargetGraphs.Should().BeEquivalentTo(new[] { targetGraphName });
            message.Level.Should().Be(LogLevel.Error);
        }