ErrorCommand.cs (5425B)
1 // ----------------------------------------------------------------------------- 2 // <copyright file="ErrorCommand.cs" company="Microsoft Corporation"> 3 // Copyright (c) Microsoft Corporation. Licensed under the MIT License. 4 // </copyright> 5 // ----------------------------------------------------------------------------- 6 7 namespace AppInstallerCLIE2ETests 8 { 9 using AppInstallerCLIE2ETests.Helpers; 10 using NUnit.Framework; 11 12 /// <summary> 13 /// Test error command. 14 /// </summary> 15 public class ErrorCommand 16 { 17 /// <summary> 18 /// Reset settings file to avoid affecting output from error command. 19 /// </summary> 20 [OneTimeSetUp] 21 public void OneTimeSetup() 22 { 23 WinGetSettingsHelper.InitializeWingetSettings(); 24 } 25 26 /// <summary> 27 /// Tests 0. 28 /// </summary> 29 [Test] 30 public void Success() 31 { 32 var result = TestCommon.RunAICLICommand("error", "0"); 33 Assert.AreEqual(Constants.ErrorCode.S_OK, result.ExitCode); 34 Assert.True(result.StdOut.Contains("0x00000000")); 35 } 36 37 /// <summary> 38 /// Tests 0x8a15c001. 39 /// </summary> 40 [Test] 41 public void HexError() 42 { 43 var result = TestCommon.RunAICLICommand("error", "0x8a15c001"); 44 Assert.AreEqual(Constants.ErrorCode.S_OK, result.ExitCode); 45 Assert.True(result.StdOut.Contains("0x8a15c001")); 46 Assert.True(result.StdOut.Contains("WINGET_CONFIG_ERROR_INVALID_CONFIGURATION_FILE")); 47 } 48 49 /// <summary> 50 /// Tests a number larger than an HRESULT. 51 /// </summary> 52 [Test] 53 public void HexErrorTooBig() 54 { 55 var result = TestCommon.RunAICLICommand("error", "0x8a15c0014"); 56 Assert.AreEqual(Constants.ErrorCode.E_INVALIDARG, result.ExitCode); 57 Assert.True(result.StdOut.Contains("The given number is too large to be an HRESULT.")); 58 } 59 60 /// <summary> 61 /// Tests 2316681217. 62 /// </summary> 63 [Test] 64 public void DecimalError() 65 { 66 var result = TestCommon.RunAICLICommand("error", "2316681217"); 67 Assert.AreEqual(Constants.ErrorCode.S_OK, result.ExitCode); 68 Assert.True(result.StdOut.Contains("0x8a15c001")); 69 Assert.True(result.StdOut.Contains("WINGET_CONFIG_ERROR_INVALID_CONFIGURATION_FILE")); 70 } 71 72 /// <summary> 73 /// Tests -1978335191. 74 /// </summary> 75 [Test] 76 public void NegativeDecimalError() 77 { 78 var result = TestCommon.RunAICLICommand("error", "-- -1978335191"); 79 Assert.AreEqual(Constants.ErrorCode.S_OK, result.ExitCode); 80 Assert.True(result.StdOut.Contains("0x8a150029")); 81 Assert.True(result.StdOut.Contains("APPINSTALLER_CLI_ERROR_MANIFEST_VALIDATION_FAILURE")); 82 } 83 84 /// <summary> 85 /// Tests 0x8a15c000. 86 /// </summary> 87 [Test] 88 public void HexErrorNotFound() 89 { 90 var result = TestCommon.RunAICLICommand("error", "0x8a15c000"); 91 Assert.AreEqual(Constants.ErrorCode.S_OK, result.ExitCode); 92 Assert.True(result.StdOut.Contains("0x8a15c000")); 93 Assert.True(result.StdOut.Contains("Unknown error code")); 94 } 95 96 /// <summary> 97 /// Tests 0xA150202. 98 /// </summary> 99 [Test] 100 public void NonError() 101 { 102 var result = TestCommon.RunAICLICommand("error", "0xA150202"); 103 Assert.AreEqual(Constants.ErrorCode.S_OK, result.ExitCode); 104 Assert.True(result.StdOut.Contains("0x0a150202")); 105 Assert.True(result.StdOut.Contains("WINGET_INSTALLED_STATUS_INSTALL_LOCATION_NOT_APPLICABLE")); 106 } 107 108 /// <summary> 109 /// Tests WINGET_CONFIG_ERROR_INVALID_CONFIGURATION_FILE. 110 /// </summary> 111 [Test] 112 public void Symbol() 113 { 114 var result = TestCommon.RunAICLICommand("error", "WINGET_CONFIG_ERROR_INVALID_CONFIGURATION_FILE"); 115 Assert.AreEqual(Constants.ErrorCode.S_OK, result.ExitCode); 116 Assert.True(result.StdOut.Contains("0x8a15c001")); 117 Assert.True(result.StdOut.Contains("WINGET_CONFIG_ERROR_INVALID_CONFIGURATION_FILE")); 118 Assert.AreEqual(2, result.StdOut.Split('\n', System.StringSplitOptions.RemoveEmptyEntries).Length); 119 } 120 121 /// <summary> 122 /// Tests config. 123 /// </summary> 124 [Test] 125 public void String() 126 { 127 var result = TestCommon.RunAICLICommand("error", "config"); 128 Assert.AreEqual(Constants.ErrorCode.S_OK, result.ExitCode); 129 Assert.True(result.StdOut.Contains("0x8a15c001")); 130 Assert.True(result.StdOut.Contains("WINGET_CONFIG_ERROR_INVALID_CONFIGURATION_FILE")); 131 Assert.True(result.StdOut.Contains("0x8a15c110")); 132 Assert.True(result.StdOut.Contains("WINGET_CONFIG_ERROR_UNIT_SETTING_CONFIG_ROOT")); 133 134 // This contains config in it's message. 135 Assert.True(result.StdOut.Contains("0x8a150038")); 136 Assert.True(result.StdOut.Contains("APPINSTALLER_CLI_ERROR_UNSUPPORTED_RESTSOURCE")); 137 } 138 } 139 }