Loading WindowsDevicePortalWrapper/MockDataGenerator/Program.cs +30 −2 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ using System.IO; using System.Net; using System.Threading.Tasks; using Microsoft.Tools.WindowsDevicePortal; using static Microsoft.Tools.WindowsDevicePortal.DevicePortal; namespace MockDataGenerator { Loading @@ -17,6 +18,11 @@ namespace MockDataGenerator /// </summary> public class Program { /// <summary> /// WebSocket operation prefix /// </summary> private const string WebSocketOpertionPrefix = "WebSocket/"; /// <summary> /// Usage string /// </summary> Loading @@ -32,6 +38,10 @@ namespace MockDataGenerator DevicePortal.OsInfoApi, DevicePortal.XboxLiveUserApi, DevicePortal.XboxSettingsApi, DevicePortal.SystemPerfApi, DevicePortal.RunningProcessApi, WebSocketOpertionPrefix + DevicePortal.SystemPerfApi, WebSocketOpertionPrefix + DevicePortal.RunningProcessApi }; /// <summary> Loading Loading @@ -103,16 +113,34 @@ namespace MockDataGenerator if (parameters.HasParameter("endpoint")) { Task saveResponseTask = portal.SaveEndpointResponseToFile(parameters.GetParameterValue("endpoint"), directory); HttpOperations httpOperation = HttpOperations.Get; string endpoint = parameters.GetParameterValue("endpoint"); if (endpoint.StartsWith(WebSocketOpertionPrefix, StringComparison.OrdinalIgnoreCase)) { httpOperation = HttpOperations.WebSocket; endpoint = endpoint.Substring(WebSocketOpertionPrefix.Length); } Task saveResponseTask = portal.SaveEndpointResponseToFile(endpoint, directory, httpOperation); saveResponseTask.Wait(); } else { foreach (string endpoint in Endpoints) { string finalEndpoint = endpoint; HttpOperations httpOperation = HttpOperations.Get; if (endpoint.StartsWith(WebSocketOpertionPrefix, StringComparison.OrdinalIgnoreCase)) { httpOperation = HttpOperations.WebSocket; finalEndpoint = endpoint.Substring(WebSocketOpertionPrefix.Length); } try { Task saveResponseTask = portal.SaveEndpointResponseToFile(endpoint, directory); Task saveResponseTask = portal.SaveEndpointResponseToFile(finalEndpoint, directory, httpOperation); saveResponseTask.Wait(); } catch (Exception e) Loading WindowsDevicePortalWrapper/TestAppXbox/Program.cs +36 −63 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ using System.Net; using System.Threading; using System.Threading.Tasks; using Microsoft.Tools.WindowsDevicePortal; using static Microsoft.Tools.WindowsDevicePortal.DevicePortal; namespace TestApp { Loading @@ -36,26 +37,6 @@ namespace TestApp /// </summary> private static readonly string GeneralUsageMessage = "Usage: /ip:<system-ip or hostname> /user:<WDP username> /pwd:<WDP password> [/op:<operation type> [operation parameters]]"; /// <summary> /// Event used to indicate that the running processes on the device have been received. /// </summary> private ManualResetEvent runningProcessesReceived = new ManualResetEvent(false); /// <summary> /// The running processes on the device. /// </summary> private DevicePortal.RunningProcesses runningProcesses = null; /// <summary> /// Event used to indicate that the system perf on the device have been received. /// </summary> private ManualResetEvent systemPerfReceived = new ManualResetEvent(false); /// <summary> /// The system perf of the device. /// </summary> private DevicePortal.SystemPerformanceInformation systemPerf = null; /// <summary> /// Operation types /// </summary> Loading Loading @@ -183,28 +164,40 @@ namespace TestApp } else if (operation == OperationType.ListProcessesOperation) { DevicePortal.RunningProcesses deviceProcesses = null; RunningProcesses runningProcesses = null; if (listen) { portal.RunningProcessesMessageReceived += app.ProcessesReceivedHandler; ManualResetEvent runningProcessesReceived = new ManualResetEvent(false); WebSocketMessageReceivedEventHandler<RunningProcesses> runningProcessesReceivedHandler = delegate(object sender, WebSocketMessageReceivedEventArgs<RunningProcesses> runningProccesesArgs) { if (runningProccesesArgs.Message != null) { runningProcesses = runningProccesesArgs.Message; runningProcessesReceived.Set(); } }; portal.RunningProcessesMessageReceived += runningProcessesReceivedHandler; Task startListeningForProcessesTask = portal.StartListeningForRunningProcesses(); startListeningForProcessesTask.Wait(); app.runningProcessesReceived.WaitOne(); runningProcessesReceived.WaitOne(); Task stopListeningForProcessesTask = portal.StopListeningForRunningProcesses(); stopListeningForProcessesTask.Wait(); deviceProcesses = app.runningProcesses; portal.RunningProcessesMessageReceived -= runningProcessesReceivedHandler; } else { Task<DevicePortal.RunningProcesses> getRunningProcessesTask = portal.GetRunningProcesses(); deviceProcesses = getRunningProcessesTask.Result; runningProcesses = getRunningProcessesTask.Result; } foreach (DevicePortal.DeviceProcessInfo process in deviceProcesses.Processes) foreach (DeviceProcessInfo process in runningProcesses.Processes) { if (!string.IsNullOrEmpty(process.Name)) { Loading @@ -214,24 +207,36 @@ namespace TestApp } else if (operation == OperationType.GetSystemPerfOperation) { DevicePortal.SystemPerformanceInformation systemPerformanceInformation = null; SystemPerformanceInformation systemPerformanceInformation = null; if (listen) { portal.SystemPerfMessageReceived += app.SystemPerfReceivedHandler; ManualResetEvent systemPerfReceived = new ManualResetEvent(false); WebSocketMessageReceivedEventHandler<SystemPerformanceInformation> systemPerfReceivedHandler = delegate(object sender, WebSocketMessageReceivedEventArgs<SystemPerformanceInformation> sysPerfInfoArgs) { if (sysPerfInfoArgs.Message != null) { systemPerformanceInformation = sysPerfInfoArgs.Message; systemPerfReceived.Set(); } }; portal.SystemPerfMessageReceived += systemPerfReceivedHandler; Task startListeningForSystemPerfTask = portal.StartListeningForSystemPerf(); startListeningForSystemPerfTask.Wait(); app.systemPerfReceived.WaitOne(); systemPerfReceived.WaitOne(); Task stopListeningForSystemPerfTask = portal.StopListeningForRunningProcesses(); stopListeningForSystemPerfTask.Wait(); systemPerformanceInformation = app.systemPerf; portal.SystemPerfMessageReceived -= systemPerfReceivedHandler; } else { Task<DevicePortal.SystemPerformanceInformation> getRunningProcessesTask = portal.GetSystemPerf(); Task<SystemPerformanceInformation> getRunningProcessesTask = portal.GetSystemPerf(); systemPerformanceInformation = getRunningProcessesTask.Result; } Loading Loading @@ -321,37 +326,5 @@ namespace TestApp throw new Exception("Unknown Operation Type. " + AvailableOperationsText); } /// <summary> /// Handler for the ProcessesMessageReceived event. /// </summary> /// <param name="sender">The object sending the event.</param> /// <param name="args">The event data.</param> private void ProcessesReceivedHandler( object sender, WebSocketMessageReceivedEventArgs<DevicePortal.RunningProcesses> args) { if (args.Message != null) { this.runningProcesses = args.Message; this.runningProcessesReceived.Set(); } } /// <summary> /// Handler for the SystemPerfMessageReceived event. /// </summary> /// <param name="sender">The object sending the event.</param> /// <param name="args">The event data.</param> private void SystemPerfReceivedHandler( object sender, WebSocketMessageReceivedEventArgs<DevicePortal.SystemPerformanceInformation> args) { if (args.Message != null) { this.systemPerf = args.Message; this.systemPerfReceived.Set(); } } } } WindowsDevicePortalWrapper/UnitTestProject/Core/AppFileExplorerTests.cs +7 −7 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests response.Content = content; TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.KnownFoldersApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.KnownFoldersApi, response, HttpOperations.Get); Task<KnownFolders> getKnownFoldersTask = TestHelpers.Portal.GetKnownFolders(); getKnownFoldersTask.Wait(); Loading Loading @@ -69,7 +69,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests response.Content = content; TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFilesApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFilesApi, response, HttpOperations.Get); Task<FolderContents> getFolderContentsTask = TestHelpers.Portal.GetFolderContents("KnownFolderOne"); getFolderContentsTask.Wait(); Loading Loading @@ -117,7 +117,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests HttpContent content = new StreamContent(stream); response.Content = content; TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response, HttpOperations.Get); Task<Stream> getFileTask = TestHelpers.Portal.GetFile("knownfolder", "FileToDownload.txt", "SubFolder\\SubFolder2"); getFileTask.Wait(); Loading @@ -135,7 +135,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response, HttpOperations.Post); Task uploadFileTask = TestHelpers.Portal.UploadFile("knownfolder", "MockData\\Defaults\\api_os_devicefamily_Default.dat", "SubFolder\\SubFolder2"); uploadFileTask.Wait(); Loading @@ -152,7 +152,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response, HttpOperations.Post); try { Loading @@ -175,7 +175,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response, HttpOperations.Delete); Task deleteFileTask = TestHelpers.Portal.DeleteFile("knownfolder", "FileToDelete.txt", "SubFolder\\SubFolder2"); deleteFileTask.Wait(); Loading @@ -191,7 +191,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.RenameFileApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.RenameFileApi, response, HttpOperations.Post); Task renameFileTask = TestHelpers.Portal.RenameFile("knownfolder", "FileToRename.txt", "NewFileName.txt", "SubFolder\\SubFolder2"); renameFileTask.Wait(); Loading WindowsDevicePortalWrapper/UnitTestProject/Core/OsInformationTests.cs +2 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ using System; using System.Threading.Tasks; using Microsoft.VisualStudio.TestTools.UnitTesting; using static Microsoft.Tools.WindowsDevicePortal.DevicePortal; namespace Microsoft.Tools.WindowsDevicePortal.Tests { Loading @@ -22,7 +23,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests [TestMethod] public void OsInformationTest() { TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.MachineNameApi); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.MachineNameApi, HttpOperations.Get); Task<string> getNameTask = TestHelpers.Portal.GetDeviceName(); getNameTask.Wait(); Loading WindowsDevicePortalWrapper/UnitTestProject/Core/PerformanceDataTests.cs 0 → 100644 +214 −0 Original line number Diff line number Diff line //---------------------------------------------------------------------------------------------- // <copyright file="PerformanceDataTests.cs" company="Microsoft Corporation"> // Licensed under the MIT License. See LICENSE.TXT in the project root license information. // </copyright> //---------------------------------------------------------------------------------------------- using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.VisualStudio.TestTools.UnitTesting; using static Microsoft.Tools.WindowsDevicePortal.DevicePortal; namespace Microsoft.Tools.WindowsDevicePortal.Tests.Core { /// <summary> /// Test class for PerformanceData APIs. /// </summary> [TestClass] public class PerformanceDataTests : BaseTests { /// <summary> /// Basic test of GET method for getting a list of running processes. /// </summary> [TestMethod] public void GetRunningProcessesTest() { TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.RunningProcessApi, HttpOperations.Get); Task<RunningProcesses> getRunningProcessesTask = TestHelpers.Portal.GetRunningProcesses(); getRunningProcessesTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, getRunningProcessesTask.Status); ValidateRunningProcesses(getRunningProcessesTask.Result); } /// <summary> /// Basic test of web socket connection for getting a list of running processes. /// </summary> [TestMethod] public void GetRunningProcessesWebSocketTest() { TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.RunningProcessApi, HttpOperations.WebSocket); ManualResetEvent runningProcessesReceived = new ManualResetEvent(false); RunningProcesses runningProcesses = null; WindowsDevicePortal.WebSocketMessageReceivedEventHandler<RunningProcesses> runningProcessesReceivedHandler = delegate(object sender, WebSocketMessageReceivedEventArgs<RunningProcesses> args) { if (args.Message != null) { runningProcesses = args.Message; runningProcessesReceived.Set(); } }; TestHelpers.Portal.RunningProcessesMessageReceived += runningProcessesReceivedHandler; Task startListeningForProcessesTask = TestHelpers.Portal.StartListeningForRunningProcesses(); startListeningForProcessesTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, startListeningForProcessesTask.Status); runningProcessesReceived.WaitOne(); Task stopListeningForProcessesTask = TestHelpers.Portal.StopListeningForRunningProcesses(); stopListeningForProcessesTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, stopListeningForProcessesTask.Status); TestHelpers.Portal.RunningProcessesMessageReceived -= runningProcessesReceivedHandler; ValidateRunningProcesses(runningProcesses); } /// <summary> /// Basic test of GET method for getting system perf without the known JSON error. /// </summary> [TestMethod] public void GetSystemPerfTest() { TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.SystemPerfApi, HttpOperations.Get); Task<SystemPerformanceInformation> getSystemPerfTask = TestHelpers.Portal.GetSystemPerf(); getSystemPerfTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, getSystemPerfTask.Status); ValidateSystemPerm(getSystemPerfTask.Result); } /// <summary> /// Basic test of web socket for getting system perf. /// </summary> [TestMethod] public void GetSystemPerfWebSocketTest() { TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.SystemPerfApi, HttpOperations.WebSocket); ManualResetEvent systemPerfReceived = new ManualResetEvent(false); SystemPerformanceInformation systemPerfInfo = null; WebSocketMessageReceivedEventHandler<SystemPerformanceInformation> systemPerfReceivedHandler = delegate(object sender, WebSocketMessageReceivedEventArgs<SystemPerformanceInformation> args) { if (args.Message != null) { systemPerfInfo = args.Message; systemPerfReceived.Set(); } }; TestHelpers.Portal.SystemPerfMessageReceived += systemPerfReceivedHandler; Task startListeningForSystemPerfTask = TestHelpers.Portal.StartListeningForSystemPerf(); startListeningForSystemPerfTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, startListeningForSystemPerfTask.Status); systemPerfReceived.WaitOne(); Task stopListeningForSystemPerf = TestHelpers.Portal.StopListeningForSystemPerf(); stopListeningForSystemPerf.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, stopListeningForSystemPerf.Status); TestHelpers.Portal.SystemPerfMessageReceived -= systemPerfReceivedHandler; ValidateSystemPerm(systemPerfInfo); } /// <summary> /// Validate the <see cref="RunningProcesses" /> returned from the tests. /// </summary> /// <param name="runningProcesses">The <see cref="RunningProcesses" /> to validate.</param> private static void ValidateRunningProcesses(RunningProcesses runningProcesses) { List<DeviceProcessInfo> processes = new List<DeviceProcessInfo>(runningProcesses.Processes); // Check some known things about this response. Assert.AreEqual(2, processes.Count); DeviceProcessInfo systemIdleprocess = processes[0]; Assert.IsNull(systemIdleprocess.AppName); Assert.AreEqual(systemIdleprocess.CpuUsage, 0); Assert.IsFalse(systemIdleprocess.IsRunning); Assert.IsFalse(systemIdleprocess.IsXAP); Assert.AreEqual(systemIdleprocess.Name, "System Idle Process"); Assert.IsNull(systemIdleprocess.PackageFullName); Assert.AreEqual(systemIdleprocess.PageFile, 0U); Assert.AreEqual(systemIdleprocess.PrivateWorkingSet, 4096); Assert.AreEqual(systemIdleprocess.ProcessId, 0); Assert.IsNull(systemIdleprocess.Publisher); Assert.AreEqual(systemIdleprocess.SessionId, 0U); Assert.AreEqual(systemIdleprocess.TotalCommit, 0); Assert.AreEqual(systemIdleprocess.UserName, "NT AUTHORITY\\SYSTEM"); Assert.IsNull(systemIdleprocess.Version); Assert.AreEqual(systemIdleprocess.VirtualSize, 65536); Assert.AreEqual(systemIdleprocess.WorkingSet, 4096U); DeviceProcessInfo devHomeProcess = processes[1]; Assert.IsNull(devHomeProcess.AppName); Assert.AreEqual(devHomeProcess.CpuUsage, 0); Assert.IsFalse(devHomeProcess.IsRunning); Assert.IsFalse(devHomeProcess.IsXAP); Assert.AreEqual(devHomeProcess.Name, "svchost.exe"); Assert.IsNull(devHomeProcess.PackageFullName); Assert.AreEqual(devHomeProcess.PageFile, 5472256U); Assert.AreEqual(devHomeProcess.PrivateWorkingSet, 4755456); Assert.AreEqual(devHomeProcess.ProcessId, 892); Assert.IsNull(devHomeProcess.Publisher); Assert.AreEqual(devHomeProcess.SessionId, 0U); Assert.AreEqual(devHomeProcess.TotalCommit, 5914624); Assert.AreEqual(devHomeProcess.UserName, "NT AUTHORITY\\SYSTEM"); Assert.IsNull(devHomeProcess.Version); Assert.AreEqual(devHomeProcess.VirtualSize, 2203387539456); Assert.AreEqual(devHomeProcess.WorkingSet, 17285120U); } /// <summary> /// Validate the <see cref="SystemPerformanceInformation" /> returned from the tests. /// </summary> /// <param name="systemPerfInfo">The <see cref="SystemPerformanceInformation" /> to validate.</param> private static void ValidateSystemPerm(SystemPerformanceInformation systemPerfInfo) { // Check some known things about this response. Assert.AreEqual(systemPerfInfo.AvailablePages, 369054); Assert.AreEqual(systemPerfInfo.CommitLimit, 784851); Assert.AreEqual(systemPerfInfo.CommittedPages, 322627); Assert.AreEqual(systemPerfInfo.CpuLoad, 1); Assert.AreEqual(systemPerfInfo.IoOtherSpeed, 3692); Assert.AreEqual(systemPerfInfo.IoReadSpeed, 36); Assert.AreEqual(systemPerfInfo.IoWriteSpeed, 6480); Assert.AreEqual(systemPerfInfo.NonPagedPoolPages, 42504); Assert.AreEqual(systemPerfInfo.PageSize, 4096); Assert.AreEqual(systemPerfInfo.PagedPoolPages, 30697); Assert.AreEqual(systemPerfInfo.TotalInstalledKb, 1048592); Assert.AreEqual(systemPerfInfo.TotalPages, 655360); Assert.AreEqual(systemPerfInfo.GpuData.Adapters.Count, 1); GpuAdapter gpuAdapter = systemPerfInfo.GpuData.Adapters[0]; Assert.AreEqual(gpuAdapter.DedicatedMemory, 268435456U); Assert.AreEqual(gpuAdapter.DedicatedMemoryUsed, 79282176U); Assert.AreEqual(gpuAdapter.Description, "ROOT\\SraKmd\\0000"); Assert.AreEqual(gpuAdapter.SystemMemory, 1342177280U); Assert.AreEqual(gpuAdapter.SystemMemoryUsed, 10203136U); Assert.AreEqual(gpuAdapter.EnginesUtilization.Count, 7); double enguineUtilization = gpuAdapter.EnginesUtilization[0]; Assert.AreEqual(enguineUtilization, 0.0011459999950602651); NetworkPerformanceData networkPerformanceData = systemPerfInfo.NetworkData; Assert.AreEqual(networkPerformanceData.BytesIn, 15000); Assert.AreEqual(networkPerformanceData.BytesOut, 0); } } } Loading
WindowsDevicePortalWrapper/MockDataGenerator/Program.cs +30 −2 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ using System.IO; using System.Net; using System.Threading.Tasks; using Microsoft.Tools.WindowsDevicePortal; using static Microsoft.Tools.WindowsDevicePortal.DevicePortal; namespace MockDataGenerator { Loading @@ -17,6 +18,11 @@ namespace MockDataGenerator /// </summary> public class Program { /// <summary> /// WebSocket operation prefix /// </summary> private const string WebSocketOpertionPrefix = "WebSocket/"; /// <summary> /// Usage string /// </summary> Loading @@ -32,6 +38,10 @@ namespace MockDataGenerator DevicePortal.OsInfoApi, DevicePortal.XboxLiveUserApi, DevicePortal.XboxSettingsApi, DevicePortal.SystemPerfApi, DevicePortal.RunningProcessApi, WebSocketOpertionPrefix + DevicePortal.SystemPerfApi, WebSocketOpertionPrefix + DevicePortal.RunningProcessApi }; /// <summary> Loading Loading @@ -103,16 +113,34 @@ namespace MockDataGenerator if (parameters.HasParameter("endpoint")) { Task saveResponseTask = portal.SaveEndpointResponseToFile(parameters.GetParameterValue("endpoint"), directory); HttpOperations httpOperation = HttpOperations.Get; string endpoint = parameters.GetParameterValue("endpoint"); if (endpoint.StartsWith(WebSocketOpertionPrefix, StringComparison.OrdinalIgnoreCase)) { httpOperation = HttpOperations.WebSocket; endpoint = endpoint.Substring(WebSocketOpertionPrefix.Length); } Task saveResponseTask = portal.SaveEndpointResponseToFile(endpoint, directory, httpOperation); saveResponseTask.Wait(); } else { foreach (string endpoint in Endpoints) { string finalEndpoint = endpoint; HttpOperations httpOperation = HttpOperations.Get; if (endpoint.StartsWith(WebSocketOpertionPrefix, StringComparison.OrdinalIgnoreCase)) { httpOperation = HttpOperations.WebSocket; finalEndpoint = endpoint.Substring(WebSocketOpertionPrefix.Length); } try { Task saveResponseTask = portal.SaveEndpointResponseToFile(endpoint, directory); Task saveResponseTask = portal.SaveEndpointResponseToFile(finalEndpoint, directory, httpOperation); saveResponseTask.Wait(); } catch (Exception e) Loading
WindowsDevicePortalWrapper/TestAppXbox/Program.cs +36 −63 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ using System.Net; using System.Threading; using System.Threading.Tasks; using Microsoft.Tools.WindowsDevicePortal; using static Microsoft.Tools.WindowsDevicePortal.DevicePortal; namespace TestApp { Loading @@ -36,26 +37,6 @@ namespace TestApp /// </summary> private static readonly string GeneralUsageMessage = "Usage: /ip:<system-ip or hostname> /user:<WDP username> /pwd:<WDP password> [/op:<operation type> [operation parameters]]"; /// <summary> /// Event used to indicate that the running processes on the device have been received. /// </summary> private ManualResetEvent runningProcessesReceived = new ManualResetEvent(false); /// <summary> /// The running processes on the device. /// </summary> private DevicePortal.RunningProcesses runningProcesses = null; /// <summary> /// Event used to indicate that the system perf on the device have been received. /// </summary> private ManualResetEvent systemPerfReceived = new ManualResetEvent(false); /// <summary> /// The system perf of the device. /// </summary> private DevicePortal.SystemPerformanceInformation systemPerf = null; /// <summary> /// Operation types /// </summary> Loading Loading @@ -183,28 +164,40 @@ namespace TestApp } else if (operation == OperationType.ListProcessesOperation) { DevicePortal.RunningProcesses deviceProcesses = null; RunningProcesses runningProcesses = null; if (listen) { portal.RunningProcessesMessageReceived += app.ProcessesReceivedHandler; ManualResetEvent runningProcessesReceived = new ManualResetEvent(false); WebSocketMessageReceivedEventHandler<RunningProcesses> runningProcessesReceivedHandler = delegate(object sender, WebSocketMessageReceivedEventArgs<RunningProcesses> runningProccesesArgs) { if (runningProccesesArgs.Message != null) { runningProcesses = runningProccesesArgs.Message; runningProcessesReceived.Set(); } }; portal.RunningProcessesMessageReceived += runningProcessesReceivedHandler; Task startListeningForProcessesTask = portal.StartListeningForRunningProcesses(); startListeningForProcessesTask.Wait(); app.runningProcessesReceived.WaitOne(); runningProcessesReceived.WaitOne(); Task stopListeningForProcessesTask = portal.StopListeningForRunningProcesses(); stopListeningForProcessesTask.Wait(); deviceProcesses = app.runningProcesses; portal.RunningProcessesMessageReceived -= runningProcessesReceivedHandler; } else { Task<DevicePortal.RunningProcesses> getRunningProcessesTask = portal.GetRunningProcesses(); deviceProcesses = getRunningProcessesTask.Result; runningProcesses = getRunningProcessesTask.Result; } foreach (DevicePortal.DeviceProcessInfo process in deviceProcesses.Processes) foreach (DeviceProcessInfo process in runningProcesses.Processes) { if (!string.IsNullOrEmpty(process.Name)) { Loading @@ -214,24 +207,36 @@ namespace TestApp } else if (operation == OperationType.GetSystemPerfOperation) { DevicePortal.SystemPerformanceInformation systemPerformanceInformation = null; SystemPerformanceInformation systemPerformanceInformation = null; if (listen) { portal.SystemPerfMessageReceived += app.SystemPerfReceivedHandler; ManualResetEvent systemPerfReceived = new ManualResetEvent(false); WebSocketMessageReceivedEventHandler<SystemPerformanceInformation> systemPerfReceivedHandler = delegate(object sender, WebSocketMessageReceivedEventArgs<SystemPerformanceInformation> sysPerfInfoArgs) { if (sysPerfInfoArgs.Message != null) { systemPerformanceInformation = sysPerfInfoArgs.Message; systemPerfReceived.Set(); } }; portal.SystemPerfMessageReceived += systemPerfReceivedHandler; Task startListeningForSystemPerfTask = portal.StartListeningForSystemPerf(); startListeningForSystemPerfTask.Wait(); app.systemPerfReceived.WaitOne(); systemPerfReceived.WaitOne(); Task stopListeningForSystemPerfTask = portal.StopListeningForRunningProcesses(); stopListeningForSystemPerfTask.Wait(); systemPerformanceInformation = app.systemPerf; portal.SystemPerfMessageReceived -= systemPerfReceivedHandler; } else { Task<DevicePortal.SystemPerformanceInformation> getRunningProcessesTask = portal.GetSystemPerf(); Task<SystemPerformanceInformation> getRunningProcessesTask = portal.GetSystemPerf(); systemPerformanceInformation = getRunningProcessesTask.Result; } Loading Loading @@ -321,37 +326,5 @@ namespace TestApp throw new Exception("Unknown Operation Type. " + AvailableOperationsText); } /// <summary> /// Handler for the ProcessesMessageReceived event. /// </summary> /// <param name="sender">The object sending the event.</param> /// <param name="args">The event data.</param> private void ProcessesReceivedHandler( object sender, WebSocketMessageReceivedEventArgs<DevicePortal.RunningProcesses> args) { if (args.Message != null) { this.runningProcesses = args.Message; this.runningProcessesReceived.Set(); } } /// <summary> /// Handler for the SystemPerfMessageReceived event. /// </summary> /// <param name="sender">The object sending the event.</param> /// <param name="args">The event data.</param> private void SystemPerfReceivedHandler( object sender, WebSocketMessageReceivedEventArgs<DevicePortal.SystemPerformanceInformation> args) { if (args.Message != null) { this.systemPerf = args.Message; this.systemPerfReceived.Set(); } } } }
WindowsDevicePortalWrapper/UnitTestProject/Core/AppFileExplorerTests.cs +7 −7 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests response.Content = content; TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.KnownFoldersApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.KnownFoldersApi, response, HttpOperations.Get); Task<KnownFolders> getKnownFoldersTask = TestHelpers.Portal.GetKnownFolders(); getKnownFoldersTask.Wait(); Loading Loading @@ -69,7 +69,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests response.Content = content; TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFilesApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFilesApi, response, HttpOperations.Get); Task<FolderContents> getFolderContentsTask = TestHelpers.Portal.GetFolderContents("KnownFolderOne"); getFolderContentsTask.Wait(); Loading Loading @@ -117,7 +117,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests HttpContent content = new StreamContent(stream); response.Content = content; TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response, HttpOperations.Get); Task<Stream> getFileTask = TestHelpers.Portal.GetFile("knownfolder", "FileToDownload.txt", "SubFolder\\SubFolder2"); getFileTask.Wait(); Loading @@ -135,7 +135,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response, HttpOperations.Post); Task uploadFileTask = TestHelpers.Portal.UploadFile("knownfolder", "MockData\\Defaults\\api_os_devicefamily_Default.dat", "SubFolder\\SubFolder2"); uploadFileTask.Wait(); Loading @@ -152,7 +152,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response, HttpOperations.Post); try { Loading @@ -175,7 +175,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.GetFileApi, response, HttpOperations.Delete); Task deleteFileTask = TestHelpers.Portal.DeleteFile("knownfolder", "FileToDelete.txt", "SubFolder\\SubFolder2"); deleteFileTask.Wait(); Loading @@ -191,7 +191,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.RenameFileApi, response); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.RenameFileApi, response, HttpOperations.Post); Task renameFileTask = TestHelpers.Portal.RenameFile("knownfolder", "FileToRename.txt", "NewFileName.txt", "SubFolder\\SubFolder2"); renameFileTask.Wait(); Loading
WindowsDevicePortalWrapper/UnitTestProject/Core/OsInformationTests.cs +2 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ using System; using System.Threading.Tasks; using Microsoft.VisualStudio.TestTools.UnitTesting; using static Microsoft.Tools.WindowsDevicePortal.DevicePortal; namespace Microsoft.Tools.WindowsDevicePortal.Tests { Loading @@ -22,7 +23,7 @@ namespace Microsoft.Tools.WindowsDevicePortal.Tests [TestMethod] public void OsInformationTest() { TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.MachineNameApi); TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.MachineNameApi, HttpOperations.Get); Task<string> getNameTask = TestHelpers.Portal.GetDeviceName(); getNameTask.Wait(); Loading
WindowsDevicePortalWrapper/UnitTestProject/Core/PerformanceDataTests.cs 0 → 100644 +214 −0 Original line number Diff line number Diff line //---------------------------------------------------------------------------------------------- // <copyright file="PerformanceDataTests.cs" company="Microsoft Corporation"> // Licensed under the MIT License. See LICENSE.TXT in the project root license information. // </copyright> //---------------------------------------------------------------------------------------------- using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.VisualStudio.TestTools.UnitTesting; using static Microsoft.Tools.WindowsDevicePortal.DevicePortal; namespace Microsoft.Tools.WindowsDevicePortal.Tests.Core { /// <summary> /// Test class for PerformanceData APIs. /// </summary> [TestClass] public class PerformanceDataTests : BaseTests { /// <summary> /// Basic test of GET method for getting a list of running processes. /// </summary> [TestMethod] public void GetRunningProcessesTest() { TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.RunningProcessApi, HttpOperations.Get); Task<RunningProcesses> getRunningProcessesTask = TestHelpers.Portal.GetRunningProcesses(); getRunningProcessesTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, getRunningProcessesTask.Status); ValidateRunningProcesses(getRunningProcessesTask.Result); } /// <summary> /// Basic test of web socket connection for getting a list of running processes. /// </summary> [TestMethod] public void GetRunningProcessesWebSocketTest() { TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.RunningProcessApi, HttpOperations.WebSocket); ManualResetEvent runningProcessesReceived = new ManualResetEvent(false); RunningProcesses runningProcesses = null; WindowsDevicePortal.WebSocketMessageReceivedEventHandler<RunningProcesses> runningProcessesReceivedHandler = delegate(object sender, WebSocketMessageReceivedEventArgs<RunningProcesses> args) { if (args.Message != null) { runningProcesses = args.Message; runningProcessesReceived.Set(); } }; TestHelpers.Portal.RunningProcessesMessageReceived += runningProcessesReceivedHandler; Task startListeningForProcessesTask = TestHelpers.Portal.StartListeningForRunningProcesses(); startListeningForProcessesTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, startListeningForProcessesTask.Status); runningProcessesReceived.WaitOne(); Task stopListeningForProcessesTask = TestHelpers.Portal.StopListeningForRunningProcesses(); stopListeningForProcessesTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, stopListeningForProcessesTask.Status); TestHelpers.Portal.RunningProcessesMessageReceived -= runningProcessesReceivedHandler; ValidateRunningProcesses(runningProcesses); } /// <summary> /// Basic test of GET method for getting system perf without the known JSON error. /// </summary> [TestMethod] public void GetSystemPerfTest() { TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.SystemPerfApi, HttpOperations.Get); Task<SystemPerformanceInformation> getSystemPerfTask = TestHelpers.Portal.GetSystemPerf(); getSystemPerfTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, getSystemPerfTask.Status); ValidateSystemPerm(getSystemPerfTask.Result); } /// <summary> /// Basic test of web socket for getting system perf. /// </summary> [TestMethod] public void GetSystemPerfWebSocketTest() { TestHelpers.MockHttpResponder.AddMockResponse(DevicePortal.SystemPerfApi, HttpOperations.WebSocket); ManualResetEvent systemPerfReceived = new ManualResetEvent(false); SystemPerformanceInformation systemPerfInfo = null; WebSocketMessageReceivedEventHandler<SystemPerformanceInformation> systemPerfReceivedHandler = delegate(object sender, WebSocketMessageReceivedEventArgs<SystemPerformanceInformation> args) { if (args.Message != null) { systemPerfInfo = args.Message; systemPerfReceived.Set(); } }; TestHelpers.Portal.SystemPerfMessageReceived += systemPerfReceivedHandler; Task startListeningForSystemPerfTask = TestHelpers.Portal.StartListeningForSystemPerf(); startListeningForSystemPerfTask.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, startListeningForSystemPerfTask.Status); systemPerfReceived.WaitOne(); Task stopListeningForSystemPerf = TestHelpers.Portal.StopListeningForSystemPerf(); stopListeningForSystemPerf.Wait(); Assert.AreEqual(TaskStatus.RanToCompletion, stopListeningForSystemPerf.Status); TestHelpers.Portal.SystemPerfMessageReceived -= systemPerfReceivedHandler; ValidateSystemPerm(systemPerfInfo); } /// <summary> /// Validate the <see cref="RunningProcesses" /> returned from the tests. /// </summary> /// <param name="runningProcesses">The <see cref="RunningProcesses" /> to validate.</param> private static void ValidateRunningProcesses(RunningProcesses runningProcesses) { List<DeviceProcessInfo> processes = new List<DeviceProcessInfo>(runningProcesses.Processes); // Check some known things about this response. Assert.AreEqual(2, processes.Count); DeviceProcessInfo systemIdleprocess = processes[0]; Assert.IsNull(systemIdleprocess.AppName); Assert.AreEqual(systemIdleprocess.CpuUsage, 0); Assert.IsFalse(systemIdleprocess.IsRunning); Assert.IsFalse(systemIdleprocess.IsXAP); Assert.AreEqual(systemIdleprocess.Name, "System Idle Process"); Assert.IsNull(systemIdleprocess.PackageFullName); Assert.AreEqual(systemIdleprocess.PageFile, 0U); Assert.AreEqual(systemIdleprocess.PrivateWorkingSet, 4096); Assert.AreEqual(systemIdleprocess.ProcessId, 0); Assert.IsNull(systemIdleprocess.Publisher); Assert.AreEqual(systemIdleprocess.SessionId, 0U); Assert.AreEqual(systemIdleprocess.TotalCommit, 0); Assert.AreEqual(systemIdleprocess.UserName, "NT AUTHORITY\\SYSTEM"); Assert.IsNull(systemIdleprocess.Version); Assert.AreEqual(systemIdleprocess.VirtualSize, 65536); Assert.AreEqual(systemIdleprocess.WorkingSet, 4096U); DeviceProcessInfo devHomeProcess = processes[1]; Assert.IsNull(devHomeProcess.AppName); Assert.AreEqual(devHomeProcess.CpuUsage, 0); Assert.IsFalse(devHomeProcess.IsRunning); Assert.IsFalse(devHomeProcess.IsXAP); Assert.AreEqual(devHomeProcess.Name, "svchost.exe"); Assert.IsNull(devHomeProcess.PackageFullName); Assert.AreEqual(devHomeProcess.PageFile, 5472256U); Assert.AreEqual(devHomeProcess.PrivateWorkingSet, 4755456); Assert.AreEqual(devHomeProcess.ProcessId, 892); Assert.IsNull(devHomeProcess.Publisher); Assert.AreEqual(devHomeProcess.SessionId, 0U); Assert.AreEqual(devHomeProcess.TotalCommit, 5914624); Assert.AreEqual(devHomeProcess.UserName, "NT AUTHORITY\\SYSTEM"); Assert.IsNull(devHomeProcess.Version); Assert.AreEqual(devHomeProcess.VirtualSize, 2203387539456); Assert.AreEqual(devHomeProcess.WorkingSet, 17285120U); } /// <summary> /// Validate the <see cref="SystemPerformanceInformation" /> returned from the tests. /// </summary> /// <param name="systemPerfInfo">The <see cref="SystemPerformanceInformation" /> to validate.</param> private static void ValidateSystemPerm(SystemPerformanceInformation systemPerfInfo) { // Check some known things about this response. Assert.AreEqual(systemPerfInfo.AvailablePages, 369054); Assert.AreEqual(systemPerfInfo.CommitLimit, 784851); Assert.AreEqual(systemPerfInfo.CommittedPages, 322627); Assert.AreEqual(systemPerfInfo.CpuLoad, 1); Assert.AreEqual(systemPerfInfo.IoOtherSpeed, 3692); Assert.AreEqual(systemPerfInfo.IoReadSpeed, 36); Assert.AreEqual(systemPerfInfo.IoWriteSpeed, 6480); Assert.AreEqual(systemPerfInfo.NonPagedPoolPages, 42504); Assert.AreEqual(systemPerfInfo.PageSize, 4096); Assert.AreEqual(systemPerfInfo.PagedPoolPages, 30697); Assert.AreEqual(systemPerfInfo.TotalInstalledKb, 1048592); Assert.AreEqual(systemPerfInfo.TotalPages, 655360); Assert.AreEqual(systemPerfInfo.GpuData.Adapters.Count, 1); GpuAdapter gpuAdapter = systemPerfInfo.GpuData.Adapters[0]; Assert.AreEqual(gpuAdapter.DedicatedMemory, 268435456U); Assert.AreEqual(gpuAdapter.DedicatedMemoryUsed, 79282176U); Assert.AreEqual(gpuAdapter.Description, "ROOT\\SraKmd\\0000"); Assert.AreEqual(gpuAdapter.SystemMemory, 1342177280U); Assert.AreEqual(gpuAdapter.SystemMemoryUsed, 10203136U); Assert.AreEqual(gpuAdapter.EnginesUtilization.Count, 7); double enguineUtilization = gpuAdapter.EnginesUtilization[0]; Assert.AreEqual(enguineUtilization, 0.0011459999950602651); NetworkPerformanceData networkPerformanceData = systemPerfInfo.NetworkData; Assert.AreEqual(networkPerformanceData.BytesIn, 15000); Assert.AreEqual(networkPerformanceData.BytesOut, 0); } } }