69 lines
No EOL
2.3 KiB
C#
69 lines
No EOL
2.3 KiB
C#
using FrostFS.Netmap;
|
|
using FrostFS.SDK.Client;
|
|
using Google.Protobuf;
|
|
|
|
namespace FrostFS.SDK.Tests.Unit;
|
|
|
|
public class NodeInfoTests : NetworkTestsBase
|
|
{
|
|
[Theory]
|
|
[InlineData(false)]
|
|
[InlineData(true)]
|
|
public async void NodeInfoTest(bool useContext)
|
|
{
|
|
var body = new LocalNodeInfoResponse.Types.Body
|
|
{
|
|
NodeInfo = new NodeInfo()
|
|
{
|
|
State = NodeInfo.Types.State.Online,
|
|
PublicKey = ByteString.CopyFrom([1, 2, 3])
|
|
},
|
|
Version = new Refs.Version { Major = 2, Minor = 12 }
|
|
};
|
|
|
|
body.NodeInfo.Addresses.Add("address1");
|
|
body.NodeInfo.Addresses.Add("address2");
|
|
body.NodeInfo.Attributes.Add(new NodeInfo.Types.Attribute { Key = "key1", Value = "value1" });
|
|
body.NodeInfo.Attributes.Add(new NodeInfo.Types.Attribute { Key = "key2", Value = "value2" });
|
|
|
|
Mocker.NodeInfoResponse = new LocalNodeInfoResponse { Body = body };
|
|
|
|
var ctx = useContext
|
|
? new CallContext(TimeSpan.FromSeconds(20), Mocker.CancellationTokenSource.Token)
|
|
: default;
|
|
|
|
var validTimeoutFrom = DateTime.UtcNow.AddSeconds(20);
|
|
|
|
var result = await GetClient(DefaultSettings).GetNodeInfoAsync(ctx);
|
|
|
|
var validTimeoutTo = DateTime.UtcNow.AddSeconds(20);
|
|
|
|
Assert.NotNull(result);
|
|
|
|
Assert.Equal(NodeState.Online, result.State);
|
|
|
|
Assert.Equal(2, result.Addresses.Count);
|
|
Assert.Equal("address1", result.Addresses.ElementAt(0));
|
|
Assert.Equal("address2", result.Addresses.ElementAt(1));
|
|
|
|
Assert.Equal(2, result.Attributes.Count);
|
|
Assert.Equal("value1", result.Attributes["key1"]);
|
|
Assert.Equal("value2", result.Attributes["key2"]);
|
|
|
|
Assert.NotNull(Mocker.LocalNodeInfoRequest);
|
|
if (useContext)
|
|
{
|
|
Assert.Empty(Mocker.LocalNodeInfoRequest.MetaHeader.XHeaders);
|
|
Assert.Equal(Mocker.CancellationTokenSource.Token, Mocker.CancellationToken);
|
|
Assert.NotNull(Mocker.DateTime);
|
|
|
|
Assert.True(Mocker.DateTime.Value >= validTimeoutFrom);
|
|
Assert.True(Mocker.DateTime.Value <= validTimeoutTo);
|
|
}
|
|
else
|
|
{
|
|
Assert.Empty(Mocker.LocalNodeInfoRequest.MetaHeader.XHeaders);
|
|
Assert.Null(Mocker.DateTime);
|
|
}
|
|
}
|
|
} |