public void Logging_StartTrace_TraceRecorded(string msg, params string[] msgs)
        {
            var trace = new TraceInfo(msg);

            for (var x = 0; x < msgs.Length; x++)
            {
                trace.Add($"stuff{x}", msgs[x]);
            }


            using (var ms = new MemoryStream())
            {
                var w      = new StreamWriter(ms);
                var logger = new ConsoleInstrumentationClient(w);

                logger.StartTrace(trace);


                w.Flush();
                ms.Seek(0, SeekOrigin.Begin);

                var result = new StreamReader(ms).ReadToEnd();

                result = result.Trim(Environment.NewLine.ToCharArray());

                result.Should().StartWith(msg);
                foreach (var m in msgs)
                {
                    result.Should().Contain(m);
                }
            }
        }
        public void Logging_Error_Recorded(string message)
        {
            using (var ms = new MemoryStream())
            {
                var w      = new StreamWriter(ms);
                var logger = new ConsoleInstrumentationClient(w);

                logger.Error(message);

                w.Flush();
                ms.Seek(0, SeekOrigin.Begin);

                var result = new StreamReader(ms).ReadToEnd();

                result.Should().Contain(message);
            }
        }
        public void Logging_StartTrace_EndTrace_Recorded(string startMsg, string endMsg)
        {
            using (var ms = new MemoryStream())
            {
                var w      = new StreamWriter(ms);
                var logger = new ConsoleInstrumentationClient(w);


                logger.StartTrace(new TraceInfo(startMsg));
                logger.EndTrace(new TraceInfo(endMsg));

                w.Flush();
                ms.Seek(0, SeekOrigin.Begin);

                var result = new StreamReader(ms).ReadToEnd();

                result = result.Trim(Environment.NewLine.ToCharArray());

                result.Should().StartWith(startMsg);
                result.Should().EndWith(endMsg);
            }
        }