コード例 #1
0
        public void SearchTree_InternationalSources_MatchesWithOne(string packagePatterns, string term)
        {
            // Arrange
            var        configuration = PackageSourceMappingUtility.GetpackageSourceMapping(packagePatterns);
            SearchTree searchTree    = new SearchTree(configuration);

            // Act & Assert
            IReadOnlyList <string> configuredSources = searchTree.GetConfiguredPackageSources(term);

            Assert.Equal(1, configuredSources.Count);
            Assert.True(term.Trim().StartsWith(configuredSources[0], StringComparison.OrdinalIgnoreCase));
        }
コード例 #2
0
        public void SearchTree_WithMultipleSources_Match(string packagePatterns, string term)
        {
            // Arrange
            var        configuration = PackageSourceMappingUtility.GetpackageSourceMapping(packagePatterns);
            SearchTree searchTree    = new SearchTree(configuration);

            // Act & Assert
            IReadOnlyList <string> configuredSources = searchTree.GetConfiguredPackageSources(term);

            Assert.Equal(1, configuredSources.Count);
            Assert.True(configuredSources[0].StartsWith(term.Trim().Substring(0, 5)));
        }
コード例 #3
0
        public void SearchTree_WithOneSource_Match(string packagePatterns, string term)
        {
            // Arrange
            var        configuration = PackageSourceMappingUtility.GetpackageSourceMapping(packagePatterns);
            SearchTree searchTree    = new SearchTree(configuration);

            // Act & Assert
            configuration.IsEnabled.Should().BeTrue();
            IReadOnlyList <string> configuredSources = searchTree.GetConfiguredPackageSources(term);

            Assert.Equal(1, configuredSources.Count);
            Assert.Equal(configuration.Patterns.Keys.First().Trim(), configuredSources[0]);
        }
コード例 #4
0
        public void SearchTree_InvalidSearchInput_Throws(string packagePatterns, string term)
        {
            // Arrange
            var configuration = PackageSourceMappingUtility.GetpackageSourceMapping(packagePatterns);

            // Act & Assert
            configuration.IsEnabled.Should().BeTrue();

            var exception = Assert.Throws <ArgumentException>(
                () => configuration.GetConfiguredPackageSources(term));

            Assert.Equal("Argument cannot be null, empty, or whitespace only." + Environment.NewLine + "Parameter name: term", exception.Message);
        }
コード例 #5
0
        public void RestoreTelemetryService_EmitRestoreEvent_IntervalsAreCaptured(string _packageSourceMapping)
        {
            // Arrange
            var            first              = "first";
            var            second             = "second";
            var            telemetrySession   = new Mock <ITelemetrySession>();
            TelemetryEvent lastTelemetryEvent = null;

            telemetrySession
            .Setup(x => x.PostEvent(It.IsAny <TelemetryEvent>()))
            .Callback <TelemetryEvent>(x => lastTelemetryEvent = x);
            var tracker = new IntervalTracker("Activity");

            using (tracker.Start(first))
            {
            }

            using (tracker.Start(second))
            {
            }

            var  operationId                   = Guid.NewGuid().ToString();
            var  packageSourceMapping          = string.IsNullOrEmpty(_packageSourceMapping) ? null : PackageSourceMappingUtility.GetpackageSourceMapping(_packageSourceMapping);
            bool isPackageSourceMappingEnabled = packageSourceMapping?.IsEnabled ?? false;

            var restoreTelemetryData = new RestoreTelemetryEvent(
                operationId,
                projectIds: new[] { Guid.NewGuid().ToString() },
                forceRestore: false,
                source: RestoreOperationSource.OnBuild,
                startTime: DateTimeOffset.Now.AddSeconds(-3),
                status: NuGetOperationStatus.Succeeded,
                packageCount: 1,
                noOpProjectsCount: 0,
                upToDateProjectsCount: 0,
                unknownProjectsCount: 0,
                projectJsonProjectsCount: 0,
                packageReferenceProjectsCount: 1,
                legacyPackageReferenceProjectsCount: 0,
                cpsPackageReferenceProjectsCount: 1,
                dotnetCliToolProjectsCount: 0,
                packagesConfigProjectsCount: 0,
                endTime: DateTimeOffset.Now,
                duration: 2.10,
                additionalTrackingData: new Dictionary <string, object>()
            {
                { nameof(RestoreTelemetryEvent.IsSolutionLoadRestore), true }
            },
                tracker,
                isPackageSourceMappingEnabled: isPackageSourceMappingEnabled);
            var service = new NuGetVSTelemetryService(telemetrySession.Object);

            // Act
            service.EmitTelemetryEvent(restoreTelemetryData);

            // Assert

            Assert.NotNull(lastTelemetryEvent);
            Assert.Equal(RestoreTelemetryEvent.RestoreActionEventName, lastTelemetryEvent.Name);
            Assert.Equal(23, lastTelemetryEvent.Count);

            Assert.Equal(restoreTelemetryData.OperationSource.ToString(), lastTelemetryEvent["OperationSource"].ToString());

            Assert.Equal(restoreTelemetryData.NoOpProjectsCount, (int)lastTelemetryEvent["NoOpProjectsCount"]);
            Assert.Equal(restoreTelemetryData[first], lastTelemetryEvent[first]);
            Assert.Equal(restoreTelemetryData[second], lastTelemetryEvent[second]);
        }
コード例 #6
0
 private SearchTree GetSearchTree(string packagePatterns)
 {
     return(new SearchTree(PackageSourceMappingUtility.GetpackageSourceMapping(packagePatterns)));
 }