using ZB.MOM.WW.LmxProxy.Client.Domain; namespace ZB.MOM.WW.LmxProxy.Client.IntegrationTests; public class SubscribeTests : IntegrationTestBase { [Fact] public async Task Subscribe_ReceivesUpdates() { var received = new List<(string Tag, Vtq Vtq)>(); var receivedEvent = new TaskCompletionSource(); var subscription = await Client!.SubscribeAsync( new[] { "TestChildObject.TestInt" }, (tag, vtq) => { received.Add((tag, vtq)); if (received.Count >= 3) receivedEvent.TrySetResult(true); }, ex => receivedEvent.TrySetException(ex)); // Wait up to 30 seconds for at least 3 updates var completed = await Task.WhenAny(receivedEvent.Task, Task.Delay(TimeSpan.FromSeconds(30))); subscription.Dispose(); Assert.True(received.Count >= 1, $"Expected at least 1 update, got {received.Count}"); var first = received[0]; Assert.Equal("TestChildObject.TestInt", first.Tag); Assert.NotNull(first.Vtq.Value); Assert.True(first.Vtq.Timestamp > DateTime.MinValue); } }