UWPTests.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.Collections.Generic;
 7  
 8  using Castle.Core.Internal;
 9  using Microsoft.Plugin.Program.Programs;
10  using Microsoft.VisualStudio.TestTools.UnitTesting;
11  using Moq;
12  
13  namespace Microsoft.Plugin.Program.UnitTests.Programs
14  {
15      [TestClass]
16      public class UWPTests
17      {
18          private static readonly PackageWrapper DevelopmentModeApp = new PackageWrapper(
19              "DevelopmentApp",
20              "DevelopmentApp",
21              "DevelopmentApp",
22              false,
23              true,
24              "AppxManifests/DevelopmentApp");
25  
26          private static readonly PackageWrapper FrameworkApp = new PackageWrapper(
27              "FrameworkApp",
28              "FrameworkApp",
29              "FrameworkApp",
30              true,
31              false,
32              "AppxManifests/FrameworkApp");
33  
34          private static readonly PackageWrapper PackagedApp = new PackageWrapper(
35              "PackagedApp",
36              "PackagedApp",
37              "PackagedApp",
38              false,
39              false,
40              "AppxManifests/PackagedApp");
41  
42          [TestMethod]
43          public void AllShouldReturnPackagesWithDevelopmentModeWhenCalled()
44          {
45              // Arrange
46              Main.Settings = new ProgramPluginSettings();
47              List<IPackage> packages = new List<IPackage>() { DevelopmentModeApp, PackagedApp };
48              var mock = new Mock<IPackageManager>();
49              mock.Setup(x => x.FindPackagesForCurrentUser()).Returns(packages);
50              UWP.PackageManagerWrapper = mock.Object;
51  
52              // Act
53              var applications = UWP.All();
54  
55              // Assert
56              Assert.AreEqual(2, applications.Length);
57              Assert.IsTrue(Array.FindAll(applications, x => x.Name == "DevelopmentApp").Length > 0);
58              Assert.IsTrue(Array.FindAll(applications, x => x.Name == "PackagedApp").Length > 0);
59          }
60  
61          [TestMethod]
62          public void AllShouldNotReturnPackageFrameworksWhenCalled()
63          {
64              // Arrange
65              Main.Settings = new ProgramPluginSettings();
66              List<IPackage> packages = new List<IPackage>() { FrameworkApp, PackagedApp };
67              var mock = new Mock<IPackageManager>();
68              mock.Setup(x => x.FindPackagesForCurrentUser()).Returns(packages);
69              UWP.PackageManagerWrapper = mock.Object;
70  
71              // Act
72              var applications = UWP.All();
73  
74              // Assert
75              Assert.AreEqual(1, applications.Length);
76              Assert.IsTrue(Array.FindAll(applications, x => x.Name == "PackagedApp").Length > 0);
77          }
78  
79          [TestMethod]
80          public void PowerToysRunShouldNotAddInvalidAppWhenIndexingUWPApplications()
81          {
82              // Arrange
83              PackageWrapper invalidPackagedApp = new PackageWrapper();
84              Main.Settings = new ProgramPluginSettings();
85              List<IPackage> packages = new List<IPackage>() { invalidPackagedApp };
86              var mock = new Mock<IPackageManager>();
87              mock.Setup(x => x.FindPackagesForCurrentUser()).Returns(packages);
88              UWP.PackageManagerWrapper = mock.Object;
89  
90              // Act
91              var applications = UWP.All();
92  
93              // Assert
94              Assert.AreEqual(0, applications.Length);
95          }
96      }
97  }