public void InitializeHealthHeartbeatDoesntThrow()
 {
     using (var hbeat = new HeartbeatProvider())
     {
         hbeat.Initialize(configuration: null);
     }
 }
        public void HeartbeatPayloadContainsOnlyAllowedDefaultPayloadFields()
        {
            var assemblyDefFields = new BaseDefaultHeartbeatPropertyProvider();

            var allDefaultFields = assemblyDefFields.DefaultFields;

            using (var hbeat = new HeartbeatProvider())
            {
                List <string> disableHbProps = new List <string>();

                for (int i = 0; i < allDefaultFields.Count(); ++i)
                {
                    if (i % 2 == 0)
                    {
                        disableHbProps.Add(allDefaultFields[i]);
                        hbeat.ExcludedHeartbeatProperties.Add(allDefaultFields[i]);
                    }
                }

                hbeat.Initialize(configuration: null);

                var sentHeartBeat = (MetricTelemetry)hbeat.GatherData();

                Assert.IsNotNull(sentHeartBeat);

                foreach (var kvp in sentHeartBeat.Properties)
                {
                    Assert.IsFalse(disableHbProps.Contains(kvp.Key),
                                   string.Format(CultureInfo.CurrentCulture, "Dissallowed field '{0}' found in payload", kvp.Key));
                }
            }
        }
 public void InitializeHealthHeartbeatTwiceDoesntFail()
 {
     using (var hbeat = new HeartbeatProvider())
     {
         hbeat.Initialize(configuration: null);
         hbeat.Initialize(configuration: null);
     }
 }
 public void InitializeHealthHeartbeatDefaultsAreSetProperly()
 {
     using (var hbeat = new HeartbeatProvider())
     {
         hbeat.Initialize(configuration: null);
         Assert.IsTrue(hbeat.ExcludedHeartbeatProperties == null || hbeat.ExcludedHeartbeatProperties.Count() == 0);
         Assert.AreEqual(hbeat.HeartbeatInterval, HeartbeatProvider.DefaultHeartbeatInterval);
     }
 }
 public void HeartbeatPayloadContainsDataByDefault()
 {
     using (var hbeat = new HeartbeatProvider())
     {
         hbeat.Initialize(configuration: null);
         var hbeatPayloadData = hbeat.GatherData();
         Assert.IsNotNull(hbeatPayloadData);
     }
 }
 public void HeartbeatMetricIsZeroForNoFailureConditionPresent()
 {
     using (var hbeat = new HeartbeatProvider())
     {
         hbeat.Initialize(configuration: null);
         var msg = (MetricTelemetry)hbeat.GatherData();
         Assert.IsFalse(msg.Sum > 0.0);
     }
 }
        public void HeartbeatProviderDoesNotAllowDuplicatePropertyName()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                hbeat.Initialize(configuration: null);

                Assert.IsTrue(hbeat.AddHeartbeatProperty("test01", "some test value", true));
                Assert.IsFalse(hbeat.AddHeartbeatProperty("test01", "some other test value", true));
            }
        }
 public void InitializeHeartbeatWithZeroIntervalIsSetToMinimum()
 {
     using (var hbeat = new HeartbeatProvider()
     {
         HeartbeatInterval = TimeSpan.FromMilliseconds(0)
     })
     {
         hbeat.Initialize(configuration: null);
         Assert.AreEqual(hbeat.HeartbeatInterval, HeartbeatProvider.MinimumHeartbeatInterval);
     }
 }
        public void CannotSetPayloadExtensionWithoutAddingItFirst()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                hbeat.Initialize(configuration: null);

                Assert.IsFalse(hbeat.SetHeartbeatProperty("test01", "some other test value", true));
                Assert.IsTrue(hbeat.AddHeartbeatProperty("test01", "some test value", true));
                Assert.IsTrue(hbeat.SetHeartbeatProperty("test01", "some other test value", true));
            }
        }
Esempio n. 10
0
        public void EnsureAllTargetFrameworksRepresented()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                hbeat.Initialize(configuration: null);

                var msg = (MetricTelemetry)hbeat.GatherData();

                Assert.IsTrue(msg.Properties.ContainsKey("baseSdkTargetFramework"));
                Assert.IsFalse(msg.Properties["baseSdkTargetFramework"].Equals("undefined", StringComparison.OrdinalIgnoreCase));
            }
        }
Esempio n. 11
0
        public void CannotAddPayloadItemNamedOfDefaultPayloadProperties()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                hbeat.Initialize(configuration: null);

                foreach (string key in HeartbeatDefaultPayload.DefaultFields)
                {
                    Assert.IsFalse(hbeat.AddHeartbeatProperty(key, "test", true));
                }
            }
        }
        public void HeartbeatMetricIsNonZeroWhenFailureConditionPresent()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                hbeat.Initialize(configuration: null);
                string testerKey = "tester123";
                hbeat.AddHeartbeatProperty(testerKey, "test", false);

                var msg = (MetricTelemetry)hbeat.GatherData();
                Assert.IsTrue(msg.Sum >= 1.0);
            }
        }
        public void SetHeartbeatWithSmallerThanMinimumIntervalIsSetToMinimum()
        {
            var tooSmallInterval = TimeSpan.FromMilliseconds(HeartbeatProvider.MinimumHeartbeatInterval.TotalMilliseconds / 2);

            using (var hbeat = new HeartbeatProvider()
            {
                HeartbeatInterval = tooSmallInterval
            })
            {
                hbeat.Initialize(configuration: null);
                Assert.AreEqual(hbeat.HeartbeatInterval, HeartbeatProvider.MinimumHeartbeatInterval);
            }
        }
        public void CannotSetValueOfDefaultPayloadProperties()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                hbeat.Initialize(configuration: null);
                BaseDefaultHeartbeatPropertyProvider defFields = new BaseDefaultHeartbeatPropertyProvider();

                foreach (string key in defFields.DefaultFields)
                {
                    Assert.IsFalse(hbeat.SetHeartbeatProperty(key, "test", true));
                }
            }
        }
        public void HeartbeatPayloadContainsUserSpecifiedData()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                string testerKey = "tester123";
                Assert.IsTrue(hbeat.AddHeartbeatProperty(testerKey, "test", true));
                hbeat.Initialize(configuration: null);

                MetricTelemetry payload = (MetricTelemetry)hbeat.GatherData();

                Assert.IsTrue(payload.Properties.Any(
                                  a => a.Key.Equals(testerKey, StringComparison.OrdinalIgnoreCase)),
                              "Provided custom payload provider to heartbeat but never received any messages with its content");
            }
        }
        public void HandleUnknownDefaultProperty()
        {
            var    defProps = new BaseDefaultHeartbeatPropertyProvider();
            string testKey  = "TestProp";

            defProps.DefaultFields.Add(testKey);
            using (var hbeat = new HeartbeatProvider())
            {
                var waitForProps = defProps.SetDefaultPayload(new string[] { }, hbeat).ConfigureAwait(false);
                Assert.IsTrue(waitForProps.GetAwaiter().GetResult());
                var heartbeat = (MetricTelemetry)hbeat.GatherData();
                Assert.IsTrue(heartbeat.Properties.ContainsKey(testKey));
                Assert.IsFalse(string.IsNullOrEmpty(heartbeat.Properties[testKey]));
            }
        }
        public void HeartbeatMetricCountAccountsForAllFailures()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                hbeat.Initialize(configuration: null);

                var msg = (MetricTelemetry)hbeat.GatherData();
                Assert.IsTrue(msg.Sum == 0.0);

                hbeat.AddHeartbeatProperty("tester01", "test failure 1", false);
                hbeat.AddHeartbeatProperty("tester02", "test failure 2", false);
                msg = (MetricTelemetry)hbeat.GatherData();

                Assert.IsTrue(msg.Sum == 2.0);
            }
        }
        public void CanExtendHeartbeatPayload()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                hbeat.Initialize(configuration: new TelemetryConfiguration());

                try
                {
                    Assert.IsTrue(hbeat.AddHeartbeatProperty("test01", "this is a value", true));
                }
                catch (Exception e)
                {
                    Assert.Fail(string.Format(CultureInfo.CurrentCulture, "Registration of a heartbeat payload provider throws exception '{0}", e.ToInvariantString()));
                }
            }
        }
        public void CanSetHealthHeartbeatPayloadValueWithoutHealthyFlag()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                hbeat.Initialize(configuration: null);

                string key = "setValueTest";

                Assert.IsTrue(hbeat.AddHeartbeatProperty(key, "value01", true));
                Assert.IsTrue(hbeat.SetHeartbeatProperty(key, "value02"));
                var msg = (MetricTelemetry)hbeat.GatherData();

                Assert.IsNotNull(msg);
                Assert.IsTrue(msg.Properties.ContainsKey(key));
                Assert.IsTrue(msg.Properties[key].Equals("value02", StringComparison.Ordinal));
            }
        }
        public void CanSetHealthHeartbeatPayloadHealthIndicatorWithoutSettingValue()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                hbeat.Initialize(configuration: null);

                string key = "healthSettingTest";

                Assert.IsTrue(hbeat.AddHeartbeatProperty(key, "value01", true));
                Assert.IsTrue(hbeat.SetHeartbeatProperty(key, null, false));
                var msg = (MetricTelemetry)hbeat.GatherData();

                Assert.IsNotNull(msg);
                Assert.IsTrue(msg.Properties.ContainsKey(key));
                Assert.IsTrue(msg.Properties[key].Equals("value01", StringComparison.Ordinal));
                Assert.IsTrue(msg.Sum == 1.0); // one false message in payload only
            }
        }
Esempio n. 21
0
        public void SentHeartbeatContainsExpectedDefaultFields()
        {
            using (var hbeat = new HeartbeatProvider())
            {
                hbeat.Initialize(configuration: null);

                var msg = (MetricTelemetry)hbeat.GatherData();
                Assert.IsNotNull(msg);

                foreach (string field in HeartbeatDefaultPayload.DefaultFields)
                {
                    try
                    {
                        var fieldPayload = msg.Properties.Single(a => string.Compare(a.Key, field) == 0);
                        Assert.IsNotNull(fieldPayload);
                        Assert.IsFalse(string.IsNullOrEmpty(fieldPayload.Value));
                    }
                    catch (Exception)
                    {
                        Assert.Fail(string.Format(CultureInfo.CurrentCulture, "The default field '{0}' is not present exactly once in a sent message.", field));
                    }
                }
            }
        }