mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
50 lines
1.7 KiB
C#
50 lines
1.7 KiB
C#
|
|
using Xunit;
|
||
|
|
|
||
|
|
namespace LanMountainDesktop.Tests;
|
||
|
|
|
||
|
|
[Collection("LauncherDebugSettingsStore")]
|
||
|
|
public sealed class LauncherDebugSettingsStoreTests : IDisposable
|
||
|
|
{
|
||
|
|
private readonly string _tempDirectory;
|
||
|
|
|
||
|
|
public LauncherDebugSettingsStoreTests()
|
||
|
|
{
|
||
|
|
_tempDirectory = Path.Combine(Path.GetTempPath(), "LanMountainDesktop.DebugSettingsTests", Guid.NewGuid().ToString("N"));
|
||
|
|
Directory.CreateDirectory(_tempDirectory);
|
||
|
|
LauncherDebugSettingsStore.ConfigBaseDirectoryOverride = _tempDirectory;
|
||
|
|
}
|
||
|
|
|
||
|
|
[Fact]
|
||
|
|
public void Load_WhenOnlyLegacyFilesExist_ReadsLegacySettings()
|
||
|
|
{
|
||
|
|
var customPath = Path.Combine(_tempDirectory, "legacy-host.exe");
|
||
|
|
File.WriteAllText(Path.Combine(_tempDirectory, "devmode.config"), "1");
|
||
|
|
File.WriteAllText(Path.Combine(_tempDirectory, "custom-host-path.config"), customPath);
|
||
|
|
|
||
|
|
var settings = LauncherDebugSettingsStore.Load();
|
||
|
|
|
||
|
|
Assert.True(settings.DevModeEnabled);
|
||
|
|
Assert.Equal(customPath, settings.CustomHostPath);
|
||
|
|
}
|
||
|
|
|
||
|
|
[Fact]
|
||
|
|
public void Save_WritesNewSettingsFiles()
|
||
|
|
{
|
||
|
|
var customPath = Path.Combine(_tempDirectory, "host.exe");
|
||
|
|
|
||
|
|
LauncherDebugSettingsStore.Save(new LauncherDebugSettings(true, customPath));
|
||
|
|
|
||
|
|
Assert.Equal("True", File.ReadAllText(Path.Combine(_tempDirectory, "dev-mode.flag")).Trim());
|
||
|
|
Assert.Equal(customPath, File.ReadAllText(Path.Combine(_tempDirectory, "custom-host-path.txt")).Trim());
|
||
|
|
}
|
||
|
|
|
||
|
|
public void Dispose()
|
||
|
|
{
|
||
|
|
LauncherDebugSettingsStore.ConfigBaseDirectoryOverride = null;
|
||
|
|
if (Directory.Exists(_tempDirectory))
|
||
|
|
{
|
||
|
|
Directory.Delete(_tempDirectory, recursive: true);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|