diff --git a/UnitTests/PInvoke/Shared/WinError/HRESULTTests.cs b/UnitTests/PInvoke/Shared/WinError/HRESULTTests.cs index 22edf026..1945a776 100644 --- a/UnitTests/PInvoke/Shared/WinError/HRESULTTests.cs +++ b/UnitTests/PInvoke/Shared/WinError/HRESULTTests.cs @@ -1,4 +1,5 @@ using NUnit.Framework; +using NUnit.Framework.Constraints; using System; using System.ComponentModel; using System.Runtime.InteropServices; @@ -9,10 +10,11 @@ namespace Vanara.PInvoke.Tests public class HRESULTTests { [TestCase(HRESULT.E_ACCESSDENIED, 0x80070005, ExpectedResult = 0)] - [TestCase(HRESULT.E_ACCESSDENIED, 0, ExpectedResult = 1)] - [TestCase(HRESULT.E_ACCESSDENIED, 5U, ExpectedResult = 1)] + [TestCase(HRESULT.E_ACCESSDENIED, 0, ExpectedResult = -1)] + [TestCase(HRESULT.E_ACCESSDENIED, 5U, ExpectedResult = -1)] [TestCase(HRESULT.E_ACCESSDENIED, HRESULT.E_INVALIDARG, ExpectedResult = -1)] [TestCase(HRESULT.E_INVALIDARG, HRESULT.E_ACCESSDENIED, ExpectedResult = 1)] + [TestCase(HRESULT.S_OK, HRESULT.E_ACCESSDENIED, ExpectedResult = 1)] public int CompareToTest(int c, object obj) => new HRESULT(c).CompareTo(obj); [TestCase(HRESULT.E_ACCESSDENIED, HRESULT.E_INVALIDARG, ExpectedResult = -1)] @@ -78,15 +80,15 @@ namespace Vanara.PInvoke.Tests Assert.That(() => c.ToByte(f), Throws.Exception); Assert.That(() => c.ToInt16(f), Throws.Exception); Assert.That(() => c.ToUInt16(f), Throws.Exception); - Assert.That(() => c.ToInt32(f), Throws.Exception); - Assert.That(c.ToUInt32(f), Is.EqualTo(cv.ToUInt32(f))); + Assert.That(c.ToUInt32(f), Is.EqualTo(unchecked((uint)HRESULT.E_ACCESSDENIED))); + Assert.That(c.ToInt32(f), Is.EqualTo(cv.ToInt32(f))); Assert.That(c.ToInt64(f), Is.EqualTo(cv.ToInt64(f))); - Assert.That(c.ToUInt64(f), Is.EqualTo(cv.ToUInt64(f))); + Assert.That(c.ToUInt64(f), Is.EqualTo((ulong)unchecked((uint)HRESULT.E_ACCESSDENIED))); Assert.That(c.ToSingle(f), Is.EqualTo(cv.ToSingle(f))); Assert.That(c.ToDouble(f), Is.EqualTo(cv.ToDouble(f))); Assert.That(c.ToDecimal(f), Is.EqualTo(cv.ToDecimal(f))); Assert.That(() => c.ToDateTime(f), Throws.Exception); - Assert.That(c.ToString(f), Is.EqualTo("E_ACCESSDENIED")); + Assert.That(c.ToString(f), Does.StartWith("E_ACCESSDENIED")); Assert.That(c.ToType(typeof(int), f), Is.EqualTo(cv.ToType(typeof(int), f))); } @@ -120,12 +122,14 @@ namespace Vanara.PInvoke.Tests Assert.That(() => HRESULT.ThrowIfFailed(0), Throws.Nothing); } - [TestCase(HRESULT.E_INVALIDARG, ExpectedResult = "E_INVALIDARG")] - [TestCase(HRESULT.E_ACCESSDENIED, ExpectedResult = "E_ACCESSDENIED")] - [TestCase(0x80070003, ExpectedResult = "HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND)")] - [TestCase(0x80990003, ExpectedResult = "0x80990003")] - [TestCase(0x80079254, ExpectedResult = "0x80079254")] - public string ToStringTest(int c) => new HRESULT(c).ToString(); + [TestCase(HRESULT.E_INVALIDARG, "E_INVALIDARG")] + [TestCase(HRESULT.E_ACCESSDENIED, "E_ACCESSDENIED")] + public void ToStringTest(int c, string res) => Assert.That(new HRESULT(c).ToString(), Does.StartWith(res)); + + [TestCase(0x80070003, "HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND)")] + [TestCase(0x80990003, "0x80990003")] + [TestCase(0x80079254, "0x80079254")] + public void ToStringTestU(uint c, string res) => Assert.That(new HRESULT(c).ToString(), Does.StartWith(res)); [Test] public void TypeConverterTest() diff --git a/UnitTests/PInvoke/Shared/WinError/NTStatusTests.cs b/UnitTests/PInvoke/Shared/WinError/NTStatusTests.cs index 5a15e390..e46a89ae 100644 --- a/UnitTests/PInvoke/Shared/WinError/NTStatusTests.cs +++ b/UnitTests/PInvoke/Shared/WinError/NTStatusTests.cs @@ -20,7 +20,7 @@ namespace Vanara.PInvoke.Tests nts = new NTStatus(0); Assert.That((int)nts, Is.Zero); nts = new NTStatus(NTStatus.STATUS_CANCELLED); - Assert.That((int)nts, Is.EqualTo(0xC0000120)); + Assert.That((uint)nts, Is.EqualTo(0xC0000120)); Assert.That(nts.Failed); Assert.That(nts.CustomerDefined, Is.False); Assert.That(nts.Code, Is.EqualTo(0x120)); @@ -29,8 +29,8 @@ namespace Vanara.PInvoke.Tests } [TestCase(NTStatus.STATUS_ACCESS_DENIED, 0xC0000022, ExpectedResult = 0)] - [TestCase(NTStatus.STATUS_ACCESS_DENIED, 0, ExpectedResult = 1)] - [TestCase(NTStatus.STATUS_ACCESS_DENIED, 0x22U, ExpectedResult = 1)] + [TestCase(NTStatus.STATUS_ACCESS_DENIED, 0, ExpectedResult = -1)] + [TestCase(NTStatus.STATUS_ACCESS_DENIED, 0x22U, ExpectedResult = -1)] [TestCase(NTStatus.STATUS_ACCESS_DENIED, NTStatus.STATUS_ACPI_INVALID_ARGUMENT, ExpectedResult = -1)] [TestCase(NTStatus.STATUS_ACPI_INVALID_ARGUMENT, NTStatus.STATUS_ACCESS_DENIED, ExpectedResult = 1)] public int CompareToTest(int c, object obj) => new NTStatus(c).CompareTo(obj); @@ -87,16 +87,16 @@ namespace Vanara.PInvoke.Tests Assert.That(() => c.ToByte(f), Throws.Exception); Assert.That(() => c.ToInt16(f), Throws.Exception); Assert.That(() => c.ToUInt16(f), Throws.Exception); - Assert.That(() => c.ToInt32(f), Throws.Exception); - Assert.That(c.ToUInt32(f), Is.EqualTo(cv.ToUInt32(f))); + Assert.That(c.ToInt32(f), Is.EqualTo(cv.ToInt32(f))); + Assert.That(c.ToUInt32(f), Is.EqualTo((uint)nts)); Assert.That(c.ToInt64(f), Is.EqualTo(cv.ToInt64(f))); - Assert.That(c.ToUInt64(f), Is.EqualTo(cv.ToUInt64(f))); + Assert.That(c.ToUInt64(f), Is.EqualTo((ulong)(uint)nts)); Assert.That(c.ToSingle(f), Is.EqualTo(cv.ToSingle(f))); Assert.That(c.ToDouble(f), Is.EqualTo(cv.ToDouble(f))); Assert.That(c.ToDecimal(f), Is.EqualTo(cv.ToDecimal(f))); Assert.That(c.ToBoolean(f), Is.EqualTo(nts.Succeeded)); Assert.That(() => c.ToDateTime(f), Throws.Exception); - Assert.That(c.ToString(f), Is.EqualTo("STATUS_ACCESS_DENIED")); + Assert.That(c.ToString(f), Does.StartWith("STATUS_ACCESS_DENIED")); Assert.That(c.ToType(typeof(int), f), Is.EqualTo(cv.ToType(typeof(int), f))); } @@ -130,11 +130,11 @@ namespace Vanara.PInvoke.Tests Assert.That(() => NTStatus.ThrowIfFailed(0), Throws.Nothing); } - [TestCase(NTStatus.STATUS_ACPI_INVALID_ARGUMENT, ExpectedResult = "STATUS_ACPI_INVALID_ARGUMENT")] - [TestCase(NTStatus.STATUS_ACCESS_DENIED, ExpectedResult = "STATUS_ACCESS_DENIED")] - [TestCase(0xC0000022, ExpectedResult = "STATUS_ACCESS_DENIED")] - [TestCase(0x80990003, ExpectedResult = "0x80990003")] - [TestCase(0x80079254, ExpectedResult = "0x80079254")] - public string ToStringTest(int c) => new NTStatus(c).ToString(); + [TestCase(NTStatus.STATUS_ACPI_INVALID_ARGUMENT, "STATUS_ACPI_INVALID_ARGUMENT")] + [TestCase(NTStatus.STATUS_ACCESS_DENIED, "STATUS_ACCESS_DENIED")] + [TestCase(unchecked((int)0xC0000022), "STATUS_ACCESS_DENIED")] + [TestCase(unchecked((int)0x80990003), "0x80990003")] + [TestCase(unchecked((int)0x80079254), "0x80079254")] + public void ToStringTest(int c, string val) => Assert.That(new NTStatus(c).ToString(), Does.StartWith(val)); } } \ No newline at end of file diff --git a/UnitTests/PInvoke/Shared/WinError/Win32ErrorTests.cs b/UnitTests/PInvoke/Shared/WinError/Win32ErrorTests.cs index c2a8267f..39f22473 100644 --- a/UnitTests/PInvoke/Shared/WinError/Win32ErrorTests.cs +++ b/UnitTests/PInvoke/Shared/WinError/Win32ErrorTests.cs @@ -74,7 +74,7 @@ namespace Vanara.PInvoke.Tests Assert.That(c.ToDouble(f), Is.EqualTo(cv.ToDouble(f))); Assert.That(c.ToDecimal(f), Is.EqualTo(cv.ToDecimal(f))); Assert.That(() => c.ToDateTime(f), Throws.Exception); - Assert.That(c.ToString(f), Is.EqualTo("ERROR_ACCESS_DENIED")); + Assert.That(c.ToString(f), Does.StartWith("ERROR_ACCESS_DENIED")); Assert.That(c.ToType(typeof(uint), f), Is.EqualTo(cv.ToType(typeof(uint), f))); } @@ -117,11 +117,11 @@ namespace Vanara.PInvoke.Tests Assert.That(() => Win32Error.ThrowLastError(), Throws.Exception); } - [TestCase(Win32Error.ERROR_INVALID_PARAMETER, ExpectedResult = "ERROR_INVALID_PARAMETER")] - [TestCase(Win32Error.ERROR_ACCESS_DENIED, ExpectedResult = "ERROR_ACCESS_DENIED")] - [TestCase(0x00000003, ExpectedResult = "ERROR_PATH_NOT_FOUND")] - [TestCase(0x00990003, ExpectedResult = "0x00990003")] - public string ToStringTest(uint c) => new Win32Error(c).ToString(); + [TestCase(Win32Error.ERROR_INVALID_PARAMETER, "ERROR_INVALID_PARAMETER")] + [TestCase(Win32Error.ERROR_ACCESS_DENIED, "ERROR_ACCESS_DENIED")] + [TestCase(0x00000003U, "ERROR_PATH_NOT_FOUND")] + [TestCase(0x00990003U, "0x00990003")] + public void ToStringTest(uint c, string val) => Assert.That(new Win32Error(c).ToString(), Does.StartWith(val)); [Test] public void TypeConverterTest()