コード例 #1
0
        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);
        }
コード例 #2
0
 /// <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);
 }