diff --git a/UnitTests/PInvoke/UserEnv/CreateEnvironmentBlockTest_And_DestroyEnvironmentBlockTest.cs b/UnitTests/PInvoke/UserEnv/CreateEnvironmentBlockTest_And_DestroyEnvironmentBlockTest.cs
new file mode 100644
index 00000000..c3f12bf5
--- /dev/null
+++ b/UnitTests/PInvoke/UserEnv/CreateEnvironmentBlockTest_And_DestroyEnvironmentBlockTest.cs
@@ -0,0 +1,53 @@
+using NUnit.Framework;
+using System;
+using static Vanara.PInvoke.AdvApi32;
+using static Vanara.PInvoke.Kernel32;
+using static Vanara.PInvoke.UserEnv;
+
+namespace Vanara.PInvoke.Tests
+{
+ public partial class UserEnvTests
+ {
+ [Test]
+ public void CreateEnvironmentBlockTest_And_DestroyEnvironmentBlockTest()
+ {
+ SafeHTOKEN hToken;
+
+ using (hToken = SafeHTOKEN.FromProcess(GetCurrentProcess(), TokenAccess.TOKEN_IMPERSONATE | TokenAccess.TOKEN_DUPLICATE | TokenAccess.TOKEN_READ).Duplicate(SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation))
+ {
+ Assert.IsFalse(hToken.IsClosed);
+
+ Assert.That(CreateEnvironmentBlock(out var environmentBlock, hToken, false), ResultIs.Successful);
+
+
+ // Test all environment variables.
+
+ var allEnvironmentVariables = Environment.GetEnvironmentVariables();
+
+ foreach (var envVar in environmentBlock)
+ {
+ var envVarName = envVar.Split('=')[0];
+
+ if (allEnvironmentVariables.Contains(envVarName))
+ {
+ var envVarValue = Environment.GetEnvironmentVariable(envVarName);
+
+ Assert.AreEqual(allEnvironmentVariables[envVarName], envVarValue);
+
+ TestContext.WriteLine(envVar);
+ }
+
+ else
+ {
+ TestContext.WriteLine();
+ TestContext.WriteLine($"*** UNAVAILABLE: {envVar}");
+ TestContext.WriteLine();
+ }
+ }
+ }
+
+
+ Assert.IsTrue(hToken.IsClosed);
+ }
+ }
+}
diff --git a/UnitTests/PInvoke/UserEnv/UserEnv.csproj b/UnitTests/PInvoke/UserEnv/UserEnv.csproj
index bfce3dab..893a30e0 100644
--- a/UnitTests/PInvoke/UserEnv/UserEnv.csproj
+++ b/UnitTests/PInvoke/UserEnv/UserEnv.csproj
@@ -44,6 +44,7 @@
+
diff --git a/UnitTests/PInvoke/UserEnv/UserEnvTests.cs b/UnitTests/PInvoke/UserEnv/UserEnvTests.cs
index dc151897..5e7cdf16 100644
--- a/UnitTests/PInvoke/UserEnv/UserEnvTests.cs
+++ b/UnitTests/PInvoke/UserEnv/UserEnvTests.cs
@@ -1,19 +1,9 @@
using NUnit.Framework;
-using static Vanara.PInvoke.AdvApi32;
-using static Vanara.PInvoke.Kernel32;
-using static Vanara.PInvoke.UserEnv;
namespace Vanara.PInvoke.Tests
{
- public class UserEnvTests
+ [TestFixture()]
+ public partial class UserEnvTests
{
- [Test]
- public void CreateDestroyEnvironmentBlockTest()
- {
- using var hTok = SafeHTOKEN.FromProcess(GetCurrentProcess(), TokenAccess.TOKEN_IMPERSONATE | TokenAccess.TOKEN_DUPLICATE | TokenAccess.TOKEN_READ).Duplicate(SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation);
- Assert.That(CreateEnvironmentBlock(out var env, hTok, false), ResultIs.Successful);
- Assert.That(env, Has.Exactly(1).StartsWith("Path="));
- TestContext.Write(string.Join("\r\n", env));
- }
}
-}
\ No newline at end of file
+}