Refactor util into separate classes

This commit is contained in:
Caelan
2024-09-21 12:48:05 -06:00
parent cb9447821d
commit 8347f29309
83 changed files with 1104 additions and 1048 deletions

View File

@@ -1,6 +1,7 @@
using NuGet.Versioning;
using Velopack.Deployment;
using Velopack.Sources;
using Velopack.Util;
namespace Velopack.Packaging.Tests;
@@ -23,7 +24,7 @@ public class AzureDeploymentTests
{
Skip.If(String.IsNullOrWhiteSpace(AZ_KEY), "VELOPACK_AZ_TEST_TOKEN is not set.");
using var logger = _output.BuildLoggerFor<S3DeploymentTests>();
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
string channel = String.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("CI"))
? VelopackRuntimeInfo.SystemOs.GetOsShortName()

View File

@@ -1,6 +1,7 @@
using Neovolve.Logging.Xunit;
using Velopack.Packaging.Exceptions;
using Velopack.Packaging.Windows;
using Velopack.Util;
using Velopack.Vpk;
using Velopack.Vpk.Logging;
@@ -35,7 +36,7 @@ public class CompatUtilTests
{
Skip.IfNot(VelopackRuntimeInfo.IsWindows);
using var logger = GetCompat(out var compat);
using var _1 = Utility.GetTempDirectory(out var dir);
using var _1 = TempUtil.GetTempDirectory(out var dir);
var sample = PathHelper.GetAvaloniaSample();
Exe.InvokeAndThrowIfNonZero(
"dotnet",
@@ -56,7 +57,7 @@ public class CompatUtilTests
{
Skip.IfNot(VelopackRuntimeInfo.IsWindows);
using var logger = GetCompat(out var compat);
using var _1 = Utility.GetTempDirectory(out var dir);
using var _1 = TempUtil.GetTempDirectory(out var dir);
var sample = PathHelper.GetAvaloniaSample();
Exe.InvokeAndThrowIfNonZero(
"dotnet",
@@ -77,7 +78,7 @@ public class CompatUtilTests
{
Skip.IfNot(VelopackRuntimeInfo.IsWindows);
using var logger = GetCompat(out var compat);
using var _1 = Utility.GetTempDirectory(out var dir);
using var _1 = TempUtil.GetTempDirectory(out var dir);
var sample = PathHelper.GetWpfSample();
Exe.InvokeAndThrowIfNonZero(
"dotnet",
@@ -97,7 +98,7 @@ public class CompatUtilTests
{
Skip.IfNot(VelopackRuntimeInfo.IsWindows);
using var logger = GetCompat(out var compat);
using var _1 = Utility.GetTempDirectory(out var dir);
using var _1 = TempUtil.GetTempDirectory(out var dir);
var sample = PathHelper.GetTestRootPath("TestApp");
Exe.InvokeAndThrowIfNonZero(
"dotnet",
@@ -114,7 +115,7 @@ public class CompatUtilTests
{
Skip.IfNot(VelopackRuntimeInfo.IsWindows);
using var logger = GetCompat(out var compat);
using var _1 = Utility.GetTempDirectory(out var dir);
using var _1 = TempUtil.GetTempDirectory(out var dir);
var sample = PathHelper.GetTestRootPath("TestApp");
Exe.InvokeAndThrowIfNonZero(
"dotnet",

View File

@@ -1,4 +1,5 @@
using Velopack.Packaging.Unix;
using Velopack.Util;
namespace Velopack.Packaging.Tests;
@@ -20,7 +21,7 @@ public class CrossCompile
var rid = RID.Parse(target);
string id = $"from-{VelopackRuntimeInfo.SystemOs.GetOsShortName()}-targets-{rid.BaseRID.GetOsShortName()}";
using var _1 = Utility.GetTempDirectory(out var tempDir);
using var _1 = TempUtil.GetTempDirectory(out var tempDir);
TestApp.PackTestApp(id, "1.0.0", id, tempDir, logger, targetRid: rid);
var artifactsDir = PathHelper.GetTestRootPath("artifacts");
@@ -84,7 +85,7 @@ public class CrossCompile
var appExe = Path.Combine(appRoot, "current", "TestApp.exe");
var appUpdate = Path.Combine(appRoot, "Update.exe");
Utility.DeleteFileOrDirectoryHard(appRoot);
IoUtil.DeleteFileOrDirectoryHard(appRoot);
Assert.False(File.Exists(appExe));
@@ -102,6 +103,6 @@ public class CrossCompile
Assert.False(File.Exists(appExe));
Assert.True(File.Exists(Path.Combine(appRoot, ".dead")));
Utility.DeleteFileOrDirectoryHard(appRoot);
IoUtil.DeleteFileOrDirectoryHard(appRoot);
}
}

View File

@@ -2,6 +2,7 @@
using Velopack.Sources;
using Octokit;
using Velopack.Packaging.Exceptions;
using Velopack.Util;
namespace Velopack.Packaging.Tests;
@@ -22,8 +23,8 @@ public class GithubDeploymentTests
{
Skip.If(String.IsNullOrWhiteSpace(GITHUB_TOKEN), "VELOPACK_GITHUB_TEST_TOKEN is not set.");
using var logger = _output.BuildLoggerFor<GithubDeploymentTests>();
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _2 = Utility.GetTempDirectory(out var releaseDir2);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
using var _2 = TempUtil.GetTempDirectory(out var releaseDir2);
using var ghvar = GitHubReleaseTest.Create("nomerge", logger);
var id = "GithubUpdateTest";
TestApp.PackTestApp(id, $"0.0.1-{ghvar.UniqueSuffix}", "t1", releaseDir, logger);
@@ -51,8 +52,8 @@ public class GithubDeploymentTests
{
Skip.If(String.IsNullOrWhiteSpace(GITHUB_TOKEN), "VELOPACK_GITHUB_TEST_TOKEN is not set.");
using var logger = _output.BuildLoggerFor<GithubDeploymentTests>();
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _2 = Utility.GetTempDirectory(out var releaseDir2);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
using var _2 = TempUtil.GetTempDirectory(out var releaseDir2);
using var ghvar = GitHubReleaseTest.Create("mixmatched", logger);
var id = "GithubUpdateTest";
TestApp.PackTestApp(id, $"0.0.1-{ghvar.UniqueSuffix}", "t1", releaseDir, logger);
@@ -81,8 +82,8 @@ public class GithubDeploymentTests
{
Skip.If(String.IsNullOrWhiteSpace(GITHUB_TOKEN), "VELOPACK_GITHUB_TEST_TOKEN is not set.");
using var logger = _output.BuildLoggerFor<GithubDeploymentTests>();
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _2 = Utility.GetTempDirectory(out var releaseDir2);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
using var _2 = TempUtil.GetTempDirectory(out var releaseDir2);
using var ghvar = GitHubReleaseTest.Create("yesmerge", logger);
var id = "GithubUpdateTest";
TestApp.PackTestApp(id, $"0.0.1-{ghvar.UniqueSuffix}", "t1", releaseDir, logger);
@@ -114,7 +115,7 @@ public class GithubDeploymentTests
Skip.If(String.IsNullOrWhiteSpace(GITHUB_TOKEN), "VELOPACK_GITHUB_TEST_TOKEN is not set.");
using var logger = _output.BuildLoggerFor<GithubDeploymentTests>();
var id = "GithubUpdateTest";
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
var (repoOwner, repoName) = GitHubRepository.GetOwnerAndRepo(GITHUB_REPOURL);
using var ghvar = GitHubReleaseTest.Create("integration", logger);
var releaseName = ghvar.ReleaseName;
@@ -172,7 +173,7 @@ This is just a _test_!
Assert.Equal(newVer, r.Version.ToNormalizedString());
}
using var _2 = Utility.GetTempDirectory(out var releaseDirNew);
using var _2 = TempUtil.GetTempDirectory(out var releaseDirNew);
gh.DownloadLatestFullPackageAsync(new GitHubDownloadOptions {
Token = GITHUB_TOKEN,
RepoUrl = GITHUB_REPOURL,
@@ -189,7 +190,7 @@ This is just a _test_!
{
Skip.If(String.IsNullOrWhiteSpace(GITHUB_TOKEN), "VELOPACK_GITHUB_TEST_TOKEN is not set.");
using var logger = _output.BuildLoggerFor<GithubDeploymentTests>();
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
using var ghvar = GitHubReleaseTest.Create("targetCommitish", logger, true);
var (repoOwner, repoName) = GitHubRepository.GetOwnerAndRepo(GITHUB_REPOURL);
var id = "GithubUpdateTest";
@@ -225,7 +226,7 @@ This is just a _test_!
{
Skip.If(String.IsNullOrWhiteSpace(GITHUB_TOKEN), "VELOPACK_GITHUB_TEST_TOKEN is not set.");
using var logger = _output.BuildLoggerFor<GithubDeploymentTests>();
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
using var ghvar = GitHubReleaseTest.Create("targetCommitish", logger, true);
var (repoOwner, repoName) = GitHubRepository.GetOwnerAndRepo(GITHUB_REPOURL);
var id = "GithubUpdateTest";

View File

@@ -1,5 +1,6 @@
using System.Runtime.Versioning;
using Velopack.Compression;
using Velopack.Util;
namespace Velopack.Packaging.Tests;
@@ -20,9 +21,9 @@ public class OsxPackTests
using var logger = _output.BuildLoggerFor<OsxPackTests>();
using var _1 = Utility.GetTempDirectory(out var tmpOutput);
using var _2 = Utility.GetTempDirectory(out var tmpReleaseDir);
using var _3 = Utility.GetTempDirectory(out var unzipDir);
using var _1 = TempUtil.GetTempDirectory(out var tmpOutput);
using var _2 = TempUtil.GetTempDirectory(out var tmpReleaseDir);
using var _3 = TempUtil.GetTempDirectory(out var unzipDir);
const string id = "MyAppId";
const string title = "MyAppTitle";

View File

@@ -8,6 +8,7 @@ using AsmResolver.PE.Win32Resources.Icon;
using AsmResolver.PE.Win32Resources.Version;
using Velopack.NuGet;
using Velopack.Packaging.Windows;
using Velopack.Util;
namespace Velopack.Packaging.Tests;
@@ -37,7 +38,7 @@ public class ResourceEditTests
public void CommitResourcesInCorrectOrder()
{
using var logger = _output.BuildLoggerFor<ResourceEditTests>();
using var _1 = Utility.GetTempFileName(out var tempFile);
using var _1 = TempUtil.GetTempFileName(out var tempFile);
var exe = PathHelper.GetRustAsset("setup.exe");
File.Copy(exe, tempFile);
@@ -65,7 +66,7 @@ public class ResourceEditTests
{
using var logger = _output.BuildLoggerFor<ResourceEditTests>();
using var _1 = Utility.GetTempFileName(out var tempFile);
using var _1 = TempUtil.GetTempFileName(out var tempFile);
CreateTestPEFileWithoutRsrc(tempFile);
var edit = new ResourceEdit(tempFile, logger);
@@ -81,7 +82,7 @@ public class ResourceEditTests
{
using var logger = _output.BuildLoggerFor<ResourceEditTests>();
using var _1 = Utility.GetTempFileName(out var tempFile);
using var _1 = TempUtil.GetTempFileName(out var tempFile);
var exe = PathHelper.GetFixture("SquirrelAwareTweakedNetCoreApp.exe");
File.Copy(exe, tempFile);
@@ -98,7 +99,7 @@ public class ResourceEditTests
{
using var logger = _output.BuildLoggerFor<ResourceEditTests>();
using var _1 = Utility.GetTempFileName(out var tempFile);
using var _1 = TempUtil.GetTempFileName(out var tempFile);
var exe = PathHelper.GetFixture("atom.exe");
File.Copy(exe, tempFile);
@@ -125,7 +126,7 @@ public class ResourceEditTests
{
using var logger = _output.BuildLoggerFor<ResourceEditTests>();
using var _1 = Utility.GetTempFileName(out var tempFile);
using var _1 = TempUtil.GetTempFileName(out var tempFile);
CreateTestPEFileWithoutRsrc(tempFile);
var beforeRsrc = PEImage.FromFile(PEFile.FromFile(tempFile)).Resources;
@@ -146,7 +147,7 @@ public class ResourceEditTests
public void SetVersionInfoWithPreExistingRsrc()
{
using var logger = _output.BuildLoggerFor<ResourceEditTests>();
using var _1 = Utility.GetTempFileName(out var tempFile);
using var _1 = TempUtil.GetTempFileName(out var tempFile);
var exe = PathHelper.GetFixture("atom.exe");
File.Copy(exe, tempFile);
@@ -165,7 +166,7 @@ public class ResourceEditTests
public void SetVersionInfoWithoutRsrc()
{
using var logger = _output.BuildLoggerFor<ResourceEditTests>();
using var _1 = Utility.GetTempFileName(out var tempFile);
using var _1 = TempUtil.GetTempFileName(out var tempFile);
CreateTestPEFileWithoutRsrc(tempFile);
var nuspec = PathHelper.GetFixture("FullNuspec.nuspec");

View File

@@ -1,6 +1,7 @@
using NuGet.Versioning;
using Velopack.Deployment;
using Velopack.Sources;
using Velopack.Util;
namespace Velopack.Packaging.Tests;
@@ -23,7 +24,7 @@ public class S3DeploymentTests
{
Skip.If(String.IsNullOrWhiteSpace(B2_SECRET), "VELOPACK_B2_TEST_TOKEN is not set.");
using var logger = _output.BuildLoggerFor<S3DeploymentTests>();
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
string channel = String.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("CI"))
? VelopackRuntimeInfo.SystemOs.GetOsShortName()

View File

@@ -1,7 +1,6 @@
using System.Text.Json.Serialization;
using System.Text.Json;
using NuGet.Versioning;
using Velopack.Json;
using Velopack.Packaging;
using Velopack.Sources;
using JsonPropertyNameAttribute = System.Text.Json.Serialization.JsonPropertyNameAttribute;

View File

@@ -1,6 +1,7 @@
using System.Diagnostics;
using Velopack.Packaging.Unix.Commands;
using Velopack.Packaging.Windows.Commands;
using Velopack.Util;
using Velopack.Vpk;
using Velopack.Vpk.Logging;

View File

@@ -8,6 +8,7 @@ using Velopack.Compression;
using Velopack.Packaging.Commands;
using Velopack.Packaging.Exceptions;
using Velopack.Packaging.Windows.Commands;
using Velopack.Util;
using Velopack.Vpk;
using Velopack.Vpk.Logging;
using Velopack.Windows;
@@ -37,9 +38,9 @@ public class WindowsPackTests
using var logger = _output.BuildLoggerFor<WindowsPackTests>();
using var _1 = Utility.GetTempDirectory(out var tmpOutput);
using var _2 = Utility.GetTempDirectory(out var tmpReleaseDir);
using var _3 = Utility.GetTempDirectory(out var unzipDir);
using var _1 = TempUtil.GetTempDirectory(out var tmpOutput);
using var _2 = TempUtil.GetTempDirectory(out var tmpReleaseDir);
using var _3 = TempUtil.GetTempDirectory(out var unzipDir);
var exe = "testapp.exe";
var pdb = Path.ChangeExtension(exe, ".pdb");
@@ -106,8 +107,8 @@ public class WindowsPackTests
using var logger = _output.BuildLoggerFor<WindowsPackTests>();
using var _1 = Utility.GetTempDirectory(out var tmpOutput);
using var _2 = Utility.GetTempDirectory(out var tmpReleaseDir);
using var _1 = TempUtil.GetTempDirectory(out var tmpOutput);
using var _2 = TempUtil.GetTempDirectory(out var tmpReleaseDir);
var exe = "testapp.exe";
var pdb = Path.ChangeExtension(exe, ".pdb");
@@ -139,8 +140,8 @@ public class WindowsPackTests
using var logger = _output.BuildLoggerFor<WindowsPackTests>();
using var _1 = Utility.GetTempDirectory(out var tmpOutput);
using var _2 = Utility.GetTempDirectory(out var tmpReleaseDir);
using var _1 = TempUtil.GetTempDirectory(out var tmpOutput);
using var _2 = TempUtil.GetTempDirectory(out var tmpReleaseDir);
var exe = "testapp.exe";
var pdb = Path.ChangeExtension(exe, ".pdb");
@@ -177,9 +178,9 @@ public class WindowsPackTests
using var logger = _output.BuildLoggerFor<WindowsPackTests>();
using var _1 = Utility.GetTempDirectory(out var tmpOutput);
using var _2 = Utility.GetTempDirectory(out var tmpReleaseDir);
using var _3 = Utility.GetTempDirectory(out var tmpInstallDir);
using var _1 = TempUtil.GetTempDirectory(out var tmpOutput);
using var _2 = TempUtil.GetTempDirectory(out var tmpReleaseDir);
using var _3 = TempUtil.GetTempDirectory(out var tmpInstallDir);
var exe = "testapp.exe";
var pdb = Path.ChangeExtension(exe, ".pdb");
@@ -260,8 +261,8 @@ public class WindowsPackTests
{
Skip.IfNot(VelopackRuntimeInfo.IsWindows);
using var logger = _output.BuildLoggerFor<WindowsPackTests>();
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _2 = Utility.GetTempDirectory(out var installDir);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
using var _2 = TempUtil.GetTempDirectory(out var installDir);
string id = "SquirrelAutoUpdateTest";
var appPath = Path.Combine(installDir, "current", "TestApp.exe");
@@ -293,7 +294,7 @@ public class WindowsPackTests
[SkippableFact]
public void TestPackGeneratesValidDelta()
{
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
Skip.IfNot(VelopackRuntimeInfo.IsWindows);
using var logger = _output.BuildLoggerFor<WindowsPackTests>();
string id = "SquirrelDeltaTest";
@@ -304,7 +305,7 @@ public class WindowsPackTests
// did a zsdiff get created for our v2 update?
var deltaPath = Path.Combine(releaseDir, $"{id}-2.0.0-delta.nupkg");
Assert.True(File.Exists(deltaPath));
using var _2 = Utility.GetTempDirectory(out var extractDir);
using var _2 = TempUtil.GetTempDirectory(out var extractDir);
EasyZip.ExtractZipToDirectory(logger, deltaPath, extractDir);
var extractDllDiff = Path.Combine(extractDir, "lib", "app", "testapp.dll.zsdiff");
var extractDllShasum = Path.Combine(extractDir, "lib", "app", "testapp.dll.shasum");
@@ -366,8 +367,8 @@ public class WindowsPackTests
{
Skip.IfNot(VelopackRuntimeInfo.IsWindows);
using var logger = _output.BuildLoggerFor<WindowsPackTests>();
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _2 = Utility.GetTempDirectory(out var installDir);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
using var _2 = TempUtil.GetTempDirectory(out var installDir);
string id = "SquirrelHookTest";
var appPath = Path.Combine(installDir, "current", "TestApp.exe");
@@ -415,8 +416,8 @@ public class WindowsPackTests
{
Skip.IfNot(VelopackRuntimeInfo.IsWindows);
using var logger = _output.BuildLoggerFor<WindowsPackTests>();
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _2 = Utility.GetTempDirectory(out var installDir);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
using var _2 = TempUtil.GetTempDirectory(out var installDir);
string id = "SquirrelIntegrationTest";
@@ -507,7 +508,7 @@ public class WindowsPackTests
var rootDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "LegacyTestApp");
if (Directory.Exists(rootDir)) {
Utility.Retry(() => Utility.DeleteFileOrDirectoryHard(rootDir), 10, 1000);
IoUtil.Retry(() => IoUtil.DeleteFileOrDirectoryHard(rootDir), 10, 1000);
}
var setup = PathHelper.GetFixture(fixture);
@@ -520,7 +521,7 @@ public class WindowsPackTests
Assert.True(File.Exists(appExe));
Assert.True(File.Exists(updateExe));
using var _1 = Utility.GetTempDirectory(out var releaseDir);
using var _1 = TempUtil.GetTempDirectory(out var releaseDir);
PackTestApp("LegacyTestApp", "2.0.0", "hello!", releaseDir, logger);
RunNoCoverage(appExe, new string[] { "download", releaseDir }, currentDir, logger, exitCode: 0);
@@ -612,7 +613,7 @@ public class WindowsPackTests
logger.Info($"TEST: Process exited with code {p.ExitCode} in {elapsed.TotalSeconds}s");
using var fs = Utility.Retry(() => {
using var fs = IoUtil.Retry(() => {
return File.Open(outputFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None);
}, 10, 1000, logger);