QueryTests.cs
1 // Copyright (c) Microsoft Corporation 2 // The Microsoft Corporation licenses this file to you under the MIT license. 3 // See the LICENSE file in the project root for more information. 4 5 using System.Linq; 6 using Microsoft.CmdPal.Ext.Registry.Helpers; 7 using Microsoft.CmdPal.Ext.UnitTestBase; 8 using Microsoft.CommandPalette.Extensions; 9 using Microsoft.CommandPalette.Extensions.Toolkit; 10 using Microsoft.VisualStudio.TestTools.UnitTesting; 11 12 namespace Microsoft.CmdPal.Ext.Registry.UnitTests; 13 14 [TestClass] 15 public class QueryTests : CommandPaletteUnitTestBase 16 { 17 [DataTestMethod] 18 [DataRow("HKLM", "HKEY_LOCAL_MACHINE")] 19 [DataRow("HKCU", "HKEY_CURRENT_USER")] 20 [DataRow("HKCR", "HKEY_CLASSES_ROOT")] 21 [DataRow("HKU", "HKEY_USERS")] 22 [DataRow("HKCC", "HKEY_CURRENT_CONFIG")] 23 public void TopLevelPageQueryTest(string input, string expectedKeyName) 24 { 25 var settings = new Settings(); 26 var page = new RegistryListPage(settings); 27 var results = page.Query(input); 28 29 Assert.IsNotNull(results); 30 Assert.IsTrue(results.Count > 0, "No items matched the query."); 31 32 var firstItem = results.FirstOrDefault(); 33 Assert.IsNotNull(firstItem, "No items matched the query."); 34 Assert.IsTrue( 35 firstItem.Title.Contains(expectedKeyName, System.StringComparison.OrdinalIgnoreCase), 36 $"Expected to match '{expectedKeyName}' but got '{firstItem.Title}'"); 37 } 38 39 [TestMethod] 40 public void EmptyQueryTest() 41 { 42 var settings = new Settings(); 43 var page = new RegistryListPage(settings); 44 var results = page.Query(string.Empty); 45 46 Assert.IsNotNull(results); 47 48 // Empty query should return all base keys 49 Assert.IsTrue(results.Count >= 5, "Expected at least 5 base registry keys."); 50 } 51 52 [TestMethod] 53 public void NullQueryTest() 54 { 55 var settings = new Settings(); 56 var page = new RegistryListPage(settings); 57 var results = page.Query(null); 58 59 Assert.IsNotNull(results); 60 Assert.AreEqual(0, results.Count, "Null query should return empty results."); 61 } 62 63 [TestMethod] 64 public void InvalidBaseKeyTest() 65 { 66 var settings = new Settings(); 67 var page = new RegistryListPage(settings); 68 var results = page.Query("INVALID_KEY"); 69 70 Assert.IsNotNull(results); 71 72 Assert.AreEqual(0, results.Count, "Invalid query should return empty results."); 73 } 74 }