Example #1
0
        public static void Contains(TestLogProvider logProvider, params LogAssert[] asserts)
        {
            var remaining = new HashSet <LogAssert>(asserts);

            foreach (LogEntry logEntry in GetLogs(logProvider))
            {
                foreach (LogAssert assert in remaining.ToArray())
                {
                    if (string.Equals(assert.EventName, logEntry.EventId.Name) &&
                        assert.EventId == logEntry.EventId.Id &&
                        assert.Level == logEntry.LogLevel &&
                        logEntry.Message.Contains(assert.MessageSubstring))
                    {
                        remaining.Remove(assert);
                    }
                }
            }

            Assert.Empty(remaining);
        }
Example #2
0
        public static void Sequence(TestLogProvider logProvider, params LogAssert[] asserts)
        {
            LogEntry[] actualLogs = GetLogs(logProvider).ToArray();

            string expected = Environment.NewLine + string.Join(Environment.NewLine, asserts.Select(log => log.EventName)) + Environment.NewLine;
            string actual   = Environment.NewLine + string.Join(Environment.NewLine, actualLogs.Select(log => log.EventId.Name)) + Environment.NewLine;

            for (int i = 0; i < actualLogs.Length; i++)
            {
                Assert.True(asserts.Length > i, $"{asserts.Length} log entries were expected but {actualLogs.Length} were found. Expected:{expected}Actual:{actual}");

                Assert.Equal(asserts[i].EventName, actualLogs[i].EventId.Name);
                Assert.Equal(asserts[i].EventId, actualLogs[i].EventId.Id);
                Assert.Equal(asserts[i].Level, actualLogs[i].LogLevel);
                Assert.Contains(asserts[i].MessageSubstring, actualLogs[i].Message);

                ValidateStructuredLogFields(actualLogs[i]);
            }

            // If this fails, it means that more logs were expected.
            Assert.True(
                asserts.Length == actualLogs.Length,
                $"{asserts.Length} log entries were expected but only {actualLogs.Length} were found. Expected:{expected}Actual:{actual}");
        }
Example #3
0
 public static void Sequence(TestLogProvider logProvider, params LogAssert[] asserts) =>
 For(logProvider).Expect(asserts).EndOfLog();
Example #4
0
 public static IReadOnlyCollection <LogEntry> For(TestLogProvider logProvider)
 {
     Assert.True(logProvider.TryGetLogs("DurableTask.SqlServer", out IReadOnlyCollection <LogEntry> logs));
     return(logs);
 }
Example #5
0
 public static void LogEntryCount(TestLogProvider logProvider, int expected) =>
 Assert.Equal(expected, GetLogs(logProvider).Count);
Example #6
0
 public static void NoWarningsOrErrors(TestLogProvider logProvider)
 => Assert.Empty(GetLogs(logProvider).Where(entry => entry.LogLevel > LogLevel.Information));
Example #7
0
 public static void Contains(TestLogProvider logProvider, params LogAssert[] asserts) =>
 For(logProvider).Contains(asserts).AllowAdditionalLogs();