main
cs 82 lines 3.5 KB
Raw
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
3 namespace WixToolsetTest.MsiE2E;
4
5 using System;
6 using System.IO;
7 using WixTestTools;
8 using Xunit;
9 using Xunit.Abstractions;
10
11 public class RemoveFolderExTests : MsiE2ETests
12 {
13 public RemoveFolderExTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper)
14 {
15 }
16
17 [Fact]
18 public void CanRemoveFolderExOnInstallAndUninstall()
19 {
20 var removeFolderExTestDir1 = "C:\\RemoveFolderExTest";
21 var removeFolderExTestFile1 = Path.Combine(removeFolderExTestDir1, "testfile.txt");
22 var removeFolderExTestDir2 = Path.Combine(removeFolderExTestDir1, "TestFolder1");
23 var removeFolderExTestFile2 = Path.Combine(removeFolderExTestDir1, "TestFolder1", "testfile");
24
25 try
26 {
27 var product = this.CreatePackageInstaller("RemoveFolderExTest");
28
29 Directory.CreateDirectory(removeFolderExTestDir1);
30 File.Create(removeFolderExTestFile1).Dispose();
31 Directory.CreateDirectory(removeFolderExTestDir2);
32 File.Create(removeFolderExTestFile2).Dispose();
33
34 if( !Directory.Exists(removeFolderExTestDir1)
35 || !File.Exists(removeFolderExTestFile1)
36 || !Directory.Exists(removeFolderExTestDir2)
37 || !File.Exists(removeFolderExTestFile2))
38 {
39 Assert.Fail("Failed to create initial folder and file structure before install test");
40 }
41
42 product.InstallProduct(MSIExec.MSIExecReturnCode.SUCCESS);
43
44 Assert.False(Directory.Exists(removeFolderExTestDir1), $"Failed to remove {removeFolderExTestDir1} on install");
45 Assert.False(File.Exists(removeFolderExTestFile1), $"Failed to remove {removeFolderExTestFile1} on install");
46 Assert.False(Directory.Exists(removeFolderExTestDir2), $"Failed to remove {removeFolderExTestDir2} on install");
47 Assert.False(File.Exists(removeFolderExTestFile1), $"Failed to remove {removeFolderExTestFile2} on install");
48
49
50 Directory.CreateDirectory(removeFolderExTestDir1);
51 File.Create(removeFolderExTestFile1).Dispose();
52 Directory.CreateDirectory(removeFolderExTestDir2);
53 File.Create(removeFolderExTestFile2).Dispose();
54
55 if (!Directory.Exists(removeFolderExTestDir1)
56 || !File.Exists(removeFolderExTestFile1)
57 || !Directory.Exists(removeFolderExTestDir2)
58 || !File.Exists(removeFolderExTestFile2))
59 {
60 Assert.Fail("Failed to create initial folder and file structure before uninstall test");
61 }
62
63 product.UninstallProduct(MSIExec.MSIExecReturnCode.SUCCESS);
64
65 Assert.False(Directory.Exists(removeFolderExTestDir1), $"Failed to remove {removeFolderExTestDir1} on uninstall");
66 Assert.False(File.Exists(removeFolderExTestFile1), $"Failed to remove {removeFolderExTestFile1} on uninstall");
67 Assert.False(Directory.Exists(removeFolderExTestDir2), $"Failed to remove {removeFolderExTestDir2} on uninstall");
68 Assert.False(File.Exists(removeFolderExTestFile2), $"Failed to remove {removeFolderExTestFile2} on uninstall");
69
70 }
71 finally
72 {
73 try
74 {
75 Directory.Delete(removeFolderExTestDir1, true);
76 }
77 catch
78 {
79 }
80 }
81 }
82 }