From c53e9ea49dd2e8a6a4d21ef1fb79f37f46c46c46 Mon Sep 17 00:00:00 2001 From: Paul Betts Date: Thu, 21 Aug 2014 14:21:51 -0700 Subject: [PATCH] Verify full uninstall works --- test/ApplyReleasesTests.cs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/test/ApplyReleasesTests.cs b/test/ApplyReleasesTests.cs index c145df50..0ee199a6 100644 --- a/test/ApplyReleasesTests.cs +++ b/test/ApplyReleasesTests.cs @@ -94,6 +94,44 @@ namespace Squirrel.Tests } } + [Fact] + public async Task FullUninstallRemovesAllVersions() + { + string tempDir; + string remotePkgDir; + + using (Utility.WithTempDirectory(out tempDir)) + using (Utility.WithTempDirectory(out remotePkgDir)) { + IntegrationTestHelper.CreateFakeInstalledApp("0.1.0", remotePkgDir); + var pkgs = ReleaseEntry.BuildReleasesFile(remotePkgDir); + ReleaseEntry.WriteReleaseFile(pkgs, Path.Combine(remotePkgDir, "RELEASES")); + + using (var fixture = new UpdateManager(remotePkgDir, "theApp", FrameworkVersion.Net45, tempDir)) { + await fixture.FullInstall(); + } + + await Task.Delay(1000); + + IntegrationTestHelper.CreateFakeInstalledApp("0.2.0", remotePkgDir); + pkgs = ReleaseEntry.BuildReleasesFile(remotePkgDir); + ReleaseEntry.WriteReleaseFile(pkgs, Path.Combine(remotePkgDir, "RELEASES")); + + using (var fixture = new UpdateManager(remotePkgDir, "theApp", FrameworkVersion.Net45, tempDir)) { + await fixture.UpdateApp(); + } + + await Task.Delay(1000); + + using (var fixture = new UpdateManager(remotePkgDir, "theApp", FrameworkVersion.Net45, tempDir)) { + await fixture.FullUninstall(); + } + + Assert.False(File.Exists(Path.Combine(tempDir, "theApp", "app-0.1.0", "args.txt"))); + Assert.False(File.Exists(Path.Combine(tempDir, "theApp", "app-0.2.0", "args.txt"))); + Assert.False(Directory.Exists(Path.Combine(tempDir, "theApp"))); + } + } + [Fact] public void WhenNoNewReleasesAreAvailableTheListIsEmpty() {