mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
|
|
using LanMountainDesktop.Launcher;
|
||
|
|
using LanMountainDesktop.Launcher.Services;
|
||
|
|
using Xunit;
|
||
|
|
|
||
|
|
namespace LanMountainDesktop.Tests;
|
||
|
|
|
||
|
|
[Collection("LauncherDebugSettingsStore")]
|
||
|
|
public sealed class DeploymentLocatorTests : IDisposable
|
||
|
|
{
|
||
|
|
private readonly string _appRoot;
|
||
|
|
private readonly string _configRoot;
|
||
|
|
|
||
|
|
public DeploymentLocatorTests()
|
||
|
|
{
|
||
|
|
var testRoot = Path.Combine(Path.GetTempPath(), "LanMountainDesktop.DeploymentLocatorTests", Guid.NewGuid().ToString("N"));
|
||
|
|
_appRoot = Path.Combine(testRoot, "app-root");
|
||
|
|
_configRoot = Path.Combine(testRoot, "config");
|
||
|
|
Directory.CreateDirectory(_appRoot);
|
||
|
|
Directory.CreateDirectory(_configRoot);
|
||
|
|
LauncherDebugSettingsStore.ConfigBaseDirectoryOverride = _configRoot;
|
||
|
|
}
|
||
|
|
|
||
|
|
[Fact]
|
||
|
|
public void ResolveHostExecutable_WhenSavedDebugPathIsMalformed_DoesNotThrow()
|
||
|
|
{
|
||
|
|
LauncherDebugSettingsStore.Save(new LauncherDebugSettings(true, "bad\0path"));
|
||
|
|
|
||
|
|
var locator = new DeploymentLocator(_appRoot);
|
||
|
|
var result = locator.ResolveHostExecutable(CommandContext.FromArgs(["launch", "--debug"]));
|
||
|
|
|
||
|
|
Assert.NotEqual("debug_saved_custom_path", result.ResolutionSource);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void Dispose()
|
||
|
|
{
|
||
|
|
LauncherDebugSettingsStore.ConfigBaseDirectoryOverride = null;
|
||
|
|
var testRoot = Directory.GetParent(_appRoot)?.FullName;
|
||
|
|
if (!string.IsNullOrWhiteSpace(testRoot) && Directory.Exists(testRoot))
|
||
|
|
{
|
||
|
|
Directory.Delete(testRoot, recursive: true);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|