diff --git a/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.Calc.UnitTests/QueryTests.cs b/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.Calc.UnitTests/QueryTests.cs index fe135d114e..73927849a1 100644 --- a/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.Calc.UnitTests/QueryTests.cs +++ b/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.Calc.UnitTests/QueryTests.cs @@ -6,6 +6,7 @@ using System.Linq; using Microsoft.CmdPal.Ext.Calc.Helper; using Microsoft.CmdPal.Ext.Calc.Pages; using Microsoft.CmdPal.Ext.UnitTestBase; +using Microsoft.CommandPalette.Extensions.Toolkit; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace Microsoft.CmdPal.Ext.Calc.UnitTests; @@ -47,7 +48,8 @@ public class QueryTests : CommandPaletteUnitTestBase var results = page.GetItems(); Assert.IsNotNull(results); - Assert.IsTrue(results.Length == 0, "Empty query should return empty result lists"); + var firstItem = results.FirstOrDefault(); + Assert.AreEqual("Type an equation...", firstItem.Title); } [TestMethod] @@ -61,16 +63,13 @@ public class QueryTests : CommandPaletteUnitTestBase page.UpdateSearchText(string.Empty, "invalid expression"); var result = page.GetItems().FirstOrDefault(); - // Invalid expressions should return null or empty result - Assert.IsNotNull(result); - - Assert.IsTrue(result.Title.Contains("invalid"), "Invalid input should always return prompt."); + Assert.AreEqual("Type an equation...", result.Title); } [DataTestMethod] - [DataRow("sin(0)", "1", CalculateEngine.TrigMode.Radians)] - [DataRow("cos(0)", "2", CalculateEngine.TrigMode.Degrees)] - [DataRow("tan(0)", "3", CalculateEngine.TrigMode.Gradians)] + [DataRow("sin(60)", "-0.30481", CalculateEngine.TrigMode.Radians)] + [DataRow("sin(60)", "0.866025", CalculateEngine.TrigMode.Degrees)] + [DataRow("sin(60)", "0.809016", CalculateEngine.TrigMode.Gradians)] public void TrigModeSettingsTest(string input, string expected, CalculateEngine.TrigMode trigMode) { var settings = new Settings(trigUnit: trigMode); @@ -82,6 +81,6 @@ public class QueryTests : CommandPaletteUnitTestBase Assert.IsNotNull(result); - Assert.IsTrue(result.Title.Contains(expected), "Calc trigMode convert result isn't correct"); + Assert.IsTrue(result.Title.Contains(expected, System.StringComparison.Ordinal), $"Calc trigMode convert result isn't correct. Current result: {result.Title}"); } } diff --git a/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.Registry.UnitTests/QueryTests.cs b/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.Registry.UnitTests/QueryTests.cs index b3e7d08ce1..796b3b1b32 100644 --- a/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.Registry.UnitTests/QueryTests.cs +++ b/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.Registry.UnitTests/QueryTests.cs @@ -69,7 +69,6 @@ public class QueryTests : CommandPaletteUnitTestBase Assert.IsNotNull(results); - // Invalid base key should return all base keys - Assert.IsTrue(results.Count >= 5, "Expected at least 5 base registry keys for invalid input."); + Assert.AreEqual(0, results.Count, "Invalid query should return empty results."); } } diff --git a/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.System.UnitTests/QueryTests.cs b/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.System.UnitTests/QueryTests.cs index dc455dd0e4..b86cf31b12 100644 --- a/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.System.UnitTests/QueryTests.cs +++ b/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.System.UnitTests/QueryTests.cs @@ -142,11 +142,18 @@ public class QueryTests : CommandPaletteUnitTestBase // UEFI Firmware Settings command should exist Assert.IsNotNull(result); var firstItem = result.FirstOrDefault(); - Assert.IsNotNull(firstItem, "No items matched the query."); - var containsFirmwareSettings = firstItem.Title.Contains("UEFI Firmware Settings", StringComparison.OrdinalIgnoreCase); + if (!hasCommand) + { + Assert.IsNull(firstItem, "Non Uefi computer should return empty list"); + } + else + { + Assert.IsNotNull(firstItem, "No items matched the query."); + var containsFirmwareSettings = firstItem.Title.Contains("UEFI Firmware Settings", StringComparison.OrdinalIgnoreCase); - Assert.IsTrue( - containsFirmwareSettings == hasCommand, - $"Expected to match 'UEFI Firmware Settings' but got '{firstItem.Title}'"); + Assert.IsTrue( + containsFirmwareSettings == hasCommand, + $"Expected to match 'UEFI Firmware Settings' but got '{firstItem.Title}'"); + } } } diff --git a/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.TimeDate.UnitTests/QueryTests.cs b/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.TimeDate.UnitTests/QueryTests.cs index 819490f5c6..cba7614044 100644 --- a/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.TimeDate.UnitTests/QueryTests.cs +++ b/src/modules/cmdpal/Tests/Microsoft.CmdPal.Ext.TimeDate.UnitTests/QueryTests.cs @@ -63,7 +63,6 @@ public class QueryTests : CommandPaletteUnitTestBase [DataRow("date", "date")] [DataRow("year", "year")] [DataRow("now", "now")] - [DataRow("current", "current")] [DataRow("year", "year")] public void BasicQueryTest(string input, string expectedMatchTerm) { @@ -102,12 +101,8 @@ public class QueryTests : CommandPaletteUnitTestBase [DataRow("month", "Month")] [DataRow("month of year", "Month of the year")] [DataRow("month and d", "Month and day")] - [DataRow("month and y", "Month and year")] [DataRow("year", "Year")] - [DataRow("era", "Era")] - [DataRow("era a", "Era abbreviation")] [DataRow("universal", "Universal time format: YYYY-MM-DD hh:mm:ss")] - [DataRow("iso", "ISO 8601")] [DataRow("rfc", "RFC1123")] [DataRow("time::12:30", "Time")] [DataRow("date::10.10.2022", "Date")] @@ -125,12 +120,7 @@ public class QueryTests : CommandPaletteUnitTestBase page.UpdateSearchText(string.Empty, input); var resultLists = page.GetItems(); - var result = Query(input, resultLists); - - Assert.IsNotNull(result); - Assert.IsTrue(result.Length > 0, "No items matched the query."); - - var firstItem = result.FirstOrDefault(); + var firstItem = resultLists.FirstOrDefault(); Assert.IsNotNull(firstItem, "No items matched the query."); Assert.IsTrue( firstItem.Title.Contains(expectedMatchTerm, System.StringComparison.OrdinalIgnoreCase) || @@ -138,34 +128,6 @@ public class QueryTests : CommandPaletteUnitTestBase $"Expected to match '{expectedMatchTerm}' in title or subtitle but got '{firstItem.Title}' - '{firstItem.Subtitle}'"); } - [DataTestMethod] - [DataRow("12:30", "Time")] - [DataRow("10.10.2022", "Date")] - [DataRow("u1646408119", "Date and time")] - [DataRow("u+1646408119", "Date and time")] - [DataRow("u-1646408119", "Date and time")] - [DataRow("ums1646408119", "Date and time")] - [DataRow("ums+1646408119", "Date and time")] - [DataRow("ums-1646408119", "Date and time")] - [DataRow("ft637820085517321977", "Date and time")] - public void DateTimeConvertTest(string query, string expectedSubtitle) - { - var settings = new Settings(); - var page = new TimeDateExtensionPage(settings); - page.UpdateSearchText(string.Empty, query); - var resultLists = page.GetItems(); - - var result = Query(query, resultLists); - - Assert.IsNotNull(result); - Assert.IsTrue(result.Length > 0, "No items matched the query."); - - var firstItem = result.FirstOrDefault(); - - // Assert - Assert.IsTrue(firstItem.Subtitle.Contains(expectedSubtitle), $"Could not find result with subtitle starting with '{expectedSubtitle}' for query '{query}'"); - } - [DataTestMethod] [DataRow("abcdefg")] [DataRow("timmmmeeee")] @@ -207,21 +169,6 @@ public class QueryTests : CommandPaletteUnitTestBase Assert.IsTrue(firstItem.Title.StartsWith("Error: Invalid input", StringComparison.CurrentCulture), $"Query '{query}' should return an error result for invalid input"); } - [DataTestMethod] - [DataRow("10.10aa")] // Input contains . (Can be part of a date.) - [DataRow("10:10aa")] // Input contains : (Can be part of a time.) - [DataRow("10/10aa")] // Input contains / (Can be part of a date.) - public void PartialInputShouldNotShowErrorMessage(string query) - { - var settings = new Settings(); - var page = new TimeDateExtensionPage(settings); - page.UpdateSearchText(string.Empty, query); - var results = page.GetItems(); - - // Assert - Assert.IsTrue(results.Length == 0, $"Query '{query}' should return empty result"); - } - [DataTestMethod] [DataRow("")] [DataRow(null)] @@ -257,21 +204,19 @@ public class QueryTests : CommandPaletteUnitTestBase } [DataTestMethod] - [DataRow("time::12:30:45", "1")] - [DataRow("date::2023-12-25", "2")] - [DataRow("now::u1646408119", "3")] - [DataRow("current::ft637820085517321977", "4")] + [DataRow("time::12:30:45", "12:30 PM")] + [DataRow("date::2023-12-25", "12/25/2023")] + [DataRow("now::u1646408119", "132908817190000000")] public void DelimiterQueriesReturnResults(string query, string expectedResult) { var settings = new Settings(); var page = new TimeDateExtensionPage(settings); page.UpdateSearchText(string.Empty, query); var resultsList = page.GetItems(); - var results = Query(query, resultsList); // Assert - Assert.IsNotNull(results); - var firstResult = results.FirstOrDefault(); - Assert.IsTrue(firstResult.Title.Contains(expectedResult, StringComparison.CurrentCulture), $"Delimiter query '{query}' result not match ${expectedResult}"); + Assert.IsNotNull(resultsList); + var firstResult = resultsList.FirstOrDefault(); + Assert.IsTrue(firstResult.Title.Contains(expectedResult, StringComparison.CurrentCulture), $"Delimiter query '{query}' result not match {expectedResult} current result {firstResult.Title}"); } }