public void Exception_log_fields_should_be_populated_test()
        {
            var log = new ExceptionLog();

            log.CorrelationId            = CorrelationId;
            log.StackId                  = StackId;
            log.Message                  = Message;
            log.TenantId                 = TenantId;
            log.ApplicationName          = App;
            log.ExceptionType            = "ex_type";
            log.Source                   = "ex_source";
            log.InnerException           = "ex_innerException";
            log.StackTrace               = "ex_stack";
            log.TargetSite               = "ex_target_site";
            log.ApplicationTransactionId = AppTxId;

            var fields = log.GetFields().ToDictionary(x => x.Key, x => x.Value, StringComparer.OrdinalIgnoreCase);

            Assert.Equal(17, fields.Count);
            Assert.Equal("ex_type", fields["ex_type"].ToString());
            Assert.Equal("ex_source", fields["source"].ToString());
            Assert.Equal("ex_innerException", fields["inner_exception"].ToString());
            Assert.Equal("ex_stack", fields["stack_trace"].ToString());
            Assert.Equal("ex_target_site", fields["target_site"].ToString());
            Assert.Equal("exception", fields["type"].ToString());
            Assert.Equal(AppTxId, fields["app_txid"].ToString());
        }
        public void Exception_log_exceptiondata_fields_should_be_populated_test()
        {
            var ex = new Exception(Message);

            ex.Data.Add("data_field1", "value1");
            ex.Data.Add(123, "value2");
            ex.Data.Add("data_field2", new object());
            var log = new ExceptionLog(ex);

            log.CorrelationId            = CorrelationId;
            log.StackId                  = StackId;
            log.Message                  = Message;
            log.TenantId                 = TenantId;
            log.ApplicationName          = App;
            log.ExceptionType            = "ex_type";
            log.Source                   = "ex_source";
            log.InnerException           = "ex_innerException";
            log.StackTrace               = "ex_stack";
            log.TargetSite               = "ex_target_site";
            log.ApplicationTransactionId = AppTxId;

            var fields = log.GetFields().ToDictionary(x => x.Key, x => x.Value, StringComparer.OrdinalIgnoreCase);

            Assert.Equal(18, fields.Count);
            Assert.Equal("ex_type", fields["ex_type"].ToString());
            Assert.Equal("ex_source", fields["source"].ToString());
            Assert.Equal("ex_innerException", fields["inner_exception"].ToString());
            Assert.Equal("ex_stack", fields["stack_trace"].ToString());
            Assert.Equal("ex_target_site", fields["target_site"].ToString());
            Assert.Equal("exception", fields["type"].ToString());
            Assert.Equal("value1", fields["data_field1"]);
            Assert.False(fields.ContainsKey("data_field2"));
            Assert.Equal(AppTxId, fields["app_txid"].ToString());
        }