diff options
author | Rob Mensching <rob@firegiant.com> | 2021-04-22 16:36:39 -0700 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2021-04-22 16:50:15 -0700 |
commit | 6a24996a2e831cfe402398af65b31fb1ecd575a9 (patch) | |
tree | e377370df4bc7901745c6b5f50268fa665edb3f8 /src/internal/WixBuildTools.TestSupport/TestDataFolderFileSystem.cs | |
parent | 2587a8b46b705d53156f5cd1bd866f855049081d (diff) | |
download | wix-6a24996a2e831cfe402398af65b31fb1ecd575a9.tar.gz wix-6a24996a2e831cfe402398af65b31fb1ecd575a9.tar.bz2 wix-6a24996a2e831cfe402398af65b31fb1ecd575a9.zip |
Move WixBuildTools into internal
Diffstat (limited to 'src/internal/WixBuildTools.TestSupport/TestDataFolderFileSystem.cs')
-rw-r--r-- | src/internal/WixBuildTools.TestSupport/TestDataFolderFileSystem.cs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/internal/WixBuildTools.TestSupport/TestDataFolderFileSystem.cs b/src/internal/WixBuildTools.TestSupport/TestDataFolderFileSystem.cs new file mode 100644 index 00000000..8d670bf0 --- /dev/null +++ b/src/internal/WixBuildTools.TestSupport/TestDataFolderFileSystem.cs | |||
@@ -0,0 +1,42 @@ | |||
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 WixBuildTools.TestSupport | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | /// <summary> | ||
8 | /// This class builds on top of DisposableFileSystem | ||
9 | /// to make it easy to write a test that needs a whole folder of test data copied to a temp location | ||
10 | /// that will automatically be cleaned up at the end of the test. | ||
11 | /// </summary> | ||
12 | public class TestDataFolderFileSystem : IDisposable | ||
13 | { | ||
14 | private DisposableFileSystem fileSystem; | ||
15 | |||
16 | public string BaseFolder { get; private set; } | ||
17 | |||
18 | public void Dispose() | ||
19 | { | ||
20 | this.fileSystem?.Dispose(); | ||
21 | } | ||
22 | |||
23 | public void Initialize(string sourceDirectoryPath) | ||
24 | { | ||
25 | if (this.fileSystem != null) | ||
26 | { | ||
27 | throw new InvalidOperationException(); | ||
28 | } | ||
29 | this.fileSystem = new DisposableFileSystem(); | ||
30 | |||
31 | this.BaseFolder = this.fileSystem.GetFolder(); | ||
32 | |||
33 | RobocopyFolder(sourceDirectoryPath, this.BaseFolder); | ||
34 | } | ||
35 | |||
36 | private static ExternalExecutableResult RobocopyFolder(string sourceFolderPath, string destinationFolderPath) | ||
37 | { | ||
38 | var args = $"\"{sourceFolderPath}\" \"{destinationFolderPath}\" /E /R:1 /W:1"; | ||
39 | return RobocopyRunner.Execute(args); | ||
40 | } | ||
41 | } | ||
42 | } | ||