mirror of https://github.com/dahall/Vanara.git
parent
92227c8afd
commit
9a21348784
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -44,6 +44,7 @@
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="CreateEnvironmentBlockTest_And_DestroyEnvironmentBlockTest.cs" />
|
||||||
<Compile Include="UserEnvTests.cs" />
|
<Compile Include="UserEnvTests.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -1,19 +1,9 @@
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using static Vanara.PInvoke.AdvApi32;
|
|
||||||
using static Vanara.PInvoke.Kernel32;
|
|
||||||
using static Vanara.PInvoke.UserEnv;
|
|
||||||
|
|
||||||
namespace Vanara.PInvoke.Tests
|
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));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue