Implement PSInfisicalAPI module per design spec with env-var auto-discovery
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user