private static void AssertPageTraces(IPageableLog logTracer, int pageIndex) { for (int i = 0; i < TestPageSize; i++) { AssertTraceLine(logTracer, i, TraceLevel.Info, $"{(pageIndex * TestPageSize) + i}"); } }
/// <summary> /// Returns the requested log from the archive. If the log does not exist, a new empty log will be created and returned. /// </summary> /// <param name="logName">The name of the requested log.</param> /// <param name="initialPageSize">The log's initial page size</param> /// <returns>A <see cref="Task"/> running the asynchronous operation, returning the requested log.</returns> public async Task <IPageableLog> GetLogAsync(string logName, int initialPageSize) { IPageableLog log = await PageableLog.LoadLogFileAsync(this.archiveFileName, logName, initialPageSize); if (!this.LogNames.Contains(log.Name)) { this.LogNames.Add(log.Name); } return(log); }
private static void AssertEmptyLogTracer(IPageableLog logTracer, string logName) { Assert.AreEqual(TestPageSize, logTracer.PageSize, $"Mismatch on the log's page size for '{logName}'"); Assert.AreEqual(0, logTracer.CurrentPageIndex, $"Mismatch on the log's current page for '{logName}'"); Assert.AreEqual(0, logTracer.CurrentPageStart, $"Mismatch on the log's current page start for '{logName}'"); Assert.AreEqual(0, logTracer.CurrentPageEnd, $"Mismatch on the log's current page end for '{logName}'"); Assert.AreEqual(0, logTracer.NumberOfPages, $"Mismatch on the log's number of pages for '{logName}'"); Assert.AreEqual(0, logTracer.NumberOfTraceLines, $"Mismatch on the log's number of trace lines for '{logName}'"); Assert.AreEqual(logName, logTracer.Name, $"Mismatch on the log's name for '{logName}'"); Assert.AreEqual(0, logTracer.CurrentPageTraces.Count, $"The log's current traces should have been empty for '{logName}'"); }
public async Task WhenGettingLogFromEmptyArchiveThenLogIsCreatedOnce() { // Create the log tracer and validate var pageableLogArchive = new PageableLogArchive("test/detector", LogsFolder); IPageableLog log = await pageableLogArchive.GetLogAsync("mylog", TestPageSize); AssertEmptyLogTracer(log, "mylog"); AssertArchiveFile(expectedNumberOfEntries: 1); AssertEmptyArchiveLogEntry("mylog"); // Create the log tracer again, and validate that nothing has happened pageableLogArchive = new PageableLogArchive("test/detector", LogsFolder); log = await pageableLogArchive.GetLogAsync("mylog", TestPageSize); AssertEmptyLogTracer(log, "mylog"); AssertArchiveFile(expectedNumberOfEntries: 1); AssertEmptyArchiveLogEntry("mylog"); }
public async Task WhenGettingTwoLogsFromEmptyArchiveThenLogsAreCreated() { // Create the first log tracer and validate var pageableLogArchive = new PageableLogArchive("test/detector", LogsFolder); IPageableLog log = await pageableLogArchive.GetLogAsync("mylog", TestPageSize); AssertEmptyLogTracer(log, "mylog"); AssertArchiveFile(expectedNumberOfEntries: 1); AssertEmptyArchiveLogEntry("mylog"); // Create the second log tracer and validate pageableLogArchive = new PageableLogArchive("test/detector", LogsFolder); log = await pageableLogArchive.GetLogAsync("mylog2", TestPageSize); AssertEmptyLogTracer(log, "mylog2"); AssertArchiveFile(expectedNumberOfEntries: 2); AssertEmptyArchiveLogEntry("mylog"); AssertEmptyArchiveLogEntry("mylog2"); }
private static void AssertTraceLine(IPageableLog logTracer, int traceIndex, TraceLevel expectedLevel, string message) { Assert.AreEqual(expectedLevel, logTracer.CurrentPageTraces[traceIndex].Level, $"Mismatch on trace #{traceIndex}'s level"); Assert.AreEqual(message, logTracer.CurrentPageTraces[traceIndex].Message, $"Mismatch on trace #{traceIndex}'s message"); }