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.UnitTestBase;
 7  using Microsoft.VisualStudio.TestTools.UnitTesting;
 8  
 9  namespace Microsoft.CmdPal.Ext.Apps.UnitTests;
10  
11  [TestClass]
12  public class QueryTests : CommandPaletteUnitTestBase
13  {
14      [TestMethod]
15      public void QueryReturnsExpectedResults()
16      {
17          // Arrange
18          var mockCache = new MockAppCache();
19          var win32App = TestDataHelper.CreateTestWin32Program("Notepad", "C:\\Windows\\System32\\notepad.exe");
20          var uwpApp = TestDataHelper.CreateTestUWPApplication("Calculator");
21          mockCache.AddWin32Program(win32App);
22          mockCache.AddUWPApplication(uwpApp);
23  
24          for (var i = 0; i < 10; i++)
25          {
26              mockCache.AddWin32Program(TestDataHelper.CreateTestWin32Program($"App{i}"));
27              mockCache.AddUWPApplication(TestDataHelper.CreateTestUWPApplication($"UWP App {i}"));
28          }
29  
30          var page = new AllAppsPage(mockCache);
31          var provider = new AllAppsCommandProvider(page);
32  
33          // Act
34          var allItems = page.GetItems();
35  
36          // Assert
37          var notepadResult = Query("notepad", allItems).FirstOrDefault();
38          Assert.IsNotNull(notepadResult);
39          Assert.AreEqual("Notepad", notepadResult.Title);
40  
41          var calculatorResult = Query("cal", allItems).FirstOrDefault();
42          Assert.IsNotNull(calculatorResult);
43          Assert.AreEqual("Calculator", calculatorResult.Title);
44      }
45  }