aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolsetTest.BurnE2E/FailureTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolsetTest.BurnE2E/FailureTests.cs')
-rw-r--r--src/WixToolsetTest.BurnE2E/FailureTests.cs48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/WixToolsetTest.BurnE2E/FailureTests.cs b/src/WixToolsetTest.BurnE2E/FailureTests.cs
new file mode 100644
index 00000000..773c9dd0
--- /dev/null
+++ b/src/WixToolsetTest.BurnE2E/FailureTests.cs
@@ -0,0 +1,48 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolsetTest.BurnE2E
4{
5 using Xunit;
6 using Xunit.Abstractions;
7
8 public class FailureTests : BurnE2ETests
9 {
10 public FailureTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
11
12 [Fact]
13 public void CanCancelMsiPackageVeryEarly()
14 {
15 var packageA = this.CreatePackageInstaller("PackageA");
16 var packageB = this.CreatePackageInstaller("PackageB");
17 var bundleA = this.CreateBundleInstaller("BundleA");
18 var testBAController = this.CreateTestBAController();
19
20 // Cancel package B right away.
21 testBAController.SetPackageCancelExecuteAtProgress("PackageB", 1);
22
23 bundleA.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT);
24 bundleA.VerifyUnregisteredAndRemovedFromPackageCache();
25
26 packageA.VerifyInstalled(false);
27 packageB.VerifyInstalled(false);
28 }
29
30 [Fact]
31 public void CanCancelMsiPackageVeryLate()
32 {
33 var packageA = this.CreatePackageInstaller("PackageA");
34 var packageB = this.CreatePackageInstaller("PackageB");
35 var bundleA = this.CreateBundleInstaller("BundleA");
36 var testBAController = this.CreateTestBAController();
37
38 // Cancel package B at the last moment possible.
39 testBAController.SetPackageCancelExecuteAtProgress("PackageB", 100);
40
41 bundleA.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT);
42 bundleA.VerifyUnregisteredAndRemovedFromPackageCache();
43
44 packageA.VerifyInstalled(false);
45 packageB.VerifyInstalled(false);
46 }
47 }
48}