Improved unit test. (#90)

Thanks.
pull/91/head
Jeffrey Jangli 2020-01-01 19:35:00 +01:00 committed by David Hall
parent 92227c8afd
commit 9a21348784
3 changed files with 57 additions and 13 deletions

View File

@ -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);
}
}
}

View File

@ -44,6 +44,7 @@
</PackageReference>
</ItemGroup>
<ItemGroup>
<Compile Include="CreateEnvironmentBlockTest_And_DestroyEnvironmentBlockTest.cs" />
<Compile Include="UserEnvTests.cs" />
</ItemGroup>
<ItemGroup>

View File

@ -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));
}
}
}
}