Ejemplo n.º 1
0
        public void FactoryBasedLoggerHandler_LogError_Handles_Concurrent_Calls()
        {
            var originalLevel = Diagnostics.CassandraTraceSwitch.Level;

            try
            {
                Diagnostics.CassandraTraceSwitch.Level = TraceLevel.Verbose;
                var listener = new TestTraceListener();
                Trace.Listeners.Add(listener);
                var loggerHandler = new Logger.TraceBasedLoggerHandler(typeof(int));
                UseAllMethods(loggerHandler);
                Trace.Listeners.Remove(listener);
                Assert.AreEqual(6, listener.Messages.Count);
                var actions = Enumerable
                              .Repeat(true, 1000)
                              .Select <bool, Action>((_, index) => () =>
                {
                    loggerHandler.Error(new ArgumentException("Test exception " + index,
                                                              new Exception("Test inner exception")));
                });
                TestHelper.ParallelInvoke(actions);
            }
            finally
            {
                Diagnostics.CassandraTraceSwitch.Level = originalLevel;
            }
        }
Ejemplo n.º 2
0
        public void FactoryBasedLoggerHandler_Methods_Should_Output_To_Trace()
        {
            var originalLevel = Diagnostics.CassandraTraceSwitch.Level;

            Diagnostics.CassandraTraceSwitch.Level = TraceLevel.Verbose;
            var listener = new TestTraceListener();

            Trace.Listeners.Add(listener);
            var loggerHandler = new Logger.TraceBasedLoggerHandler(typeof(int));

            UseAllMethods(loggerHandler);
            Trace.Listeners.Remove(listener);
            Diagnostics.CassandraTraceSwitch.Level = originalLevel;
            Assert.AreEqual(6, listener.Messages.Count);
            var expectedMessages = new[]
            {
                "Test exception 1",
                "Message 1",
                "Message 2 Param1",
                "Message 3 Param2",
                "Message 4 Param3",
                "Message 5 Param4"
            };
            var messages = listener.Messages.Keys.OrderBy(k => k).Select(k => listener.Messages[k]).ToArray();

            for (var i = 0; i < expectedMessages.Length; i++)
            {
                StringAssert.Contains(expectedMessages[i], messages[i]);
            }
        }