/ src / modules / cmdpal / Tests / Microsoft.CmdPal.Ext.Apps.UnitTests / AllAppsCommandProviderTests.cs
AllAppsCommandProviderTests.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; 6 using System.Linq; 7 using System.Threading.Tasks; 8 using Microsoft.VisualStudio.TestTools.UnitTesting; 9 10 namespace Microsoft.CmdPal.Ext.Apps.UnitTests; 11 12 [TestClass] 13 public class AllAppsCommandProviderTests : AppsTestBase 14 { 15 [TestMethod] 16 public void ProviderHasDisplayName() 17 { 18 // Setup 19 var provider = new AllAppsCommandProvider(); 20 21 // Assert 22 Assert.IsNotNull(provider.DisplayName); 23 Assert.IsTrue(provider.DisplayName.Length > 0); 24 } 25 26 [TestMethod] 27 public void ProviderHasIcon() 28 { 29 // Setup 30 var provider = new AllAppsCommandProvider(); 31 32 // Assert 33 Assert.IsNotNull(provider.Icon); 34 } 35 36 [TestMethod] 37 public void TopLevelCommandsNotEmpty() 38 { 39 // Setup 40 var provider = new AllAppsCommandProvider(); 41 42 // Act 43 var commands = provider.TopLevelCommands(); 44 45 // Assert 46 Assert.IsNotNull(commands); 47 Assert.IsTrue(commands.Length > 0); 48 } 49 50 [TestMethod] 51 public void LookupAppWithEmptyNameReturnsNotNull() 52 { 53 // Setup 54 var mockApp = TestDataHelper.CreateTestWin32Program("Notepad", "C:\\Windows\\System32\\notepad.exe"); 55 MockCache.AddWin32Program(mockApp); 56 var page = new AllAppsPage(MockCache); 57 58 var provider = new AllAppsCommandProvider(page); 59 60 // Act 61 var result = provider.LookupAppByDisplayName(string.Empty); 62 63 // Assert 64 Assert.IsNotNull(result); 65 } 66 67 [TestMethod] 68 public async Task ProviderWithMockData_LookupApp_ReturnsCorrectApp() 69 { 70 // Arrange 71 var testApp = TestDataHelper.CreateTestWin32Program("TestApp", "C:\\TestApp.exe"); 72 MockCache.AddWin32Program(testApp); 73 74 var provider = new AllAppsCommandProvider(Page); 75 76 // Wait for initialization to complete 77 await WaitForPageInitializationAsync(); 78 79 // Act 80 var result = provider.LookupAppByDisplayName("TestApp"); 81 82 // Assert 83 Assert.IsNotNull(result); 84 Assert.AreEqual("TestApp", result.Title); 85 } 86 87 [TestMethod] 88 public async Task ProviderWithMockData_LookupApp_ReturnsNullForNonExistentApp() 89 { 90 // Arrange 91 var testApp = TestDataHelper.CreateTestWin32Program("TestApp", "C:\\TestApp.exe"); 92 MockCache.AddWin32Program(testApp); 93 94 var provider = new AllAppsCommandProvider(Page); 95 96 // Wait for initialization to complete 97 await WaitForPageInitializationAsync(); 98 99 // Act 100 var result = provider.LookupAppByDisplayName("NonExistentApp"); 101 102 // Assert 103 Assert.IsNull(result); 104 } 105 106 [TestMethod] 107 public void ProviderWithMockData_TopLevelCommands_IncludesListItem() 108 { 109 // Arrange 110 var provider = new AllAppsCommandProvider(Page); 111 112 // Act 113 var commands = provider.TopLevelCommands(); 114 115 // Assert 116 Assert.IsNotNull(commands); 117 Assert.IsTrue(commands.Length >= 1); // At least the list item should be present 118 } 119 }