public void TrackDurationToBackupPackage_TracksDuration() { // Arrange var validationTrackingId = Guid.NewGuid(); var packageId = "a"; var normalizedVersion = "b"; var validationSet = new PackageValidationSet { ValidationTrackingId = validationTrackingId, PackageId = packageId, PackageNormalizedVersion = normalizedVersion }; var expectedReturnValue = Mock.Of <IDisposable>(); _telemetryClient.Setup( x => x.TrackMetric( It.IsNotNull <string>(), It.IsAny <double>(), It.IsNotNull <IDictionary <string, string> >())) .Callback((string metricName, double value, IDictionary <string, string> properties) => { Assert.Equal("Orchestrator.DurationToBackupPackageSeconds", metricName); Assert.True(value > 0); Assert.NotEmpty(properties); Assert.Equal(new Dictionary <string, string>() { { "ValidationTrackingId", validationTrackingId.ToString() }, { "PackageId", packageId }, { "NormalizedVersion", normalizedVersion }, }, properties); }); // Act using (_telemetryService.TrackDurationToBackupPackage(validationSet)) { } // Assert _telemetryClient.VerifyAll(); }