namespace ZB.MOM.WW.LmxProxy.Client.IntegrationTests; public class ConnectionTests : IntegrationTestBase { [Fact] public async Task ConnectAndDisconnect_Succeeds() { // Client is connected in InitializeAsync Assert.True(await Client!.IsConnectedAsync()); await Client.DisconnectAsync(); Assert.False(await Client.IsConnectedAsync()); } [Fact] public async Task ConnectWithInvalidApiKey_Fails() { using var badClient = CreateClient(InvalidApiKey); var ex = await Assert.ThrowsAsync( () => badClient.ConnectAsync()); Assert.Equal(Grpc.Core.StatusCode.Unauthenticated, ex.StatusCode); } [Fact] public async Task DoubleConnect_IsIdempotent() { await Client!.ConnectAsync(); // Already connected — should be no-op Assert.True(await Client.IsConnectedAsync()); } }