83 lines
No EOL
2.9 KiB
C#
83 lines
No EOL
2.9 KiB
C#
using System.Diagnostics.CodeAnalysis;
|
|
|
|
using FrostFS.SDK.Client;
|
|
using FrostFS.SDK.Client.Mappers.GRPC;
|
|
using FrostFS.SDK.Cryptography;
|
|
|
|
namespace FrostFS.SDK.Tests;
|
|
|
|
[SuppressMessage("Reliability", "CA2007:Consider calling ConfigureAwait on the awaited task", Justification = "Default Value is correct for tests")]
|
|
public class SessionTest : SessionTestsBase
|
|
{
|
|
[Theory]
|
|
[InlineData(false)]
|
|
[InlineData(true)]
|
|
public async void CreateSessionTest(bool useContext)
|
|
{
|
|
var exp = 100u;
|
|
PrmSessionCreate param;
|
|
|
|
if (useContext)
|
|
{
|
|
var ctx = new CallContext
|
|
{
|
|
CancellationToken = Mocker.CancellationTokenSource.Token,
|
|
Timeout = TimeSpan.FromSeconds(20)
|
|
};
|
|
|
|
param = new PrmSessionCreate(exp, ctx);
|
|
|
|
param.XHeaders.Add("headerKey1", "headerValue1");
|
|
}
|
|
else
|
|
{
|
|
param = new PrmSessionCreate(exp);
|
|
}
|
|
|
|
var validTimeoutFrom = DateTime.UtcNow.AddSeconds(20);
|
|
|
|
var result = await GetClient().CreateSessionAsync(param);
|
|
|
|
var validTimeoutTo = DateTime.UtcNow.AddSeconds(20);
|
|
|
|
Assert.NotNull(result);
|
|
Assert.NotEqual(Guid.Empty, result.Id);
|
|
|
|
Assert.Equal(Mocker.SessionId, result.Id.ToBytes());
|
|
Assert.Equal(Mocker.SessionKey, result.SessionKey.ToArray());
|
|
|
|
//Assert.Equal(OwnerId.ToMessage(), result.Token.Body.OwnerId);
|
|
//Assert.Equal(exp, result.Token.Body.Lifetime.Exp);
|
|
//Assert.Equal(exp, result.Token.Body.Lifetime.Iat);
|
|
//Assert.Equal(exp, result.Token.Body.Lifetime.Nbf);
|
|
//Assert.Null(result.Token.Body.Container);
|
|
|
|
Assert.NotNull(Mocker.CreateSessionRequest);
|
|
|
|
Assert.Equal(OwnerId.ToMessage(), Mocker.CreateSessionRequest.Body.OwnerId);
|
|
Assert.Equal(exp, Mocker.CreateSessionRequest.Body.Expiration);
|
|
Assert.NotNull(Mocker.CreateSessionRequest.MetaHeader);
|
|
Assert.Equal(Mocker.Version.ToMessage(), Mocker.CreateSessionRequest.MetaHeader.Version);
|
|
|
|
Assert.Null(Mocker.Metadata);
|
|
|
|
if (useContext)
|
|
{
|
|
Assert.Single(Mocker.CreateSessionRequest.MetaHeader.XHeaders);
|
|
Assert.Equal(param.XHeaders.Keys[0], Mocker.CreateSessionRequest.MetaHeader.XHeaders.First().Key);
|
|
Assert.Equal(param.XHeaders[param.XHeaders.Keys[0]], Mocker.CreateSessionRequest.MetaHeader.XHeaders.First().Value);
|
|
|
|
Assert.Equal(Mocker.CancellationTokenSource.Token, Mocker.CancellationToken);
|
|
Assert.NotNull(Mocker.DateTime);
|
|
|
|
Assert.True(Mocker.DateTime.Value >= validTimeoutFrom);
|
|
Assert.True(Mocker.DateTime.Value <= validTimeoutTo);
|
|
Assert.True(validTimeoutTo.Ticks >= Mocker.DateTime.Value.Ticks);
|
|
}
|
|
else
|
|
{
|
|
Assert.Empty(Mocker.CreateSessionRequest.MetaHeader.XHeaders);
|
|
Assert.Null(Mocker.DateTime);
|
|
}
|
|
}
|
|
} |