public async Task ExchangesMessage() { const string EventName = "login"; var timestamp = DateTime.UtcNow; var signal = new ManualResetEvent(false); var subscription = activity.CreateSubscription(); await subscription.Subscribe( EventName, e => { Assert.Equal(EventName, e.EventName); Assert.Equal(timestamp, e.Timestamp); Assert.Contains(1, e.Users); Assert.Contains(2, e.Users); Assert.Contains(3, e.Users); signal.Set(); }); await activity.Track(EventName, true, 1, 2, 3); signal.WaitOne(TimeSpan.FromSeconds(1)); await subscription.Unsubscribe(EventName); subscription.Dispose(); }