Implement PSInfisicalAPI module per design spec with env-var auto-discovery

This commit is contained in:
GraceSolutions
2026-06-02 12:46:34 -04:00
parent 3c47d6ff30
commit 430e3a00c9
80 changed files with 6361 additions and 0 deletions
@@ -0,0 +1,44 @@
using System;
using System.Security;
using PSInfisicalAPI.Security;
using Xunit;
namespace PSInfisicalAPI.Tests
{
public class SecureStringUtilityTests
{
[Fact]
public void ToReadOnlySecureString_Returns_ReadOnly_Instance()
{
SecureString secure = SecureStringUtility.ToReadOnlySecureString("hello");
Assert.True(secure.IsReadOnly());
Assert.Equal(5, secure.Length);
}
[Fact]
public void ToReadOnlySecureString_Handles_Null_And_Empty()
{
SecureString fromNull = SecureStringUtility.ToReadOnlySecureString(null);
SecureString fromEmpty = SecureStringUtility.ToReadOnlySecureString(string.Empty);
Assert.True(fromNull.IsReadOnly());
Assert.True(fromEmpty.IsReadOnly());
Assert.Equal(0, fromNull.Length);
Assert.Equal(0, fromEmpty.Length);
}
[Fact]
public void UsePlainText_Roundtrips_Value()
{
SecureString secure = SecureStringUtility.ToReadOnlySecureString("RoundTripValue");
string captured = SecureStringUtility.UsePlainText(secure, plainText => plainText);
Assert.Equal("RoundTripValue", captured);
}
[Fact]
public void UsePlainText_Throws_For_Null_Action()
{
SecureString secure = SecureStringUtility.ToReadOnlySecureString("x");
Assert.Throws<ArgumentNullException>(() => SecureStringUtility.UsePlainText<string>(secure, null));
}
}
}