public PackageManagerUIRefreshEvent(
     Guid parentId,
     bool isSolutionLevel,
     RefreshOperationSource refreshSource,
     RefreshOperationStatus refreshStatus,
     string tab,
     TimeSpan timeSinceLastRefresh) : base(EventName)
 {
     base["ParentId"]             = parentId.ToString();
     base["IsSolutionLevel"]      = isSolutionLevel;
     base["RefreshSource"]        = refreshSource;
     base["RefreshStatus"]        = refreshStatus;
     base["Tab"]                  = tab;
     base["TimeSinceLastRefresh"] = timeSinceLastRefresh.TotalMilliseconds;
 }
Exemplo n.º 2
0
        public PackageManagerUIRefreshEvent(
            Guid parentId,
            bool isSolutionLevel,
            RefreshOperationSource refreshSource,
            RefreshOperationStatus refreshStatus,
            string tab,
            bool isUIFiltering,
            TimeSpan timeSinceLastRefresh,
            double?duration) : base(EventName)
        {
            base["ParentId"]             = parentId.ToString();
            base["IsSolutionLevel"]      = isSolutionLevel;
            base["RefreshSource"]        = refreshSource;
            base["RefreshStatus"]        = refreshStatus;
            base["Tab"]                  = tab;
            base["IsUIFiltering"]        = isUIFiltering;
            base["TimeSinceLastRefresh"] = timeSinceLastRefresh.TotalMilliseconds;

            if (duration.HasValue)
            {
                base["Duration"] = duration;
            }
        }
        public void NuGetTelemetryService_EmitsPMUIRefreshEvent(RefreshOperationSource expectedRefreshSource, RefreshOperationStatus expectedRefreshStatus)
        {
            // Arrange
            var            telemetrySession   = new Mock <ITelemetrySession>();
            TelemetryEvent lastTelemetryEvent = null;

            telemetrySession
            .Setup(x => x.PostEvent(It.IsAny <TelemetryEvent>()))
            .Callback <TelemetryEvent>(x => lastTelemetryEvent = x);

            var expectedGuid                 = Guid.NewGuid();
            var expectedIsSolutionLevel      = true;
            var expectedTab                  = "All";
            var expectedTimeSinceLastRefresh = TimeSpan.FromSeconds(1);
            var refreshEvent                 = new PackageManagerUIRefreshEvent(expectedGuid, expectedIsSolutionLevel, expectedRefreshSource, expectedRefreshStatus, expectedTab, expectedTimeSinceLastRefresh);
            var target = new NuGetVSTelemetryService(telemetrySession.Object);

            // Act
            target.EmitTelemetryEvent(refreshEvent);

            // Assert
            telemetrySession.Verify(x => x.PostEvent(It.IsAny <TelemetryEvent>()), Times.Once);
            Assert.NotNull(lastTelemetryEvent);
            Assert.Equal("PMUIRefresh", lastTelemetryEvent.Name);
            Assert.Equal(6, lastTelemetryEvent.Count);

            var parentIdGuid = lastTelemetryEvent["ParentId"];

            Assert.NotNull(parentIdGuid);
            Assert.IsType <string>(parentIdGuid);
            Assert.Equal(expectedGuid.ToString(), parentIdGuid);

            var solutionLevel = lastTelemetryEvent["IsSolutionLevel"];

            Assert.NotNull(solutionLevel);
            Assert.IsType <bool>(solutionLevel);
            Assert.Equal(expectedIsSolutionLevel, solutionLevel);

            var refreshSource = lastTelemetryEvent["RefreshSource"];

            Assert.NotNull(refreshSource);
            Assert.IsType <RefreshOperationSource>(refreshSource);
            Assert.Equal(expectedRefreshSource, refreshSource);

            var refreshStatus = lastTelemetryEvent["RefreshStatus"];

            Assert.NotNull(refreshStatus);
            Assert.IsType <RefreshOperationStatus>(refreshStatus);
            Assert.Equal(expectedRefreshStatus, refreshStatus);

            var tab = lastTelemetryEvent["Tab"];

            Assert.NotNull(tab);
            Assert.IsType <string>(tab);
            Assert.Equal(expectedTab, tab);

            var timeSinceLastRefresh = lastTelemetryEvent["TimeSinceLastRefresh"];

            Assert.NotNull(timeSinceLastRefresh);
            Assert.IsType <double>(timeSinceLastRefresh);
            Assert.Equal(expectedTimeSinceLastRefresh.TotalMilliseconds, timeSinceLastRefresh);
        }