Remove Msft.Logging from C# lib

This commit is contained in:
Caelan Sayler
2025-03-03 10:46:36 +00:00
committed by Caelan
parent fd96504ff4
commit 60890b7bba
63 changed files with 789 additions and 395 deletions

View File

@@ -1,19 +0,0 @@
using Microsoft.Extensions.Logging;
class ConsoleLogger : ILogger
{
public IDisposable BeginScope<TState>(TState state) where TState : notnull
{
return null;
}
public bool IsEnabled(LogLevel logLevel)
{
return true;
}
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
{
Console.WriteLine(formatter(state, exception));
}
}

View File

@@ -2,6 +2,9 @@
using System.Diagnostics;
using Velopack;
using Velopack.Locators;
using Velopack.Logging;
var locator = VelopackLocator.CreateDefaultForPlatform(new ConsoleVelopackLogger());
try {
bool shouldExit = false;
@@ -14,21 +17,24 @@ try {
#if !NO_VELO_BUILDER
VelopackApp.Build()
.SetAutoApplyOnStartup(shouldAutoUpdate)
.WithFirstRun((v) => {
debugFile("firstrun", v.ToString());
Console.WriteLine("was first run");
shouldExit = true;
})
.WithRestarted((v) => {
debugFile("restarted", v.ToString() + "," + String.Join(",", args));
Console.WriteLine("app just restarted");
shouldExit = true;
})
.WithAfterInstallFastCallback((v) => debugFile("args.txt", String.Join(" ", args)))
.WithBeforeUpdateFastCallback((v) => debugFile("args.txt", String.Join(" ", args)))
.WithAfterUpdateFastCallback((v) => debugFile("args.txt", String.Join(" ", args)))
.WithBeforeUninstallFastCallback((v) => debugFile("args.txt", String.Join(" ", args)))
.Run(new ConsoleLogger());
.OnFirstRun(
(v) => {
debugFile("firstrun", v.ToString());
Console.WriteLine("was first run");
shouldExit = true;
})
.OnRestarted(
(v) => {
debugFile("restarted", v.ToString() + "," + String.Join(",", args));
Console.WriteLine("app just restarted");
shouldExit = true;
})
.SetLocator(locator)
.OnAfterInstallFastCallback((v) => debugFile("args.txt", String.Join(" ", args)))
.OnBeforeUpdateFastCallback((v) => debugFile("args.txt", String.Join(" ", args)))
.OnAfterUpdateFastCallback((v) => debugFile("args.txt", String.Join(" ", args)))
.OnBeforeUninstallFastCallback((v) => debugFile("args.txt", String.Join(" ", args)))
.Run();
if (shouldAutoUpdate) {
// this shouldn't be reached
@@ -41,7 +47,6 @@ try {
#endif
if (args.Length == 1 && args[0] == "version") {
var locator = VelopackLocator.GetDefault(new ConsoleLogger());
Console.WriteLine(locator.CurrentlyInstalledVersion?.ToString() ?? "unknown_version");
return 0;
}
@@ -53,7 +58,7 @@ try {
if (args.Length == 2) {
if (args[0] == "check") {
var um = new UpdateManager(args[1], null, new ConsoleLogger());
var um = new UpdateManager(args[1], null, locator);
var info = um.CheckForUpdates();
if (info == null) {
Console.WriteLine("no updates");
@@ -65,28 +70,29 @@ try {
}
if (args[0] == "download") {
var um = new UpdateManager(args[1], null, new ConsoleLogger());
var um = new UpdateManager(args[1], null, locator);
var info = um.CheckForUpdates();
if (info == null) {
Console.WriteLine("no updates");
return -1;
}
um.DownloadUpdates(info, (x) => Console.WriteLine(x));
return 0;
}
if (args[0] == "apply") {
var um = new UpdateManager(args[1], null, new ConsoleLogger());
var um = new UpdateManager(args[1], null, locator);
if (um.UpdatePendingRestart == null) {
Console.WriteLine("not pending restart");
return -1;
}
Console.WriteLine("applying...");
um.ApplyUpdatesAndRestart((VelopackAsset) null, new[] { "test", "args !!" });
return 0;
}
}
} catch (Exception ex) {
Console.WriteLine("exception: " + ex.ToString());
if (Debugger.IsAttached) throw;
@@ -100,4 +106,4 @@ void debugFile(string name, string message)
{
var path = Path.Combine(AppContext.BaseDirectory, "..", name);
File.AppendAllText(path, message + Environment.NewLine);
}
}

View File

@@ -1,6 +1,8 @@
using Azure.Storage.Blobs;
using NuGet.Versioning;
using Velopack.Core;
using Velopack.Deployment;
using Velopack.Locators;
using Velopack.Sources;
using Velopack.Util;
@@ -92,8 +94,9 @@ public class DeploymentTests
// get the latest
var source = new SimpleWebSource(updateUrl);
VelopackAssetFeed feed = new VelopackAssetFeed();
try {
feed = await source.GetReleaseFeed(logger, CHANNEL);
feed = await source.GetReleaseFeed(logger.ToVelopackLogger(), null, CHANNEL);
} catch (Exception ex) {
logger.Warn(ex, "Failed to fetch release feed.");
}
@@ -116,7 +119,7 @@ public class DeploymentTests
await repo.UploadMissingAssetsAsync(options);
// verify that new version has been uploaded
feed = await source.GetReleaseFeed(logger, CHANNEL);
feed = await source.GetReleaseFeed(logger.ToVelopackLogger(), null, CHANNEL);
latestOnline = feed.Assets.Where(a => a.Version != null && a.Type == VelopackAssetType.Full).MaxBy(a => a.Version);
Assert.True(latestOnline != null, "No latest version found.");

View File

@@ -173,7 +173,7 @@ This is just a _test_!
// update
var source = new GiteaSource(GITEA_REPOURL, GITEA_TOKEN, false);
var releases = source.GetReleaseFeed(channel: uniqueSuffix, logger: logger).GetAwaiterResult();
var releases = source.GetReleaseFeed(logger.ToVelopackLogger(), null, channel: uniqueSuffix).GetAwaiterResult();
var ghrel = releases.Assets.Select(r => (GiteaSource.GitBaseAsset) r).ToArray();
foreach (var g in ghrel) {

View File

@@ -2,6 +2,7 @@
using Velopack.Sources;
using Octokit;
using Velopack.Core;
using Velopack.Locators;
using Velopack.Packaging.Exceptions;
using Velopack.Util;
@@ -167,7 +168,7 @@ public class GithubDeploymentTests
// update
var source = new GithubSource(GITHUB_REPOURL, GITHUB_TOKEN, false);
var releases = source.GetReleaseFeed(channel: uniqueSuffix, logger: logger).GetAwaiterResult();
var releases = source.GetReleaseFeed(logger.ToVelopackLogger(), null, channel: uniqueSuffix).GetAwaiterResult();
var ghrel = releases.Assets.Select(r => (GithubSource.GitBaseAsset) r).ToArray();
foreach (var g in ghrel) {

View File

@@ -1,5 +1,6 @@
using System.Runtime.Versioning;
using Velopack.Compression;
using Velopack.Core;
using Velopack.Util;
namespace Velopack.Packaging.Tests;
@@ -32,7 +33,7 @@ public class OsxPackTests
TestApp.PackTestApp(id, "0.0.1", string.Empty, tmpReleaseDir, logger, channel: channel, packTitle: title);
var portablePath = Path.Combine(tmpReleaseDir, $"{id}-{channel}-Portable.zip");
EasyZip.ExtractZipToDirectory(logger, portablePath, unzipDir);
EasyZip.ExtractZipToDirectory(logger.ToVelopackLogger(), portablePath, unzipDir);
var bundlePath = Path.Combine(unzipDir, $"{title}.app");
Assert.True(Directory.Exists(bundlePath));

View File

@@ -1,5 +1,6 @@
#nullable enable
using System.Diagnostics;
using Velopack.Core;
using Velopack.Packaging.Unix.Commands;
using Velopack.Packaging.Windows.Commands;
using Velopack.Util;

View File

@@ -79,7 +79,7 @@ public class WindowsPackTests
var releasesPath2 = Path.Combine(tmpReleaseDir, $"releases.asd123.json");
Assert.True(File.Exists(releasesPath2));
EasyZip.ExtractZipToDirectory(logger, nupkgPath, unzipDir);
EasyZip.ExtractZipToDirectory(logger.ToVelopackLogger(), nupkgPath, unzipDir);
// does nuspec exist and is it valid
var nuspecPath = Path.Combine(unzipDir, $"{id}.nuspec");
@@ -310,7 +310,7 @@ public class WindowsPackTests
var deltaPath = Path.Combine(releaseDir, $"{id}-2.0.0-delta.nupkg");
Assert.True(File.Exists(deltaPath));
using var _2 = TempUtil.GetTempDirectory(out var extractDir);
EasyZip.ExtractZipToDirectory(logger, deltaPath, extractDir);
EasyZip.ExtractZipToDirectory(logger.ToVelopackLogger(), deltaPath, extractDir);
var extractDllDiff = Path.Combine(extractDir, "lib", "app", "testapp.dll.zsdiff");
var extractDllShasum = Path.Combine(extractDir, "lib", "app", "testapp.dll.shasum");
Assert.True(File.Exists(extractDllDiff));
@@ -659,7 +659,7 @@ public class WindowsPackTests
() => {
return File.ReadAllText(path);
},
logger: logger,
logger: logger.ToVelopackLogger(),
retries: 10,
retryDelay: 1000);
}
@@ -730,7 +730,7 @@ public class WindowsPackTests
},
10,
1000,
logger);
logger.ToVelopackLogger());
using var reader = new StreamReader(fs);
var output = reader.ReadToEnd();

View File

@@ -1,5 +1,6 @@
#pragma warning disable CS0618 // Type or member is obsolete
using System.Runtime.Versioning;
using Velopack.Core;
using Velopack.Locators;
using Velopack.Util;
using Velopack.Windows;
@@ -29,8 +30,16 @@ public class ShortcutTests
PathHelper.CopyFixtureTo("AvaloniaCrossPlat-1.0.15-win-full.nupkg", packages.FullName);
PathHelper.CopyFixtureTo(exeName, current.FullName);
var locator = new TestVelopackLocator("AvaloniaCrossPlat", "1.0.0", packages.FullName, current.FullName, rootDir, null, null, logger);
var sh = new Shortcuts(logger, locator);
var locator = new TestVelopackLocator(
"AvaloniaCrossPlat",
"1.0.0",
packages.FullName,
current.FullName,
rootDir,
null,
null,
logger.ToVelopackLogger());
var sh = new Shortcuts(locator);
var flag = ShortcutLocation.StartMenuRoot | ShortcutLocation.Desktop;
sh.DeleteShortcuts(exeName, flag);
sh.CreateShortcut(exeName, flag, false, "");
@@ -54,4 +63,4 @@ public class ShortcutTests
var after = sh.FindShortcuts(exeName, flag);
Assert.Equal(0, after.Keys.Count);
}
}
}

View File

@@ -2,6 +2,7 @@
using System.IO.Compression;
using NCode.ReparsePoints;
using Velopack.Compression;
using Velopack.Logging;
using Velopack.Util;
namespace Velopack.Tests;
@@ -247,7 +248,7 @@ public class SymbolicLinkTests
using var _2 = TempUtil.GetTempDirectory(out var tempOutput);
var output = Path.Combine(tempOutput, "output.zip");
await EasyZip.CreateZipFromDirectoryAsync(NullLogger.Instance, output, tempFolder);
await EasyZip.CreateZipFromDirectoryAsync(NullVelopackLogger.Instance, output, tempFolder);
ZipFile.ExtractToDirectory(output, tempOutput);
var appSym = Path.Combine(tempOutput, "App.__symlink");

View File

@@ -2,6 +2,7 @@
#pragma warning disable CS0612 // Type or member is obsolete
using System.Text;
using Velopack.Core;
using Velopack.Logging;
using Velopack.Sources;
using Velopack.Util;
@@ -25,7 +26,7 @@ internal class FakeFixtureRepository : IFileDownloader
.ToList();
var releasesNew = new SimpleFileSource(new DirectoryInfo(PathHelper.GetFixturesDir()))
.GetReleaseFeed(NullLogger.Instance, null).GetAwaiterResult().Assets
.GetReleaseFeed(NullVelopackLogger.Instance, null, null).GetAwaiterResult().Assets
.Where(r => r.FileName.StartsWith(_pkgId))
.ToList();

View File

@@ -49,7 +49,7 @@ public class UpdateManagerTests
{
var feed = new VelopackAssetFeed {
Assets = new VelopackAsset[] {
new VelopackAsset() {
new VelopackAsset() {
PackageId = "MyCoolApp",
Version = new SemanticVersion(1, 1, 0),
Type = VelopackAssetType.Full,
@@ -81,7 +81,7 @@ public class UpdateManagerTests
SHA1 = "14db31d2647c6d2284882a2e101924a9c409ee67",
Size = 80396,
},
new VelopackAsset() {
new VelopackAsset() {
PackageId = "MyCoolApp",
Version = new SemanticVersion(1, 2, 0),
Type = VelopackAssetType.Delta,
@@ -111,22 +111,24 @@ public class UpdateManagerTests
using var logger = _output.BuildLoggerFor<UpdateManagerTests>();
using var _1 = TempUtil.GetTempDirectory(out var tempPath);
var dl = new FakeDownloader() {
MockedResponseBytes = Encoding.UTF8.GetBytes(SimpleJson.SerializeObject(
new VelopackAssetFeed {
Assets = new VelopackAsset[] {
new VelopackAsset() {
PackageId = "AvaloniaCrossPlat",
Version = new SemanticVersion(1, 0, 11),
Type = VelopackAssetType.Full,
FileName = $"https://mysite.com/releases/AvaloniaCrossPlat$-1.1.0.nupkg",
SHA1 = IoUtil.CalculateFileSHA1(fixture),
Size = new FileInfo(fixture).Length,
} }
}))
MockedResponseBytes = Encoding.UTF8.GetBytes(
SimpleJson.SerializeObject(
new VelopackAssetFeed {
Assets = new VelopackAsset[] {
new VelopackAsset() {
PackageId = "AvaloniaCrossPlat",
Version = new SemanticVersion(1, 0, 11),
Type = VelopackAssetType.Full,
FileName = $"https://mysite.com/releases/AvaloniaCrossPlat$-1.1.0.nupkg",
SHA1 = IoUtil.CalculateFileSHA1(fixture),
Size = new FileInfo(fixture).Length,
}
}
}))
};
var source = new SimpleWebSource("http://any.com", dl);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger.ToVelopackLogger());
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.NotNull(info);
Assert.True(new SemanticVersion(1, 0, 11) == info.TargetFullRelease.Version);
@@ -150,8 +152,8 @@ public class UpdateManagerTests
using var _1 = TempUtil.GetTempDirectory(out var tempPath);
var dl = GetMockDownloaderNoDelta();
var source = new SimpleWebSource("http://any.com", dl);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger.ToVelopackLogger());
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.NotNull(info);
Assert.True(new SemanticVersion(1, 1, 0) == info.TargetFullRelease.Version);
@@ -167,9 +169,9 @@ public class UpdateManagerTests
using var _1 = TempUtil.GetTempDirectory(out var tempPath);
var dl = GetMockDownloaderNoDelta();
var source = new SimpleWebSource("http://any.com", dl);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger.ToVelopackLogger());
var opt = new UpdateOptions { ExplicitChannel = "experimental" };
var um = new UpdateManager(source, opt, logger, locator);
var um = new UpdateManager(source, opt, locator);
var info = um.CheckForUpdates();
Assert.NotNull(info);
Assert.True(new SemanticVersion(1, 1, 0) == info.TargetFullRelease.Version);
@@ -193,23 +195,32 @@ public class UpdateManagerTests
Size = 1040561,
};
var source = new SimpleWebSource("http://any.com", dl);
var locator = new TestVelopackLocator("MyCoolApp", "1.2.0", tempPath, null, null, null, logger: logger, localPackage: myVer, channel: "stable");
var locator = new TestVelopackLocator(
"MyCoolApp",
"1.2.0",
tempPath,
null,
null,
null,
logger: logger.ToVelopackLogger(),
localPackage: myVer,
channel: "stable");
// checking for same version should return null
var um = new UpdateManager(source, null, logger, locator);
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.Null(info);
Assert.StartsWith("http://any.com/releases.stable.json?", dl.LastUrl);
// checking for same version WITHOUT explicit channel should return null
var opt = new UpdateOptions { AllowVersionDowngrade = true };
um = new UpdateManager(source, opt, logger, locator);
um = new UpdateManager(source, opt, locator);
Assert.Null(info);
Assert.StartsWith("http://any.com/releases.stable.json?", dl.LastUrl);
// checking for same version with explicit channel & downgrade allowed should return version
opt = new UpdateOptions { ExplicitChannel = "experimental", AllowVersionDowngrade = true };
um = new UpdateManager(source, opt, logger, locator);
um = new UpdateManager(source, opt, locator);
info = um.CheckForUpdates();
Assert.True(info.IsDowngrade);
Assert.NotNull(info);
@@ -233,17 +244,26 @@ public class UpdateManagerTests
Size = 1040561,
};
var source = new SimpleWebSource("http://any.com", dl);
var locator = new TestVelopackLocator("MyCoolApp", "2.0.0", tempPath, null, null, null, logger: logger, localPackage: myVer, channel: "stable");
var locator = new TestVelopackLocator(
"MyCoolApp",
"2.0.0",
tempPath,
null,
null,
null,
logger: logger.ToVelopackLogger(),
localPackage: myVer,
channel: "stable");
// checking for lower version should return null
var um = new UpdateManager(source, null, logger, locator);
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.Null(info);
Assert.StartsWith("http://any.com/releases.stable.json?", dl.LastUrl);
// checking for lower version with downgrade allowed should return lower version
var opt = new UpdateOptions { AllowVersionDowngrade = true };
um = new UpdateManager(source, opt, logger, locator);
um = new UpdateManager(source, opt, locator);
info = um.CheckForUpdates();
Assert.True(info.IsDowngrade);
Assert.NotNull(info);
@@ -268,8 +288,8 @@ public class UpdateManagerTests
};
var source = new SimpleWebSource("http://any.com", dl);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, null, null, null, logger: logger, localPackage: myVer);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, null, null, null, logger: logger.ToVelopackLogger(), localPackage: myVer);
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.False(info.IsDowngrade);
Assert.NotNull(info);
@@ -287,8 +307,8 @@ public class UpdateManagerTests
using var _1 = TempUtil.GetTempDirectory(out var packagesDir);
var repo = new FakeFixtureRepository(id, false);
var source = new SimpleWebSource("http://any.com", repo);
var locator = new TestVelopackLocator(id, "1.0.0", packagesDir, logger);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator(id, "1.0.0", packagesDir, logger.ToVelopackLogger());
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.NotNull(info);
@@ -298,7 +318,7 @@ public class UpdateManagerTests
string actualHash = info.TargetFullRelease.SHA256;
string modifiedHash = info.TargetFullRelease.SHA256.ToLowerInvariant();
info.TargetFullRelease.SHA256 = modifiedHash;
var ex = Assert.Throws<ChecksumFailedException>(() => um.DownloadUpdates(info));
Assert.Contains("SHA256 doesn't match", ex.Message);
@@ -321,8 +341,8 @@ public class UpdateManagerTests
using var _1 = TempUtil.GetTempDirectory(out var packagesDir);
var repo = new FakeFixtureRepository(id, false);
var source = new SimpleWebSource("http://any.com", repo);
var locator = new TestVelopackLocator(id, "1.0.0", packagesDir, logger);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator(id, "1.0.0", packagesDir, logger.ToVelopackLogger());
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.NotNull(info);
@@ -352,8 +372,8 @@ public class UpdateManagerTests
using var _1 = TempUtil.GetTempDirectory(out var tempPath);
var dl = GetMockDownloaderWith2Delta();
var source = new SimpleWebSource("http://any.com", dl);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger: logger);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger: logger.ToVelopackLogger());
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.NotNull(info);
Assert.False(info.IsDowngrade);
@@ -368,8 +388,8 @@ public class UpdateManagerTests
using var _1 = TempUtil.GetTempDirectory(out var tempPath);
var dl = GetMockDownloaderWith2Delta();
var source = new SimpleWebSource("http://any.com", dl);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger: logger);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger: logger.ToVelopackLogger());
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.NotNull(info);
Assert.False(info.IsDowngrade);
@@ -383,48 +403,51 @@ public class UpdateManagerTests
// https://github.com/caesay/SquirrelCustomLauncherTestApp
using var logger = _output.BuildLoggerFor<UpdateManagerTests>();
using var _1 = TempUtil.GetTempDirectory(out var tempPath);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger.ToVelopackLogger());
var source = new GithubSource("https://github.com/caesay/SquirrelCustomLauncherTestApp", null, false);
var um = new UpdateManager(source, null, logger, locator);
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.NotNull(info);
Assert.True(new SemanticVersion(1, 0, 1) == info.TargetFullRelease.Version);
Assert.Equal(0, info.DeltasToTarget.Count());
}
[Fact(Skip = "Consumes API Quota")]
public void CheckGithubWithNonExistingChannel()
{
// https://github.com/caesay/SquirrelCustomLauncherTestApp
using var logger = _output.BuildLoggerFor<UpdateManagerTests>();
using var _1 = TempUtil.GetTempDirectory(out var tempPath);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger.ToVelopackLogger());
var source = new GithubSource("https://github.com/caesay/SquirrelCustomLauncherTestApp", null, false);
var opt = new UpdateOptions { ExplicitChannel = "hello" };
var um = new UpdateManager(source, opt, logger, locator);
var um = new UpdateManager(source, opt, locator);
Assert.Throws<ArgumentException>(() => um.CheckForUpdates());
}
[Fact(Skip = "Consumes API Quota")]
public void CheckGitea()
{
// https://github.com/caesay/SquirrelCustomLauncherTestApp
using var logger = _output.BuildLoggerFor<UpdateManagerTests>();
using var _1 = TempUtil.GetTempDirectory(out var tempPath);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger.ToVelopackLogger());
var source = new GiteaSource("https://gitea.com/remco1271/VeloPackTest", null, false);
var um = new UpdateManager(source, null, logger, locator);
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.NotNull(info);
Assert.True(new SemanticVersion(1, 0, 1) == info.TargetFullRelease.Version);
Assert.Equal(0, info.DeltasToTarget.Count());
}
[Fact]
public void CheckFromEmptyFileSource()
{
using var logger = _output.BuildLoggerFor<UpdateManagerTests>();
using var _1 = TempUtil.GetTempDirectory(out var tempPath);
var source = new SimpleFileSource(new DirectoryInfo(tempPath));
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator("MyCoolApp", "1.0.0", tempPath, logger.ToVelopackLogger());
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.Null(info);
}
@@ -436,8 +459,8 @@ public class UpdateManagerTests
using var _1 = TempUtil.GetTempDirectory(out var tempPath);
var dl = GetMockDownloaderNoDelta();
var source = new SimpleWebSource("http://any.com", dl);
var locator = new TestVelopackLocator("MyCoolApp", "1.1.0", tempPath, logger);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator("MyCoolApp", "1.1.0", tempPath, logger.ToVelopackLogger());
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.Null(info);
}
@@ -449,8 +472,8 @@ public class UpdateManagerTests
using var _1 = TempUtil.GetTempDirectory(out var tempPath);
var dl = GetMockDownloaderNoDelta();
var source = new SimpleWebSource("http://any.com", dl);
var locator = new TestVelopackLocator("MyCoolApp", "1.2.0", tempPath, logger);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator("MyCoolApp", "1.2.0", tempPath, logger.ToVelopackLogger());
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.Null(info);
}
@@ -464,8 +487,8 @@ public class UpdateManagerTests
using var _1 = TempUtil.GetTempDirectory(out var packagesDir);
var repo = new FakeFixtureRepository(id, false);
var source = new SimpleWebSource("http://any.com", repo);
var locator = new TestVelopackLocator(id, "1.0.0", packagesDir, logger);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator(id, "1.0.0", packagesDir, logger.ToVelopackLogger());
var um = new UpdateManager(source, null, locator);
var info = um.CheckForUpdates();
Assert.NotNull(info);
@@ -490,7 +513,7 @@ public class UpdateManagerTests
var repo = new FakeFixtureRepository(id, true);
var source = new SimpleWebSource("http://any.com", repo);
var feed = await source.GetReleaseFeed(logger, VelopackRuntimeInfo.SystemOs.GetOsShortName());
var feed = await source.GetReleaseFeed(logger.ToVelopackLogger(), id, VelopackRuntimeInfo.SystemOs.GetOsShortName());
var basePkg = feed.Assets
.Where(x => x.Type == VelopackAssetType.Full)
.Single(x => x.Version == SemanticVersion.Parse(fromVersion));
@@ -499,9 +522,16 @@ public class UpdateManagerTests
File.Copy(basePkgFixturePath, basePkgPath);
var updateExe = PathHelper.CopyUpdateTo(packagesDir);
var locator = new TestVelopackLocator(id, fromVersion,
packagesDir, null, null, updateExe, null, logger);
var um = new UpdateManager(source, null, logger, locator);
var locator = new TestVelopackLocator(
id,
fromVersion,
packagesDir,
null,
null,
updateExe,
null,
logger.ToVelopackLogger());
var um = new UpdateManager(source, null, locator);
var info = await um.CheckForUpdatesAsync();
Assert.NotNull(info);
@@ -513,4 +543,4 @@ public class UpdateManagerTests
var target = Path.Combine(packagesDir, $"{id}-{toVersion}-full.nupkg");
Assert.True(File.Exists(target));
}
}
}

View File

@@ -2,6 +2,7 @@
using System.Runtime.Versioning;
using System.Security.Cryptography;
using System.Text;
using Velopack.Core;
using Velopack.Util;
using Velopack.Windows;

View File

@@ -19,11 +19,11 @@
</Choose>
<ItemGroup>
<Compile Include="..\..\src\vpk\Velopack.Core\SimpleJson.cs" Link="SimpleJson.cs" />
<PackageReference Include="System.IO.Packaging" Version="9.0.2"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.IO.Packaging" Version="9.0.2"/>
<ProjectReference Include="..\..\src\vpk\Velopack.Core\Velopack.Core.csproj"/>
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('net4')) ">
@@ -45,5 +45,5 @@
</ItemGroup>
</Otherwise>
</Choose>
</Project>

View File

@@ -1,5 +1,6 @@
using System.IO.Packaging;
using NuGet.Versioning;
using Velopack.Core;
using Velopack.NuGet;
using Velopack.Tests.TestHelpers;
using Velopack.Util;
@@ -38,8 +39,8 @@ public class ZipPackageTests
SymbolicLink.Create(symlink, actual);
SymbolicLink.Create(symfile, actualFile);
Compression.EasyZip.CreateZipFromDirectoryAsync(logger, zipFile, tempDir).GetAwaiterResult();
Compression.EasyZip.ExtractZipToDirectory(logger, zipFile, extractedDir, expandSymlinks: true);
Compression.EasyZip.CreateZipFromDirectoryAsync(logger.ToVelopackLogger(), zipFile, tempDir).GetAwaiterResult();
Compression.EasyZip.ExtractZipToDirectory(logger.ToVelopackLogger(), zipFile, extractedDir, expandSymlinks: true);
Assert.True(File.Exists(Path.Combine(extractedDir, "actual", "file.txt")));
Assert.Equal("hello", File.ReadAllText(Path.Combine(extractedDir, "actual", "file.txt")));