ResultHelperTests.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.CmdPal.Ext.TimeDate.Helpers; 8 using Microsoft.VisualStudio.TestTools.UnitTesting; 9 10 namespace Microsoft.CmdPal.Ext.TimeDate.UnitTests; 11 12 [TestClass] 13 public class ResultHelperTests 14 { 15 private CultureInfo originalCulture; 16 private CultureInfo originalUiCulture; 17 18 [TestInitialize] 19 public void Setup() 20 { 21 // Set culture to 'en-us' 22 originalCulture = CultureInfo.CurrentCulture; 23 CultureInfo.CurrentCulture = new CultureInfo("en-us", false); 24 originalUiCulture = CultureInfo.CurrentUICulture; 25 CultureInfo.CurrentUICulture = new CultureInfo("en-us", false); 26 } 27 28 [TestCleanup] 29 public void CleanUp() 30 { 31 // Set culture to original value 32 CultureInfo.CurrentCulture = originalCulture; 33 CultureInfo.CurrentUICulture = originalUiCulture; 34 } 35 36 [TestMethod] 37 public void ResultHelper_CreateListItem_ReturnsValidItem() 38 { 39 // Setup 40 var availableResult = new AvailableResult 41 { 42 Label = "Test Label", 43 Value = "Test Value", 44 }; 45 46 // Act 47 var listItem = availableResult.ToListItem(); 48 49 // Assert 50 Assert.IsNotNull(listItem); 51 Assert.AreEqual("Test Value", listItem.Title); 52 Assert.AreEqual("Test Label", listItem.Subtitle); 53 } 54 55 [TestMethod] 56 public void ResultHelper_CreateListItem_HandlesNullInput() 57 { 58 AvailableResult availableResult = null; 59 60 // Act & Assert 61 Assert.ThrowsException<System.NullReferenceException>(() => availableResult.ToListItem()); 62 } 63 64 [TestMethod] 65 public void ResultHelper_CreateListItem_HandlesEmptyValues() 66 { 67 // Setup 68 var availableResult = new AvailableResult 69 { 70 Label = string.Empty, 71 Value = string.Empty, 72 }; 73 74 // Act 75 var listItem = availableResult.ToListItem(); 76 77 // Assert 78 Assert.IsNotNull(listItem); 79 Assert.AreEqual("Copy", listItem.Title); 80 Assert.AreEqual(string.Empty, listItem.Subtitle); 81 } 82 83 [TestMethod] 84 public void ResultHelper_CreateListItem_WithIcon() 85 { 86 // Setup 87 var availableResult = new AvailableResult 88 { 89 Label = "Test Label", 90 Value = "Test Value", 91 IconType = ResultIconType.Date, 92 }; 93 94 // Act 95 var listItem = availableResult.ToListItem(); 96 97 // Assert 98 Assert.IsNotNull(listItem); 99 Assert.AreEqual("Test Value", listItem.Title); 100 Assert.AreEqual("Test Label", listItem.Subtitle); 101 Assert.IsNotNull(listItem.Icon); 102 } 103 104 [TestMethod] 105 public void ResultHelper_CreateListItem_WithLongText() 106 { 107 // Setup 108 var longText = new string('A', 1000); 109 var availableResult = new AvailableResult 110 { 111 Label = longText, 112 Value = longText, 113 }; 114 115 // Act 116 var listItem = availableResult.ToListItem(); 117 118 // Assert 119 Assert.IsNotNull(listItem); 120 Assert.AreEqual(longText, listItem.Title); 121 Assert.AreEqual(longText, listItem.Subtitle); 122 } 123 124 [TestMethod] 125 public void ResultHelper_CreateListItem_WithSpecialCharacters() 126 { 127 // Setup 128 var specialText = "Test & < > \" ' \n \t"; 129 var availableResult = new AvailableResult 130 { 131 Label = specialText, 132 Value = specialText, 133 }; 134 135 // Act 136 var listItem = availableResult.ToListItem(); 137 138 // Assert 139 Assert.IsNotNull(listItem); 140 Assert.AreEqual(specialText, listItem.Title); 141 Assert.AreEqual(specialText, listItem.Subtitle); 142 } 143 }