Clean up existing tests to use our new internal classes

This commit is contained in:
Paul Betts
2014-08-08 13:32:44 +02:00
parent cedb12266d
commit 41cfc64e9d
7 changed files with 68 additions and 88 deletions

View File

@@ -20,7 +20,7 @@ namespace Squirrel
/// will return values from 0-100 and Complete, or Throw</param>
/// <returns>An UpdateInfo object representing the updates to install.
/// </returns>
Task<UpdateInfo> CheckForUpdate(bool ignoreDeltaUpdates, Action<int> progress = null);
Task<UpdateInfo> CheckForUpdate(bool ignoreDeltaUpdates = false, Action<int> progress = null);
/// <summary>
/// Download a list of releases into the local package directory.

View File

@@ -13,7 +13,7 @@ namespace Squirrel
{
public sealed partial class UpdateManager
{
class ApplyReleasesImpl : IEnableLogger
internal class ApplyReleasesImpl : IEnableLogger
{
// TODO: Kill this entire concept
readonly FrameworkVersion appFrameworkVersion = FrameworkVersion.Net45;
@@ -309,7 +309,7 @@ namespace Squirrel
});
}
async Task updateLocalReleasesFile()
internal async Task updateLocalReleasesFile()
{
await Task.Run(() => ReleaseEntry.BuildReleasesFile(Utility.PackageDirectoryForAppDir(rootAppDirectory)));
}

View File

@@ -11,7 +11,7 @@ namespace Squirrel
{
public sealed partial class UpdateManager
{
class CheckForUpdateImpl : IEnableLogger
internal class CheckForUpdateImpl : IEnableLogger
{
readonly string rootAppDirectory;

View File

@@ -10,7 +10,7 @@ namespace Squirrel
{
public sealed partial class UpdateManager
{
class DownloadReleasesImpl : IEnableLogger
internal class DownloadReleasesImpl : IEnableLogger
{
readonly string rootAppDirectory;

View File

@@ -41,7 +41,7 @@ namespace Squirrel
this.urlDownloader = urlDownloader ?? new FileDownloader();
}
public async Task<UpdateInfo> CheckForUpdate(bool ignoreDeltaUpdates, Action<int> progress = null)
public async Task<UpdateInfo> CheckForUpdate(bool ignoreDeltaUpdates = false, Action<int> progress = null)
{
var checkForUpdate = new CheckForUpdateImpl(rootAppDirectory);

View File

@@ -90,7 +90,7 @@ namespace Squirrel.Tests
"Squirrel.Core.1.1.0.0-full.nupkg",
}.ForEach(x => File.Copy(IntegrationTestHelper.GetPath("fixtures", x), Path.Combine(packagesDir, x)));
var fixture = new UpdateManager("http://lol", "theApp", FrameworkVersion.Net40, tempDir, new FakeUrlDownloader());
var fixture = new UpdateManager.ApplyReleasesImpl(tempDir);
var baseEntry = ReleaseEntry.GenerateFromFile(Path.Combine(packagesDir, "Squirrel.Core.1.0.0.0-full.nupkg"));
var latestFullEntry = ReleaseEntry.GenerateFromFile(Path.Combine(packagesDir, "Squirrel.Core.1.1.0.0-full.nupkg"));
@@ -98,16 +98,14 @@ namespace Squirrel.Tests
var updateInfo = UpdateInfo.Create(baseEntry, new[] { latestFullEntry }, packagesDir, FrameworkVersion.Net40);
updateInfo.ReleasesToApply.Contains(latestFullEntry).ShouldBeTrue();
using (fixture) {
var progress = new List<int>();
var progress = new List<int>();
await fixture.ApplyReleases(updateInfo, progress.Add);
this.Log().Info("Progress: [{0}]", String.Join(",", progress));
await fixture.ApplyReleases(updateInfo, progress.Add);
this.Log().Info("Progress: [{0}]", String.Join(",", progress));
progress
.Aggregate(0, (acc, x) => { x.ShouldBeGreaterThan(acc); return x; })
.ShouldEqual(100);
}
progress
.Aggregate(0, (acc, x) => { x.ShouldBeGreaterThan(acc); return x; })
.ShouldEqual(100);
var filesToFind = new[] {
new {Name = "NLog.dll", Version = new Version("2.0.0.0")},
@@ -141,7 +139,7 @@ namespace Squirrel.Tests
"Squirrel.Core.1.2.0.0-full.nupkg",
}.ForEach(x => File.Copy(IntegrationTestHelper.GetPath("fixtures", x), Path.Combine(packagesDir, x)));
var fixture = new UpdateManager("http://lol", "theApp", FrameworkVersion.Net40, tempDir, new FakeUrlDownloader());
var fixture = new UpdateManager.ApplyReleasesImpl(tempDir);
var baseEntry = ReleaseEntry.GenerateFromFile(Path.Combine(packagesDir, "Squirrel.Core.1.1.0.0-full.nupkg"));
var latestFullEntry = ReleaseEntry.GenerateFromFile(Path.Combine(packagesDir, "Squirrel.Core.1.2.0.0-full.nupkg"));
@@ -149,15 +147,13 @@ namespace Squirrel.Tests
var updateInfo = UpdateInfo.Create(baseEntry, new[] { latestFullEntry }, packagesDir, FrameworkVersion.Net40);
updateInfo.ReleasesToApply.Contains(latestFullEntry).ShouldBeTrue();
using (fixture) {
var progress = new List<int>();
await fixture.ApplyReleases(updateInfo, progress.Add);
this.Log().Info("Progress: [{0}]", String.Join(",", progress));
var progress = new List<int>();
await fixture.ApplyReleases(updateInfo, progress.Add);
this.Log().Info("Progress: [{0}]", String.Join(",", progress));
progress
.Aggregate(0, (acc, x) => { x.ShouldBeGreaterThan(acc); return x; })
.ShouldEqual(100);
}
progress
.Aggregate(0, (acc, x) => { x.ShouldBeGreaterThan(acc); return x; })
.ShouldEqual(100);
var rootDirectory = Path.Combine(tempDir, "theApp", "app-1.2.0.0");
@@ -191,7 +187,7 @@ namespace Squirrel.Tests
"Squirrel.Core.1.3.0.0-full.nupkg",
}.ForEach(x => File.Copy(IntegrationTestHelper.GetPath("fixtures", x), Path.Combine(packagesDir, x)));
var fixture = new UpdateManager("http://lol", "theApp", FrameworkVersion.Net40, tempDir, new FakeUrlDownloader());
var fixture = new UpdateManager.ApplyReleasesImpl(tempDir);
var baseEntry = ReleaseEntry.GenerateFromFile(Path.Combine(packagesDir, "Squirrel.Core.1.1.0.0-full.nupkg"));
var latestFullEntry = ReleaseEntry.GenerateFromFile(Path.Combine(packagesDir, "Squirrel.Core.1.3.0.0-full.nupkg"));
@@ -199,15 +195,13 @@ namespace Squirrel.Tests
var updateInfo = UpdateInfo.Create(baseEntry, new[] { latestFullEntry }, packagesDir, FrameworkVersion.Net40);
updateInfo.ReleasesToApply.Contains(latestFullEntry).ShouldBeTrue();
using (fixture) {
var progress = new List<int>();
await fixture.ApplyReleases(updateInfo, progress.Add);
this.Log().Info("Progress: [{0}]", String.Join(",", progress));
var progress = new List<int>();
await fixture.ApplyReleases(updateInfo, progress.Add);
this.Log().Info("Progress: [{0}]", String.Join(",", progress));
progress
.Aggregate(0, (acc, x) => { x.ShouldBeGreaterThan(acc); return x; })
.ShouldEqual(100);
}
progress
.Aggregate(0, (acc, x) => { x.ShouldBeGreaterThan(acc); return x; })
.ShouldEqual(100);
var rootDirectory = Path.Combine(tempDir, "theApp", "app-1.3.0.0");
@@ -243,7 +237,7 @@ namespace Squirrel.Tests
"Squirrel.Core.1.1.0.0-full.nupkg",
}.ForEach(x => File.Copy(IntegrationTestHelper.GetPath("fixtures", x), Path.Combine(packagesDir, x)));
var fixture = new UpdateManager("http://lol", "theApp", FrameworkVersion.Net40, tempDir, new FakeUrlDownloader());
var fixture = new UpdateManager.ApplyReleasesImpl(tempDir);
var baseEntry = ReleaseEntry.GenerateFromFile(Path.Combine(packagesDir, "Squirrel.Core.1.0.0.0-full.nupkg"));
var deltaEntry = ReleaseEntry.GenerateFromFile(Path.Combine(packagesDir, "Squirrel.Core.1.1.0.0-delta.nupkg"));
@@ -252,16 +246,14 @@ namespace Squirrel.Tests
var updateInfo = UpdateInfo.Create(baseEntry, new[] { deltaEntry, latestFullEntry }, packagesDir, FrameworkVersion.Net40);
updateInfo.ReleasesToApply.Contains(deltaEntry).ShouldBeTrue();
using (fixture) {
var progress = new List<int>();
var progress = new List<int>();
await fixture.ApplyReleases(updateInfo, progress.Add);
this.Log().Info("Progress: [{0}]", String.Join(",", progress));
await fixture.ApplyReleases(updateInfo, progress.Add);
this.Log().Info("Progress: [{0}]", String.Join(",", progress));
progress
.Aggregate(0, (acc, x) => { x.ShouldBeGreaterThan(acc); return x; })
.ShouldEqual(100);
}
progress
.Aggregate(0, (acc, x) => { x.ShouldBeGreaterThan(acc); return x; })
.ShouldEqual(100);
var filesToFind = new[] {
new {Name = "NLog.dll", Version = new Version("2.0.0.0")},
@@ -294,17 +286,17 @@ namespace Squirrel.Tests
}.ForEach(x => File.Copy(IntegrationTestHelper.GetPath("fixtures", x), Path.Combine(tempDir, "theApp", "packages", x)));
var urlDownloader = new FakeUrlDownloader();
using (var fixture = new UpdateManager("http://lol", "theApp", FrameworkVersion.Net40, tempDir, urlDownloader)) {
var baseEntry = ReleaseEntry.GenerateFromFile(Path.Combine(tempDir, "theApp", "packages", "Squirrel.Core.1.0.0.0-full.nupkg"));
var deltaEntry = ReleaseEntry.GenerateFromFile(Path.Combine(tempDir, "theApp", "packages", "Squirrel.Core.1.1.0.0-delta.nupkg"));
var fixture = new UpdateManager.ApplyReleasesImpl(tempDir);
var resultObs = (Task<ReleaseEntry>)fixture.GetType().GetMethod("createFullPackagesFromDeltas", BindingFlags.NonPublic | BindingFlags.Instance)
.Invoke(fixture, new object[] { new[] {deltaEntry}, baseEntry });
var baseEntry = ReleaseEntry.GenerateFromFile(Path.Combine(tempDir, "theApp", "packages", "Squirrel.Core.1.0.0.0-full.nupkg"));
var deltaEntry = ReleaseEntry.GenerateFromFile(Path.Combine(tempDir, "theApp", "packages", "Squirrel.Core.1.1.0.0-delta.nupkg"));
var result = await resultObs;
var zp = new ZipPackage(Path.Combine(tempDir, "theApp", "packages", result.Filename));
zp.Version.ToString().ShouldEqual("1.1.0.0");
}
var resultObs = (Task<ReleaseEntry>)fixture.GetType().GetMethod("createFullPackagesFromDeltas", BindingFlags.NonPublic | BindingFlags.Instance)
.Invoke(fixture, new object[] { new[] {deltaEntry}, baseEntry });
var result = await resultObs;
var zp = new ZipPackage(Path.Combine(tempDir, "theApp", "packages", result.Filename));
zp.Version.ToString().ShouldEqual("1.1.0.0");
}
}
}

View File

@@ -27,11 +27,9 @@ namespace Squirrel.Tests
"Squirrel.Core.1.1.0.0-full.nupkg",
}.ForEach(x => File.Copy(IntegrationTestHelper.GetPath("fixtures", x), Path.Combine(tempDir, "theApp", "packages", x)));
var fixture = new UpdateManager("http://lol", "theApp", FrameworkVersion.Net40, tempDir, new FakeUrlDownloader());
var fixture = new UpdateManager.ApplyReleasesImpl(tempDir);
using (fixture) {
await fixture.UpdateLocalReleasesFile();
}
await fixture.updateLocalReleasesFile();
var releasePath = Path.Combine(packageDir.FullName, "RELEASES");
File.Exists(releasePath).ShouldBeTrue();
@@ -63,17 +61,16 @@ namespace Squirrel.Tests
File.Copy(path, Path.Combine(remotePackages, x));
});
var fixture = new UpdateManager(remotePackages, "theApp", FrameworkVersion.Net40, tempDir, new FakeUrlDownloader());
var fixture = new UpdateManager.ApplyReleasesImpl(tempDir);
// sync both release files
await fixture.updateLocalReleasesFile();
ReleaseEntry.BuildReleasesFile(remotePackages);
// check for an update
UpdateInfo updateInfo;
using (fixture)
{
// sync both release files
await fixture.UpdateLocalReleasesFile();
ReleaseEntry.BuildReleasesFile(remotePackages);
// check for an update
updateInfo = await fixture.CheckForUpdate();
using (var mgr = new UpdateManager(remotePackages, "theApp", FrameworkVersion.Net40, tempDir, new FakeUrlDownloader())) {
updateInfo = await mgr.CheckForUpdate();
}
Assert.NotNull(updateInfo);
@@ -111,17 +108,15 @@ namespace Squirrel.Tests
File.Copy(path, Path.Combine(remotePackages, x));
});
var fixture = new UpdateManager(remotePackages, "theApp", FrameworkVersion.Net40, tempDir, new FakeUrlDownloader());
var fixture = new UpdateManager.ApplyReleasesImpl(tempDir);
// sync both release files
await fixture.updateLocalReleasesFile();
ReleaseEntry.BuildReleasesFile(remotePackages);
UpdateInfo updateInfo;
using (fixture)
{
// sync both release files
await fixture.UpdateLocalReleasesFile();
ReleaseEntry.BuildReleasesFile(remotePackages);
// check for an update
updateInfo = await fixture.CheckForUpdate();
using (var mgr = new UpdateManager(remotePackages, "theApp", FrameworkVersion.Net40, tempDir, new FakeUrlDownloader())) {
updateInfo = await mgr.CheckForUpdate();
}
Assert.NotNull(updateInfo);
@@ -154,25 +149,21 @@ namespace Squirrel.Tests
File.Copy(path, Path.Combine(remotePackages, x));
});
var fixture = new UpdateManager(remotePackages, "theApp", FrameworkVersion.Net40, tempDir, new FakeUrlDownloader());
var fixture = new UpdateManager.ApplyReleasesImpl(tempDir);
UpdateInfo updateInfo;
using (fixture)
{
// sync both release files
await fixture.UpdateLocalReleasesFile();
ReleaseEntry.BuildReleasesFile(remotePackages);
updateInfo = await fixture.CheckForUpdate();
// sync both release files
await fixture.updateLocalReleasesFile();
ReleaseEntry.BuildReleasesFile(remotePackages);
using (var mgr = new UpdateManager(remotePackages, "theApp", FrameworkVersion.Net40, tempDir, new FakeUrlDownloader())) {
UpdateInfo updateInfo;
updateInfo = await mgr.CheckForUpdate();
Assert.True(updateInfo.ReleasesToApply.First().IsDelta);
updateInfo = await fixture.CheckForUpdate(ignoreDeltaUpdates: true);
updateInfo = await mgr.CheckForUpdate(ignoreDeltaUpdates: true);
Assert.False(updateInfo.ReleasesToApply.First().IsDelta);
}
}
}
[Fact]
@@ -220,11 +211,8 @@ namespace Squirrel.Tests
public async Task WhenUrlResultsInWebExceptionReturnNull()
{
// This should result in a WebException (which gets caught) unless you can actually access http://lol
var fixture = new UpdateManager("http://lol", "theApp", FrameworkVersion.Net45);
var updateInfo = await fixture.CheckForUpdate();
Assert.Null(updateInfo);
}
}