/ src / modules / cmdpal / Tests / Microsoft.CmdPal.Ext.TimeDate.UnitTests / TimeDateCommandsProviderTests.cs
TimeDateCommandsProviderTests.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.Globalization;
 7  using Microsoft.VisualStudio.TestTools.UnitTesting;
 8  
 9  namespace Microsoft.CmdPal.Ext.TimeDate.UnitTests
10  {
11      [TestClass]
12      public class TimeDateCommandsProviderTests
13      {
14          private CultureInfo originalCulture;
15          private CultureInfo originalUiCulture;
16  
17          [TestInitialize]
18          public void Setup()
19          {
20              // Set culture to 'en-us'
21              originalCulture = CultureInfo.CurrentCulture;
22              CultureInfo.CurrentCulture = new CultureInfo("en-us", false);
23              originalUiCulture = CultureInfo.CurrentUICulture;
24              CultureInfo.CurrentUICulture = new CultureInfo("en-us", false);
25          }
26  
27          [TestCleanup]
28          public void Cleanup()
29          {
30              // Restore original culture
31              CultureInfo.CurrentCulture = originalCulture;
32              CultureInfo.CurrentUICulture = originalUiCulture;
33          }
34  
35          [TestMethod]
36          public void TimeDateCommandsProviderInitializationTest()
37          {
38              // Act
39              var provider = new TimeDateCommandsProvider();
40  
41              // Assert
42              Assert.IsNotNull(provider);
43              Assert.IsNotNull(provider.DisplayName);
44              Assert.AreEqual("com.microsoft.cmdpal.builtin.datetime", provider.Id);
45              Assert.IsNotNull(provider.Icon);
46              Assert.IsNotNull(provider.Settings);
47          }
48  
49          [TestMethod]
50          public void TopLevelCommandsTest()
51          {
52              // Setup
53              var provider = new TimeDateCommandsProvider();
54  
55              // Act
56              var commands = provider.TopLevelCommands();
57  
58              // Assert
59              Assert.IsNotNull(commands);
60              Assert.AreEqual(1, commands.Length);
61              Assert.IsNotNull(commands[0]);
62              Assert.IsNotNull(commands[0].Title);
63              Assert.IsNotNull(commands[0].Icon);
64          }
65  
66          [TestMethod]
67          public void FallbackCommandsTest()
68          {
69              // Setup
70              var provider = new TimeDateCommandsProvider();
71  
72              // Act
73              var fallbackCommands = provider.FallbackCommands();
74  
75              // Assert
76              Assert.IsNotNull(fallbackCommands);
77              Assert.AreEqual(1, fallbackCommands.Length);
78              Assert.IsNotNull(fallbackCommands[0]);
79          }
80  
81          [TestMethod]
82          public void DisplayNameTest()
83          {
84              // Setup
85              var provider = new TimeDateCommandsProvider();
86  
87              // Act
88              var displayName = provider.DisplayName;
89  
90              // Assert
91              Assert.IsFalse(string.IsNullOrEmpty(displayName));
92          }
93      }
94  }