frostfs-sdk-csharp/src/FrostFS.SDK.Tests/SessionTests.cs
Pavel Gross 749000a090
All checks were successful
DCO / DCO (pull_request) Successful in 33s
lint-build / dotnet8.0 (pull_request) Successful in 1m4s
lint-build / dotnet8.0 (push) Successful in 49s
[#28] Client: Apply code optimizations
Signed-off-by: Pavel Gross <p.gross@yadro.com>
2024-11-18 17:00:19 +03:00

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