39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
using MxGateway.Server.Security.Authentication;
|
|
|
|
namespace MxGateway.Tests.Security.Authentication;
|
|
|
|
public sealed class ApiKeyParserTests
|
|
{
|
|
[Fact]
|
|
public void TryParseAuthorizationHeader_ValidBearerToken_ReturnsKeyIdAndSecret()
|
|
{
|
|
ApiKeyParser parser = new();
|
|
|
|
bool parsed = parser.TryParseAuthorizationHeader(
|
|
"Bearer mxgw_operator01_secret_value",
|
|
out ParsedApiKey? apiKey);
|
|
|
|
Assert.True(parsed);
|
|
Assert.NotNull(apiKey);
|
|
Assert.Equal("operator01", apiKey.KeyId);
|
|
Assert.Equal("secret_value", apiKey.Secret);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(null)]
|
|
[InlineData("")]
|
|
[InlineData("mxgw_operator01_secret")]
|
|
[InlineData("Bearer not-a-gateway-key")]
|
|
[InlineData("Bearer mxgw__secret")]
|
|
[InlineData("Bearer mxgw_operator01_")]
|
|
public void TryParseAuthorizationHeader_MalformedToken_ReturnsFalse(string? authorizationHeader)
|
|
{
|
|
ApiKeyParser parser = new();
|
|
|
|
bool parsed = parser.TryParseAuthorizationHeader(authorizationHeader, out ParsedApiKey? apiKey);
|
|
|
|
Assert.False(parsed);
|
|
Assert.Null(apiKey);
|
|
}
|
|
}
|