using Grpc.Core; using Grpc.Net.Client; using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; namespace ZB.MOM.WW.MxGateway.Client.Tests; /// /// Live smoke tests for the BrowseChildren RPC. Skipped by default; set /// MXGATEWAY_API_KEY and MXGATEWAY_ENDPOINT to run against a real gateway. /// public sealed class BrowseChildrenSmokeTests { /// /// Verifies that BrowseChildren returns a non-zero cache sequence and /// a consistent children/child-has-children count from a live gateway. /// [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); } }