aboutsummaryrefslogtreecommitdiff
path: root/src/WixBuildTools.TestSupport/Pushd.cs
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2017-12-28 09:20:11 -0800
committerRob Mensching <rob@firegiant.com>2017-12-28 09:20:11 -0800
commit2c711ea621c03e415dc9ad9e9f103e09372b8c50 (patch)
tree415b00719d8f016e6edbd867947510d753224040 /src/WixBuildTools.TestSupport/Pushd.cs
parent9a829ccb7b8cbc3432356f5b8deba081d64e3cb5 (diff)
downloadwix-2c711ea621c03e415dc9ad9e9f103e09372b8c50.tar.gz
wix-2c711ea621c03e415dc9ad9e9f103e09372b8c50.tar.bz2
wix-2c711ea621c03e415dc9ad9e9f103e09372b8c50.zip
Add WixBuildTools.TestSupport with common testing functionality
Diffstat (limited to 'src/WixBuildTools.TestSupport/Pushd.cs')
-rw-r--r--src/WixBuildTools.TestSupport/Pushd.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/WixBuildTools.TestSupport/Pushd.cs b/src/WixBuildTools.TestSupport/Pushd.cs
new file mode 100644
index 00000000..d0545215
--- /dev/null
+++ b/src/WixBuildTools.TestSupport/Pushd.cs
@@ -0,0 +1,46 @@
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 WixBuildTools.TestSupport
4{
5 using System;
6 using System.IO;
7
8 public class Pushd : IDisposable
9 {
10 protected bool Disposed { get; private set; }
11
12 public Pushd(string path)
13 {
14 this.PreviousDirectory = Directory.GetCurrentDirectory();
15
16 Directory.SetCurrentDirectory(path);
17 }
18
19 public string PreviousDirectory { get; }
20
21 #region // IDisposable
22
23 public void Dispose()
24 {
25 this.Dispose(true);
26 GC.SuppressFinalize(this);
27 }
28
29 protected virtual void Dispose(bool disposing)
30 {
31 if (this.Disposed)
32 {
33 return;
34 }
35
36 if (disposing)
37 {
38 Directory.SetCurrentDirectory(this.PreviousDirectory);
39 }
40
41 this.Disposed = true;
42 }
43
44 #endregion
45 }
46}