Exemplo n.º 1
0
        public void CheckListOfItems()
        {
            List <ITelemetry> sentTelemetry   = new List <ITelemetry>();
            TelemetryModule   telemetryModule = Helpers.GetTelemetryModule(sentTelemetry, this.testTelemetryKey);

            telemetryModule.Event("TestEvent", new Dictionary <string, string>()
            {
                { "AKey", $"AValue" }
            });
            telemetryModule.View("TestView");
            telemetryModule.Log(LogLevel.Warn, "A log message");
            telemetryModule.Exception(new Exception("An error that happened"));
            telemetryModule.Exception(new Exception("An error that happened with note"), "A note for error");

            byte[] serialized = JsonSerializer.Serialize(sentTelemetry, true);


            var items  = AppInsightsDeserializer.Deserialize(serialized, true).ToList();
            var mapped = AppInsightsTelemetryMapper.Map(items).ToList();

            for (int index = 0; index < sentTelemetry.Count; index++)
            {
                ITelemetry    appInsightsItem = sentTelemetry[index];
                TelemetryItem telimenaItem    = mapped[index];

                Assert.AreEqual(appInsightsItem.Timestamp, telimenaItem.Timestamp);
                Assert.AreEqual(appInsightsItem.Sequence, telimenaItem.Sequence);
                Assert.AreEqual(appInsightsItem.Context.User.Id, telimenaItem.UserIdentifier);
                if (telimenaItem.TelemetryItemType != TelemetryItemTypes.LogMessage && telimenaItem.TelemetryItemType != TelemetryItemTypes.Exception)
                {
                    Assert.AreEqual(appInsightsItem.GetPropertyValue <string>("Name"), telimenaItem.EntryKey);
                }
                foreach (KeyValuePair <string, string> keyValuePair in appInsightsItem.GetPropertyValue <ConcurrentDictionary <string, string> >("Properties"))
                {
                    var props = typeof(TelimenaContextPropertyKeys).GetProperties().Select(x => x.Name);
                    if (!props.Contains(keyValuePair.Key))
                    {
                        Assert.AreEqual(keyValuePair.Value, telimenaItem.Properties[keyValuePair.Key]);
                    }
                }
            }
        }
Exemplo n.º 2
0
        public void TestException()
        {
            List <ITelemetry> sentTelemetry   = new List <ITelemetry>();
            TelemetryModule   telemetryModule = Helpers.GetTelemetryModule(sentTelemetry, this.testTelemetryKey);

            telemetryModule.Exception(new InvalidCastException("A Message", new InvalidOperationException("Inner")));

            List <TelemetryItem> mapped = DoTheMapping(sentTelemetry);
            var exTelemetry             = sentTelemetry.First() as ExceptionTelemetry;

            Assert.AreEqual(TelemetryItemTypes.Exception, mapped.Single().TelemetryItemType);
            Assert.AreEqual(exTelemetry.Exception.Message, mapped[0].Exceptions[0].Message);
            Assert.AreEqual(exTelemetry.Exception.InnerException.Message, mapped[0].Exceptions[1].Message);
            Assert.AreEqual(exTelemetry.Exception.GetType().FullName, mapped[0].Exceptions[0].TypeName);
            Assert.AreEqual(exTelemetry.Exception.InnerException.GetType().FullName, mapped[0].Exceptions[1].TypeName);
        }