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>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CreateEnvironmentBlockTest_And_DestroyEnvironmentBlockTest.cs" />
|
||||
<Compile Include="UserEnvTests.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue