mirror of
https://github.com/velopack/velopack.git
synced 2025-10-25 15:19:22 +00:00
Remove Msft.Logging from C# lib
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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.");
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Runtime.Versioning;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using Velopack.Core;
|
||||
using Velopack.Util;
|
||||
using Velopack.Windows;
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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")));
|
||||
|
||||
Reference in New Issue
Block a user