Add logging tests

This commit is contained in:
Matt Nadareski
2024-11-25 22:33:11 -05:00
parent 861bfdc4f4
commit e43560cbbd
3 changed files with 132 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
using SabreTools.IO.Logging;
using Xunit;
namespace SabreTools.IO.Test.Logging
{
public class ConvertersTests
{
[Theory]
[InlineData(null, LogLevel.VERBOSE)]
[InlineData("", LogLevel.VERBOSE)]
[InlineData("INVALID", LogLevel.VERBOSE)]
[InlineData("verbose", LogLevel.VERBOSE)]
[InlineData("VERBOSE", LogLevel.VERBOSE)]
[InlineData("user", LogLevel.USER)]
[InlineData("USER", LogLevel.USER)]
[InlineData("warning", LogLevel.WARNING)]
[InlineData("WARNING", LogLevel.WARNING)]
[InlineData("error", LogLevel.ERROR)]
[InlineData("ERROR", LogLevel.ERROR)]
public void AsLogLevelTest(string? level, LogLevel expected)
{
LogLevel actual = level.AsLogLevel();
Assert.Equal(expected, actual);
}
[Theory]
[InlineData(LogLevel.VERBOSE, "VERBOSE")]
[InlineData(LogLevel.USER, "USER")]
[InlineData(LogLevel.WARNING, "WARNING")]
[InlineData(LogLevel.ERROR, "ERROR")]
[InlineData((LogLevel)99, null)]
public void FromLogLevelTest(LogLevel level, string? expected)
{
string? actual = level.FromLogLevel();
Assert.Equal(expected, actual);
}
}
}

View File

@@ -0,0 +1,40 @@
using SabreTools.IO.Logging;
using Xunit;
namespace SabreTools.IO.Test.Logging
{
public class InternalStopwatchTests
{
[Fact]
public void Stopwatch_NoSubject_StartNoSubject()
{
var stopwatch = new InternalStopwatch();
stopwatch.Start();
stopwatch.Stop();
}
[Fact]
public void Stopwatch_NoSubject_StartSubject()
{
var stopwatch = new InternalStopwatch();
stopwatch.Start("start");
stopwatch.Stop();
}
[Fact]
public void Stopwatch_Subject_StartNoSubject()
{
var stopwatch = new InternalStopwatch("init");
stopwatch.Start();
stopwatch.Stop();
}
[Fact]
public void Stopwatch_Subject_StartSubject()
{
var stopwatch = new InternalStopwatch("init");
stopwatch.Start("start");
stopwatch.Stop();
}
}
}

View File

@@ -0,0 +1,54 @@
using System;
using SabreTools.IO.Logging;
using Xunit;
namespace SabreTools.IO.Test.Logging
{
public class LoggerTests
{
[Fact]
public void EndToEnd()
{
Assert.Null(LoggerImpl.Filename);
Assert.False(LoggerImpl.LogToFile);
Assert.Null(LoggerImpl.LogDirectory);
Assert.True(LoggerImpl.AppendPrefix);
Assert.False(LoggerImpl.ThrowOnError);
LoggerImpl.Start();
var logger = new Logger();
logger.Verbose("verbose");
logger.Verbose(new Exception());
logger.Verbose(new Exception(), "verbose");
logger.Verbose(1, 1, "verbose");
logger.User("user");
logger.User(new Exception());
logger.User(new Exception(), "user");
logger.User(1, 1, "user");
logger.Warning("warning");
logger.Warning(new Exception());
logger.Warning(new Exception(), "warning");
logger.Warning(1, 1, "warning");
logger.Error("error");
logger.Error(new Exception());
logger.Error(new Exception(), "error");
logger.Error(1, 1, "error");
LoggerImpl.ThrowOnError = true;
Assert.Throws<Exception>(() => logger.Error(new Exception()));
Assert.True(LoggerImpl.StartTime < DateTime.Now);
Assert.True(LoggerImpl.LoggedWarnings);
Assert.True(LoggerImpl.LoggedErrors);
LoggerImpl.SetFilename("logfile.txt", addDate: true);
LoggerImpl.Close();
}
}
}