35 lines
1.4 KiB
C#
35 lines
1.4 KiB
C#
using Grpc.Core;
|
|
using Grpc.Net.Client;
|
|
using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy;
|
|
|
|
namespace ZB.MOM.WW.MxGateway.Client.Tests;
|
|
|
|
/// <summary>
|
|
/// Live smoke tests for the BrowseChildren RPC. Skipped by default; set
|
|
/// MXGATEWAY_API_KEY and MXGATEWAY_ENDPOINT to run against a real gateway.
|
|
/// </summary>
|
|
public sealed class BrowseChildrenSmokeTests
|
|
{
|
|
/// <summary>
|
|
/// Verifies that BrowseChildren returns a non-zero cache sequence and
|
|
/// a consistent children/child-has-children count from a live gateway.
|
|
/// </summary>
|
|
[Fact(Skip = "Set MXGATEWAY_API_KEY and MXGATEWAY_ENDPOINT to enable.")]
|
|
public async Task BrowseChildren_LiveGateway_ReturnsRootsWithCacheSequence()
|
|
{
|
|
string? apiKey = Environment.GetEnvironmentVariable("MXGATEWAY_API_KEY");
|
|
string endpoint = Environment.GetEnvironmentVariable("MXGATEWAY_ENDPOINT") ?? "http://localhost:5120";
|
|
|
|
Assert.False(string.IsNullOrEmpty(apiKey), "MXGATEWAY_API_KEY must be set.");
|
|
|
|
using GrpcChannel channel = GrpcChannel.ForAddress(endpoint);
|
|
GalaxyRepository.GalaxyRepositoryClient client = new(channel);
|
|
|
|
Metadata headers = new() { { "authorization", $"Bearer {apiKey}" } };
|
|
BrowseChildrenReply reply = await client.BrowseChildrenAsync(new BrowseChildrenRequest(), headers);
|
|
|
|
Assert.True(reply.CacheSequence > 0UL);
|
|
Assert.Equal(reply.Children.Count, reply.ChildHasChildren.Count);
|
|
}
|
|
}
|