mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-03 17:56:44 +02:00
106 lines
3.4 KiB
C#
106 lines
3.4 KiB
C#
|
|
// Copyright (c) Microsoft Corporation
|
||
|
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
||
|
|
// See the LICENSE file in the project root for more information.
|
||
|
|
|
||
|
|
using System;
|
||
|
|
using System.Linq;
|
||
|
|
using Microsoft.CmdPal.Ext.System.Helpers;
|
||
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||
|
|
|
||
|
|
namespace Microsoft.CmdPal.Ext.System.UnitTests;
|
||
|
|
|
||
|
|
[TestClass]
|
||
|
|
public class QueryTests
|
||
|
|
{
|
||
|
|
[DataTestMethod]
|
||
|
|
[DataRow("shutdown", "Shutdown")]
|
||
|
|
[DataRow("restart", "Restart")]
|
||
|
|
[DataRow("sign out", "Sign out")]
|
||
|
|
[DataRow("lock", "Lock")]
|
||
|
|
[DataRow("sleep", "Sleep")]
|
||
|
|
[DataRow("hibernate", "Hibernate")]
|
||
|
|
public void SystemCommandsTest(string typedString, string expectedCommand)
|
||
|
|
{
|
||
|
|
// Setup
|
||
|
|
var commands = Commands.GetSystemCommands(false, false, false, false);
|
||
|
|
|
||
|
|
// Act
|
||
|
|
var result = commands.Where(c => c.Title.Contains(expectedCommand, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
|
||
|
|
|
||
|
|
// Assert
|
||
|
|
Assert.IsNotNull(result);
|
||
|
|
Assert.IsTrue(result.Title.Contains(expectedCommand, StringComparison.OrdinalIgnoreCase));
|
||
|
|
}
|
||
|
|
|
||
|
|
[TestMethod]
|
||
|
|
public void RecycleBinCommandTest()
|
||
|
|
{
|
||
|
|
// Setup
|
||
|
|
var commands = Commands.GetSystemCommands(false, false, false, false);
|
||
|
|
|
||
|
|
// Act
|
||
|
|
var result = commands.Where(c => c.Title.Contains("Recycle", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
|
||
|
|
|
||
|
|
// Assert
|
||
|
|
Assert.IsNotNull(result);
|
||
|
|
}
|
||
|
|
|
||
|
|
[TestMethod]
|
||
|
|
public void NetworkCommandsTest()
|
||
|
|
{
|
||
|
|
// Test that network commands can be retrieved
|
||
|
|
try
|
||
|
|
{
|
||
|
|
var networkPropertiesList = NetworkConnectionProperties.GetList();
|
||
|
|
Assert.IsTrue(networkPropertiesList.Count >= 0); // Should not throw exceptions
|
||
|
|
}
|
||
|
|
catch (Exception ex)
|
||
|
|
{
|
||
|
|
Assert.Fail($"Network commands should not throw exceptions: {ex.Message}");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
[TestMethod]
|
||
|
|
public void UefiCommandIsAvailableTest()
|
||
|
|
{
|
||
|
|
// Setup
|
||
|
|
var firmwareType = Win32Helpers.GetSystemFirmwareType();
|
||
|
|
var isUefiMode = firmwareType == FirmwareType.Uefi;
|
||
|
|
|
||
|
|
// Act
|
||
|
|
var commands = Commands.GetSystemCommands(isUefiMode, false, false, false);
|
||
|
|
var uefiCommand = commands.Where(c => c.Title.Contains("UEFI", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
|
||
|
|
|
||
|
|
// Assert
|
||
|
|
if (isUefiMode)
|
||
|
|
{
|
||
|
|
Assert.IsNotNull(uefiCommand);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
// UEFI command may still exist but be disabled on non-UEFI systems
|
||
|
|
Assert.IsTrue(true); // Test environment independent
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
[TestMethod]
|
||
|
|
public void FirmwareTypeTest()
|
||
|
|
{
|
||
|
|
// Test that GetSystemFirmwareType returns a valid enum value
|
||
|
|
var firmwareType = Win32Helpers.GetSystemFirmwareType();
|
||
|
|
Assert.IsTrue(Enum.IsDefined(typeof(FirmwareType), firmwareType));
|
||
|
|
}
|
||
|
|
|
||
|
|
[TestMethod]
|
||
|
|
public void EmptyRecycleBinCommandTest()
|
||
|
|
{
|
||
|
|
// Test that empty recycle bin command exists
|
||
|
|
var commands = Commands.GetSystemCommands(false, false, false, false);
|
||
|
|
var result = commands.Where(c => c.Title.Contains("Empty", StringComparison.OrdinalIgnoreCase) &&
|
||
|
|
c.Title.Contains("Recycle", StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
|
||
|
|
|
||
|
|
// Empty recycle bin command should exist
|
||
|
|
Assert.IsNotNull(result);
|
||
|
|
}
|
||
|
|
}
|