예제 #1
0
        public void TestMessageQueue_AddMultipleLosgToEnabledManager_ShouldEnqueueLimitMessage()
        {
            uint expectedNumberOfMessages = 1;
            var  logManager = new BacktraceLogManager(expectedNumberOfMessages);

            logManager.Enqueue("deleted message", string.Empty, LogType.Log);
            var enqueuedMessage = "enqueued message";

            logManager.Enqueue(enqueuedMessage, string.Empty, LogType.Log);

            Assert.AreEqual(expectedNumberOfMessages, logManager.Size);
            Assert.AreEqual(enqueuedMessage, logManager.LogQueue.First().Message);
        }
예제 #2
0
        public void TestMessageQueue_AddMultipleLosgToEnabledManager_ShouldEnqueueLimitMessage()
        {
            uint expectedNumberOfMessages = 1;
            var  logManager = new BacktraceLogManager(expectedNumberOfMessages);

            logManager.Enqueue("deleted message", string.Empty, LogType.Log);
            var enqueuedMessage = "enqueued message";

            logManager.Enqueue(enqueuedMessage, string.Empty, LogType.Log);

            Assert.AreEqual(expectedNumberOfMessages, logManager.Size);
            // validate if log ends with enqueueMessage to validate if message is there,
            // without checking other message content (date, log type etc..)
            Assert.IsTrue(logManager.LogQueue.First().EndsWith(enqueuedMessage));
        }
예제 #3
0
        /// <summary>
        /// Send a message report to Backtrace API
        /// </summary>
        /// <param name="message">Report message</param>
        /// <param name="attachmentPaths">List of attachments</param>
        /// <param name="attributes">List of report attributes</param>
        public void Send(string message, List <string> attachmentPaths = null, Dictionary <string, string> attributes = null)
        {
            if (!ShouldSendReport(message, attachmentPaths, attributes))
            {
                return;
            }
            var report = new BacktraceReport(
                message: message,
                attachmentPaths: attachmentPaths,
                attributes: attributes);

            _backtraceLogManager.Enqueue(report);

            SendReport(report);
        }
예제 #4
0
        public void TestDisabledManager_AddLogToDisabledManager_ShouldntEnqueueMessage()
        {
            var logManager = new BacktraceLogManager(0);

            logManager.Enqueue("fake message", string.Empty, LogType.Log);
            Assert.AreEqual(0, logManager.Size);
        }
예제 #5
0
        public void TestMessageQueue_AddLogToEnabledManager_ShouldEnqueueMessage()
        {
            uint expectedNumberOfMessages = 1;
            var  logManager = new BacktraceLogManager(expectedNumberOfMessages);

            logManager.Enqueue("fake message", string.Empty, LogType.Log);
            Assert.AreEqual(expectedNumberOfMessages, logManager.Size);
        }
예제 #6
0
        public void TestLogManagerSourceCodeGeneration_ShouldReturnStringSourceCode_CorrectSourceCodeGenerationFromEmptyLog()
        {
            var type = LogType.Log;
            var backtraceUnityLogManager = new BacktraceLogManager(1);

            backtraceUnityLogManager.Enqueue(string.Empty, string.Empty, type);
            var sourceCodeText = backtraceUnityLogManager.ToSourceCode();

            Assert.IsNotEmpty(sourceCodeText);
        }
예제 #7
0
        public void TestLogManagerLimit_AddExceptionReportsThatMatchLimitCriteria_AllMessagesShouldBeInLogManager(int numberOfLogs)
        {
            var report = new BacktraceReport(new Exception(string.Empty));
            var backtraceUnityLogManager = new BacktraceLogManager((uint)numberOfLogs);

            for (int i = 0; i < numberOfLogs; i++)
            {
                backtraceUnityLogManager.Enqueue(report);
            }
            Assert.AreEqual(backtraceUnityLogManager.Size, numberOfLogs);
        }
예제 #8
0
        public void TestLogManagerLimit_AddMessagesThatMatchLimitCriteria_AllMessagesShouldBeInLogManager(int numberOfLogs)
        {
            var message    = "fake message";
            var stackTrace = string.Empty;
            var type       = LogType.Log;
            var backtraceUnityLogManager = new BacktraceLogManager((uint)numberOfLogs);

            for (int i = 0; i < numberOfLogs; i++)
            {
                backtraceUnityLogManager.Enqueue(message, stackTrace, type);
            }
            Assert.AreEqual(backtraceUnityLogManager.Size, numberOfLogs);
        }
예제 #9
0
        public void TestLogManagerSourceCodeGeneration_ShouldReturnStringSourceCode_CorrectSourceCodeGenerationWithStackTraceForException()
        {
            var message    = "Message";
            var stackTrace = "stack trace";
            var type       = LogType.Exception;
            var backtraceUnityLogManager = new BacktraceLogManager(1);

            backtraceUnityLogManager.Enqueue(message, stackTrace, type);
            var sourceCodeText = backtraceUnityLogManager.ToSourceCode();

            Assert.IsNotEmpty(sourceCodeText);
            Assert.IsTrue(sourceCodeText.Contains(message));
            Assert.IsTrue(sourceCodeText.Contains(stackTrace));
        }
예제 #10
0
        public void TestLogManagerSourceCodeGeneration_ShouldReturnStringSourceCodeForEmptyValues_CorrectSourceCodeGenerationWithStackTraceForException()
        {
            var message    = string.Empty;
            var stackTrace = string.Empty;
            var type       = LogType.Log;
            var backtraceUnityLogManager = new BacktraceLogManager(1);

            backtraceUnityLogManager.Enqueue(message, stackTrace, type);
            string sourceCodeText = string.Empty;

            Assert.DoesNotThrow(() =>
            {
                sourceCodeText = backtraceUnityLogManager.ToSourceCode();
            });

            Assert.IsNotEmpty(sourceCodeText);
        }