winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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 }