public void GetEtwEventsTest() { TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.RealtimeEtwSessionApi, HttpMethods.WebSocket); ManualResetEvent etwEventsReceived = new ManualResetEvent(false); EtwEvents etwEvents = null; WindowsDevicePortal.WebSocketMessageReceivedEventHandler <EtwEvents> etwEventsReceivedHandler = delegate(DevicePortal sender, WebSocketMessageReceivedEventArgs <EtwEvents> args) { if (args.Message != null) { etwEvents = args.Message; etwEventsReceived.Set(); } }; TestHelpers.Portal.RealtimeEventsMessageReceived += etwEventsReceivedHandler; Task startListeningForEtwEventsTask = TestHelpers.Portal.StartListeningForEtwEventsAsync(); startListeningForEtwEventsTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, startListeningForEtwEventsTask.Status); etwEventsReceived.WaitOne(); Task stopListeningForEtwEventsTask = TestHelpers.Portal.StopListeningForEtwEventsAsync(); stopListeningForEtwEventsTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, stopListeningForEtwEventsTask.Status); TestHelpers.Portal.RealtimeEventsMessageReceived -= etwEventsReceivedHandler; ValidateEtwEvents(etwEvents); }
/// <summary> /// Validate the <see cref="EtwEvents"/> returned from the tests. /// </summary> /// <param name="etwEvents">The <see cref="EtwEvents"/> to validate.</param> private static void ValidateEtwEvents(EtwEvents etwEvents) { Assert.IsNotNull(etwEvents); }