Files
ReLibreHardwareMonitor/LibreHardwareMonitorLib.Tests/Hardware/StartupTraceLogSupportTests.cs
T
2026-06-08 10:37:00 -05:00

56 lines
1.8 KiB
C#

using System;
using System.IO;
using LibreHardwareMonitor.Hardware;
using Xunit;
namespace LibreHardwareMonitorLib.Tests.Hardware;
public class StartupTraceLogSupportTests
{
[Theory]
[InlineData("", "")]
[InlineData("plain", "plain")]
[InlineData("a,b", "\"a,b\"")]
[InlineData("a\"b", "\"a\"\"b\"")]
[InlineData("a\r\nb", "\"a\r\nb\"")]
public void EscapeCsv_EscapesOnlyWhenNeeded(string value, string expected)
{
Assert.Equal(expected, StartupTraceLogSupport.EscapeCsv(value));
}
[Fact]
public void GetLogFileName_EmptyPathUsesBaseDirectory()
{
string path = StartupTraceLogSupport.GetLogFileName("TestTrace", "");
Assert.Equal(NormalizeDirectory(AppContext.BaseDirectory), NormalizeDirectory(Path.GetDirectoryName(path)!));
Assert.StartsWith("TestTrace-", Path.GetFileName(path));
Assert.EndsWith(".log", Path.GetFileName(path));
}
[Fact]
public void GetLogFileName_DirectoryPathCombinesGeneratedFileName()
{
string path = StartupTraceLogSupport.GetLogFileName("TestTrace", AppContext.BaseDirectory);
Assert.Equal(NormalizeDirectory(AppContext.BaseDirectory), NormalizeDirectory(Path.GetDirectoryName(path)!));
Assert.StartsWith("TestTrace-", Path.GetFileName(path));
Assert.EndsWith(".log", Path.GetFileName(path));
}
[Fact]
public void GetLogFileName_ExplicitFilePathIsReturnedAsConfigured()
{
string configuredPath = Path.Combine(AppContext.BaseDirectory, "explicit-startup.log");
string path = StartupTraceLogSupport.GetLogFileName("Ignored", configuredPath);
Assert.Equal(configuredPath, path);
}
private static string NormalizeDirectory(string path)
{
return path.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
}
}