diff --git a/Core/InteropServices/NativeMemoryStream.cs b/Core/InteropServices/NativeMemoryStream.cs
index 098c0cef..a4f45959 100644
--- a/Core/InteropServices/NativeMemoryStream.cs
+++ b/Core/InteropServices/NativeMemoryStream.cs
@@ -391,12 +391,13 @@ public class NativeMemoryStream : Stream
/// Writes the specified array into the stream.
/// The items.
/// The packing method for the strings.
- public void Write(IEnumerable items, StringListPackMethod method = StringListPackMethod.Concatenated)
+ public void Write(IEnumerable items, StringListPackMethod method = StringListPackMethod.Concatenated)
{
if (access == FileAccess.Read) throw new NotSupportedException();
if (items == null) return;
if (method == StringListPackMethod.Concatenated)
{
+ if (items.Any(s => s == null)) throw new ArgumentException("Cannot use Concatenated method with null strings.");
items.MarshalToPtr(method, i => { EnsureCapacity(Position + i); return PositionPtr; }, out var sz, CharSet);
position += sz;
length += sz;
diff --git a/Core/InteropServices/SafeByteArray.cs b/Core/InteropServices/SafeByteArray.cs
index caa748ac..1bb6d72c 100644
--- a/Core/InteropServices/SafeByteArray.cs
+++ b/Core/InteropServices/SafeByteArray.cs
@@ -13,7 +13,7 @@ public class SafeByteArray : SafeMemoryHandle, IList,
{
/// Initializes a new instance of the class from a copy of a managed byte array.
/// The array of bytes to copy.
- public SafeByteArray(byte[] array) : base(array?.Length ?? 0)
+ public SafeByteArray(byte[]? array) : base(array?.Length ?? 0)
{
if (array != null)
Marshal.Copy(array, 0, handle, array.Length);
diff --git a/UnitTests/Core/Collections/EventedListTests.cs b/UnitTests/Core/Collections/EventedListTests.cs
index 20bb11e8..37b078d0 100644
--- a/UnitTests/Core/Collections/EventedListTests.cs
+++ b/UnitTests/Core/Collections/EventedListTests.cs
@@ -45,9 +45,9 @@ public class EventedListTests
l.Sort();
var x = l[27];
Assert.That(l.BinarySearch(x), Is.EqualTo(27));
- Assert.That(l.BinarySearch(x, new CEClass()), Is.EqualTo(27));
- Assert.That(l.BinarySearch(10, 40, x, new CEClass()), Is.EqualTo(27));
- Assert.That(l.BinarySearch(50, 40, x, new CEClass()), Is.Negative);
+ Assert.That(l.BinarySearch(x, Comparer.Default), Is.EqualTo(27));
+ Assert.That(l.BinarySearch(10, 40, x, Comparer.Default), Is.EqualTo(27));
+ Assert.That(l.BinarySearch(50, 40, x, Comparer.Default), Is.Negative);
}
[Test()]
@@ -74,7 +74,7 @@ public class EventedListTests
{
var a = new[] { new EClass(1), new EClass(2) };
var l = new EventedList(a);
- Assert.That(l.ConvertAll(e => new EClass(e.Prop - 1)).Count, Is.EqualTo(2));
+ Assert.That(l.ConvertAll(e => new EClass(e!.Prop - 1)).Count, Is.EqualTo(2));
}
[Test()]
@@ -124,8 +124,8 @@ public class EventedListTests
{
var a = new[] { new EClass(1), new EClass(2) };
var l = new EventedList(a);
- Assert.That(l.Exists(e => e.Prop == 1));
- Assert.That(!l.Exists(e => e.Prop == 7));
+ Assert.That(l.Exists(e => e!.Prop == 1));
+ Assert.That(!l.Exists(e => e!.Prop == 7));
}
[Test()]
@@ -133,8 +133,8 @@ public class EventedListTests
{
var a = new[] { new EClass(1), new EClass(2) };
var l = new EventedList(a);
- Assert.That(l.FindAll(e => e.Prop >= 1), Is.EquivalentTo(l));
- Assert.That(l.FindAll(e => e.Prop < 1), Is.Empty);
+ Assert.That(l.FindAll(e => e!.Prop >= 1), Is.EquivalentTo(l));
+ Assert.That(l.FindAll(e => e!.Prop < 1), Is.Empty);
}
[Test()]
@@ -142,9 +142,9 @@ public class EventedListTests
{
var a = new[] { new EClass(1), new EClass(2) };
var l = new EventedList(a);
- Assert.That(l.FindIndex(e => e.Prop == 2), Is.EqualTo(1));
- Assert.That(l.FindIndex(e => e.Prop == 7), Is.EqualTo(-1));
- Assert.That(l.FindIndex(1, 1, e => e.Prop == 2), Is.EqualTo(1));
+ Assert.That(l.FindIndex(e => e!.Prop == 2), Is.EqualTo(1));
+ Assert.That(l.FindIndex(e => e!.Prop == 7), Is.EqualTo(-1));
+ Assert.That(l.FindIndex(1, 1, e => e!.Prop == 2), Is.EqualTo(1));
}
[Test()]
@@ -152,9 +152,9 @@ public class EventedListTests
{
var a = new[] { new EClass(1), new EClass(2) };
var l = new EventedList(a);
- Assert.That(l.FindLastIndex(e => e.Prop == 1), Is.EqualTo(0));
- Assert.That(l.FindLastIndex(e => e.Prop == 7), Is.EqualTo(-1));
- Assert.That(l.FindLastIndex(1, 1, e => e.Prop == 2), Is.EqualTo(1));
+ Assert.That(l.FindLastIndex(e => e!.Prop == 1), Is.EqualTo(0));
+ Assert.That(l.FindLastIndex(e => e!.Prop == 7), Is.EqualTo(-1));
+ Assert.That(l.FindLastIndex(1, 1, e => e!.Prop == 2), Is.EqualTo(1));
}
[Test()]
@@ -162,8 +162,8 @@ public class EventedListTests
{
var a = new[] { new EClass(1), new EClass(2) };
var l = new EventedList(a);
- Assert.That(l.FindLast(e => e.Prop == 1), Is.EqualTo(a[0]));
- Assert.That(l.FindLast(e => e.Prop == 7), Is.Null);
+ Assert.That(l.FindLast(e => e!.Prop == 1), Is.EqualTo(a[0]));
+ Assert.That(l.FindLast(e => e!.Prop == 7), Is.Null);
}
[Test()]
@@ -171,8 +171,8 @@ public class EventedListTests
{
var a = new[] { new EClass(1), new EClass(2) };
var l = new EventedList(a);
- Assert.That(l.Find(e => e.Prop == 1), Is.EqualTo(a[0]));
- Assert.That(l.Find(e => e.Prop == 7), Is.Null);
+ Assert.That(l.Find(e => e!.Prop == 1), Is.EqualTo(a[0]));
+ Assert.That(l.Find(e => e!.Prop == 7), Is.Null);
}
[Test()]
@@ -181,7 +181,7 @@ public class EventedListTests
var i = 0;
var a = new[] { new EClass(1), new EClass(2) };
var l = new EventedList(a);
- l.ForEach(e => i += e.Prop);
+ l.ForEach(e => i += e!.Prop);
Assert.That(i, Is.EqualTo(3));
}
@@ -200,7 +200,7 @@ public class EventedListTests
var l = new EventedList(a);
var r = l.GetRange(1, 2);
Assert.That(r.Count, Is.EqualTo(2));
- Assert.That(r[0].Prop, Is.EqualTo(2));
+ Assert.That(r[0]!.Prop, Is.EqualTo(2));
}
[Test()]
@@ -219,8 +219,8 @@ public class EventedListTests
var l = new EventedList(a);
l.InsertRange(1, a);
Assert.That(l.Count, Is.EqualTo(4));
- Assert.That(l[1].Prop, Is.EqualTo(1));
- Assert.That(l[2].Prop, Is.EqualTo(2));
+ Assert.That(l[1]!.Prop, Is.EqualTo(1));
+ Assert.That(l[2]!.Prop, Is.EqualTo(2));
}
[Test()]
@@ -229,7 +229,7 @@ public class EventedListTests
var a = new[] { new EClass(1), new EClass(2) };
var l = new EventedList(a);
l.Insert(1, new EClass(3));
- Assert.That(l[1].Prop, Is.EqualTo(3));
+ Assert.That(l[1]!.Prop, Is.EqualTo(3));
}
[Test()]
@@ -247,9 +247,9 @@ public class EventedListTests
{
var a = new[] { new EClass(1), new EClass(2), new EClass(3) };
var l = new EventedList(a);
- l.RemoveAll(e => e.Prop < 3);
+ l.RemoveAll(e => e!.Prop < 3);
Assert.That(l.Count, Is.EqualTo(1));
- Assert.That(l[0].Prop, Is.EqualTo(3));
+ Assert.That(l[0]!.Prop, Is.EqualTo(3));
}
[Test()]
@@ -268,7 +268,7 @@ public class EventedListTests
var l = new EventedList(a);
l.RemoveRange(0, 2);
Assert.That(l.Count, Is.EqualTo(1));
- Assert.That(l[0].Prop, Is.EqualTo(3));
+ Assert.That(l[0]!.Prop, Is.EqualTo(3));
}
[Test()]
@@ -286,8 +286,8 @@ public class EventedListTests
var a = new[] { new EClass(1), new EClass(2), new EClass(3) };
var l = new EventedList(a);
l.Reverse();
- Assert.That(l[0].Prop, Is.EqualTo(3));
- Assert.That(l[2].Prop, Is.EqualTo(1));
+ Assert.That(l[0]!.Prop, Is.EqualTo(3));
+ Assert.That(l[2]!.Prop, Is.EqualTo(1));
}
[Test()]
@@ -296,8 +296,8 @@ public class EventedListTests
var a = new[] { new EClass(1), new EClass(2), new EClass(3) };
var l = new EventedList(a);
l.Reverse(1, 2);
- Assert.That(l[0].Prop, Is.EqualTo(1));
- Assert.That(l[2].Prop, Is.EqualTo(2));
+ Assert.That(l[0]!.Prop, Is.EqualTo(1));
+ Assert.That(l[2]!.Prop, Is.EqualTo(2));
}
[Test()]
@@ -306,8 +306,8 @@ public class EventedListTests
var a = new[] { new EClass(3), new EClass(1), new EClass(0) };
var l = new EventedList(a);
l.Sort();
- Assert.That(l[0].Prop, Is.EqualTo(0));
- Assert.That(l[2].Prop, Is.EqualTo(3));
+ Assert.That(l[0]!.Prop, Is.EqualTo(0));
+ Assert.That(l[2]!.Prop, Is.EqualTo(3));
}
[Test()]
@@ -315,9 +315,9 @@ public class EventedListTests
{
var a = new[] { new EClass(3), new EClass(1), new EClass(0) };
var l = new EventedList(a);
- l.Sort(1, 2, new CEClass());
- Assert.That(l[0].Prop, Is.EqualTo(3));
- Assert.That(l[2].Prop, Is.EqualTo(1));
+ l.Sort(1, 2, Comparer.Default);
+ Assert.That(l[0]!.Prop, Is.EqualTo(3));
+ Assert.That(l[2]!.Prop, Is.EqualTo(1));
}
[Test()]
@@ -344,25 +344,17 @@ public class EventedListTests
{
var a = new[] { new EClass(1), new EClass(2), new EClass(3) };
var l = new EventedList(a);
- Assert.That(l.TrueForAll(e => e.Prop > 1), Is.False);
- Assert.That(l.TrueForAll(e => e.Prop > 0), Is.True);
- }
-
- private class CEClass : Comparer
- {
- public override int Compare(EClass x, EClass y) => x.CompareTo(y);
+ Assert.That(l.TrueForAll(e => e!.Prop > 1), Is.False);
+ Assert.That(l.TrueForAll(e => e!.Prop > 0), Is.True);
}
private class EClass : INotifyPropertyChanged, IComparable
{
private int p;
- public EClass(int prop = 0)
- {
- p = prop;
- }
+ public EClass(int prop = 0) => p = prop;
- public event PropertyChangedEventHandler PropertyChanged;
+ public event PropertyChangedEventHandler? PropertyChanged;
public int Prop
{
@@ -374,16 +366,9 @@ public class EventedListTests
}
}
- public int CompareTo(EClass other)
- {
- if (ReferenceEquals(this, other)) return 0;
- if (ReferenceEquals(null, other)) return 1;
- return p.CompareTo(other.p);
- }
+ public int CompareTo(EClass? other) => ReferenceEquals(this, other) ? 0 : other is null ? 1 : p.CompareTo(other.p);
- protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
- {
+ protected virtual void OnPropertyChanged([CallerMemberName] string? propertyName = null) =>
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- }
}
}
\ No newline at end of file
diff --git a/UnitTests/Core/Collections/HashSet2.0Tests.cs b/UnitTests/Core/Collections/HashSet2.0Tests.cs
index fbe42d4c..433101dc 100644
--- a/UnitTests/Core/Collections/HashSet2.0Tests.cs
+++ b/UnitTests/Core/Collections/HashSet2.0Tests.cs
@@ -4,6 +4,7 @@ using System.Linq;
namespace Vanara.Collections.Generic.Tests;
+#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
[TestFixture()]
public class HashSetTests
{
diff --git a/UnitTests/Core/Collections/HistoryTests.cs b/UnitTests/Core/Collections/HistoryTests.cs
index ffba0036..19ad6eae 100644
--- a/UnitTests/Core/Collections/HistoryTests.cs
+++ b/UnitTests/Core/Collections/HistoryTests.cs
@@ -63,11 +63,11 @@ public class HistoryTests
Assert.That(history.CanSeekBackward, Is.False);
Assert.That(() => history.Current, Throws.Exception);
- void GetPropVal(object sender, PropertyChangedEventArgs e)
+ void GetPropVal(object? sender, PropertyChangedEventArgs e)
{
- var pi = history.GetType().GetProperty(e.PropertyName);
- object obj = null;
- try { obj = pi.GetValue(history); } catch (Exception ex) { obj = ex.GetType().Name; }
+ var pi = history.GetType().GetProperty(e.PropertyName!);
+ object? obj = null;
+ try { obj = pi!.GetValue(history); } catch (Exception ex) { obj = ex.GetType().Name; }
TestContext.WriteLine($"{e.PropertyName}={obj}");
}
}
diff --git a/UnitTests/Core/Extensions/IOExtensionsTests.cs b/UnitTests/Core/Extensions/IOExtensionsTests.cs
index 6cdd32b9..c7b83dd2 100644
--- a/UnitTests/Core/Extensions/IOExtensionsTests.cs
+++ b/UnitTests/Core/Extensions/IOExtensionsTests.cs
@@ -15,7 +15,7 @@ public class IOExtensionsTests
bw.Write(257);
bw.Write(new RECT(1, 1, 1, 1));
bw.Write(new PRECT(1, 1, 1, 1));
- bw.Write(null);
+ bw.Write(null);
Assert.That(() => bw.Write(DateTime.Today), Throws.ArgumentException);
var buf = ms.ToArray();
Assert.That(buf.Length == Marshal.SizeOf(typeof(int)) + Marshal.SizeOf(typeof(RECT)) + Marshal.SizeOf(typeof(PRECT)));
diff --git a/UnitTests/Core/Extensions/InteropExtensionsTests.cs b/UnitTests/Core/Extensions/InteropExtensionsTests.cs
index c57a1a0c..8e1f6feb 100644
--- a/UnitTests/Core/Extensions/InteropExtensionsTests.cs
+++ b/UnitTests/Core/Extensions/InteropExtensionsTests.cs
@@ -49,7 +49,7 @@ public class InteropExtensionsTests
Assert.AreEqual(Marshal.ReadInt32((IntPtr)h, 5 * intSz), 10);
Assert.AreEqual(Marshal.ReadInt32((IntPtr)h, 7 * intSz), 12);
var ro = ((IntPtr)h).ToArray(2, intSz);
- Assert.AreEqual(ro.Length, 2);
+ Assert.AreEqual(ro!.Length, 2);
Assert.AreEqual(ro[0].left, 0);
Assert.AreEqual(ro[1].right, 12);
}
@@ -97,7 +97,7 @@ public class InteropExtensionsTests
var chSz = 2;
Assert.That(a, Is.EqualTo(chSz * (rs[0].Length + 1) * rs.Length + chSz + intSz));
var ro = h.ToByteArray(a - intSz, intSz);
- var chars = Encoding.Unicode.GetChars(ro);
+ var chars = Encoding.Unicode.GetChars(ro!);
Assert.That(chars.Length, Is.EqualTo((a - intSz) / chSz));
Assert.That(chars[0], Is.EqualTo('s'));
Assert.That(chars[4], Is.EqualTo('\0'));
@@ -110,7 +110,7 @@ public class InteropExtensionsTests
chSz = 1;
Assert.That(a, Is.EqualTo(chSz * (rs[0].Length + 1) * rs.Length + chSz + intSz));
ro = h.ToByteArray(a - intSz, intSz);
- chars = Encoding.ASCII.GetChars(ro);
+ chars = Encoding.ASCII.GetChars(ro!);
Assert.That(chars.Length, Is.EqualTo((a - intSz) / chSz));
Assert.That(chars[0], Is.EqualTo('s'));
Assert.That(chars[4], Is.EqualTo('\0'));
@@ -123,7 +123,7 @@ public class InteropExtensionsTests
Assert.That(a, Is.EqualTo(intSz + 2));
Assert.That(() => new[] { "" }.MarshalToPtr(StringListPackMethod.Concatenated, Marshal.AllocHGlobal, out a, CharSet.Unicode, intSz), Throws.ArgumentException);
- Assert.That(() => new string[] { null }.MarshalToPtr(StringListPackMethod.Concatenated, Marshal.AllocHGlobal, out a, CharSet.Unicode, intSz), Throws.ArgumentException);
+ Assert.That(() => new string?[] { null }.MarshalToPtr(StringListPackMethod.Concatenated, Marshal.AllocHGlobal, out a, CharSet.Unicode, intSz), Throws.ArgumentException);
}
finally
{
@@ -185,7 +185,7 @@ public class InteropExtensionsTests
var rs = new[] { 10, 11, 12, 13, 14 };
var h = SafeHGlobalHandle.CreateFromList(rs, rs.Length, intSz);
var ro = ((IntPtr)h).ToArray(4, intSz);
- Assert.That(ro.Length, Is.EqualTo(4));
+ Assert.That(ro!.Length, Is.EqualTo(4));
Assert.That(ro[2], Is.EqualTo(rs[2]));
Assert.That(((IntPtr)h).ToArray(0, intSz), Is.Empty);
@@ -288,7 +288,7 @@ public class InteropExtensionsTests
Assert.That(() => ptr.ToStringEnum(CharSet.Unicode, intSz, sa.Size - 5).ToArray(), Throws.TypeOf());
Assert.That(() => ptr.ToStringEnum(CharSet.Unicode, intSz, sa.Size - 1).ToArray(), Throws.TypeOf());
}
- using (var sa = SafeHGlobalHandle.CreateFromStringList(null, StringListPackMethod.Concatenated, CharSet.Unicode, intSz))
+ using (var sa = SafeHGlobalHandle.CreateFromStringList(Enumerable.Empty(), StringListPackMethod.Concatenated, CharSet.Unicode, intSz))
{
var ptr = sa.DangerousGetHandle();
Assert.That(ptr, Is.Not.EqualTo(IntPtr.Zero));
@@ -304,21 +304,21 @@ public class InteropExtensionsTests
public void ToStringEnumPackTest()
{
var rs = new[] { "str1", "str2", null, "", "str3" };
- using (var sa = SafeHGlobalHandle.CreateFromStringList(rs, StringListPackMethod.Packed, CharSet.Ansi, intSz))
+ using (var sa = SafeHGlobalHandle.CreateFromStringList(rs!, StringListPackMethod.Packed, CharSet.Ansi, intSz))
{
var ptr = sa.DangerousGetHandle();
Assert.That(ptr, Is.Not.EqualTo(IntPtr.Zero));
var se = ptr.ToStringEnum(rs.Length, CharSet.Ansi, intSz);
Assert.That(se, Is.EquivalentTo(rs));
}
- using (var sa = SafeHGlobalHandle.CreateFromStringList(rs, StringListPackMethod.Packed, CharSet.Unicode, intSz))
+ using (var sa = SafeHGlobalHandle.CreateFromStringList(rs!, StringListPackMethod.Packed, CharSet.Unicode, intSz))
{
var ptr = sa.DangerousGetHandle();
Assert.That(ptr, Is.Not.EqualTo(IntPtr.Zero));
var se = ptr.ToStringEnum(rs.Length, CharSet.Unicode, intSz);
Assert.That(se, Is.EquivalentTo(rs));
}
- using (var sa = SafeHGlobalHandle.CreateFromStringList(null, StringListPackMethod.Packed, CharSet.Unicode, intSz))
+ using (var sa = SafeHGlobalHandle.CreateFromStringList(Enumerable.Empty(), StringListPackMethod.Packed, CharSet.Unicode, intSz))
{
var ptr = sa.DangerousGetHandle();
Assert.That(ptr, Is.Not.EqualTo(IntPtr.Zero));
@@ -330,14 +330,14 @@ public class InteropExtensionsTests
[TestCase("Some string value")]
[TestCase("")]
- [TestCase((string)null)]
- public void ToInsecureStringTest(string sval)
+ [TestCase((string?)null)]
+ public void ToInsecureStringTest(string? sval)
{
- var ss = sval.ToSecureString();
+ var ss = sval?.ToSecureString();
if (sval != null)
{
Assert.That(ss, Is.Not.Null);
- Assert.That(ss.Length, Is.EqualTo(sval.Length));
+ Assert.That(ss!.Length, Is.EqualTo(sval.Length));
var s = ss.ToInsecureString();
Assert.That(s, Is.EqualTo(sval));
}
@@ -351,20 +351,20 @@ public class InteropExtensionsTests
public void ToInsecureStringTest()
{
Assert.That(IntPtr.Zero.ToSecureString(4), Is.Null);
- Assert.That(((System.Security.SecureString)null).ToInsecureString(), Is.Null);
+ Assert.That(((System.Security.SecureString?)null)?.ToInsecureString(), Is.Null);
}
[TestCase("Some string value")]
[TestCase("")]
- [TestCase((string)null)]
- public void ToSecureStringTest(string sval)
+ [TestCase((string?)null)]
+ public void ToSecureStringTest(string? sval)
{
var ms = new SafeCoTaskMemString(sval);
var ss = ms.DangerousGetHandle().ToSecureString();
if (sval != null)
{
Assert.That(ss, Is.Not.Null);
- Assert.That(ss.Length, Is.EqualTo(sval.Length));
+ Assert.That(ss!.Length, Is.EqualTo(sval.Length));
var s = ss.ToInsecureString();
Assert.That(s, Is.EqualTo(sval));
@@ -372,7 +372,7 @@ public class InteropExtensionsTests
{
ss = ms.DangerousGetHandle().ToSecureString(1);
Assert.That(ss, Is.Not.Null);
- Assert.That(ss.Length, Is.EqualTo(1));
+ Assert.That(ss!.Length, Is.EqualTo(1));
s = ss.ToInsecureString();
Assert.That(s, Is.EqualTo(sval.Substring(0, 1)));
}
@@ -404,7 +404,7 @@ public class InteropExtensionsTests
var h = mem.DangerousGetHandle();
// null
- Assert.That(h.Write((object)null), Is.EqualTo(0));
+ Assert.That(h.Write((object?)null), Is.EqualTo(0));
// bytes
Assert.That(h.Write((object)new byte[] { 1, 2, 4, 5 }), Is.EqualTo(4));
diff --git a/UnitTests/Core/Extensions/ReflectionExtensionsTests.cs b/UnitTests/Core/Extensions/ReflectionExtensionsTests.cs
index 99742d55..0f0946c0 100644
--- a/UnitTests/Core/Extensions/ReflectionExtensionsTests.cs
+++ b/UnitTests/Core/Extensions/ReflectionExtensionsTests.cs
@@ -13,7 +13,7 @@ public class ReflectionExtensionsTests
{
public class X
{
- public string Str { get; set; }
+ public string? Str { get; set; }
}
[Test]
@@ -36,7 +36,7 @@ public class ReflectionExtensionsTests
Assert.That(dt.GetPropertyValue("Ticks", 0L), Is.EqualTo(dt.Ticks));
Assert.That(dt.GetPropertyValue("Ticks"), Is.EqualTo(dt.Ticks));
// Has private value
- Assert.That(dt.GetPropertyValue("InternalTicks"), Is.EqualTo(dt.Ticks));
+ Assert.That(dt.GetPropertyValue("UTicks"), Is.EqualTo(dt.Ticks));
// Bad propname
Assert.That(() => dt.GetPropertyValue("Tacks"), Throws.Exception);
Assert.That(() => dt.GetPropertyValue("Tacks", null), Is.Null);
@@ -182,17 +182,19 @@ public class ReflectionExtensionsTests
Assert.That(dt.InvokeMethod(new object[] { 2017, 1, 1 }, "ToBinary"), Is.Not.EqualTo(0));
Assert.That(dt.InvokeMethod(new object[] { 2017, 1, 1 }, "AddHours", (double)1), Is.EqualTo(new DateTime(2017, 1, 1) + TimeSpan.FromHours(1)));
}
+
[Test()]
public void InvokeNotOverrideTest()
{
var t = new TestDerived();
var mi = typeof(TestBase).GetMethod("GetValue", Type.EmptyTypes);
- Assert.That(mi.InvokeNotOverride(t), Is.EqualTo(0));
- Assert.That(() => mi.InvokeNotOverride(t, 2), Throws.Exception);
+ Assert.NotNull(mi);
+ Assert.That(mi!.InvokeNotOverride(t), Is.EqualTo(0));
+ Assert.That(() => mi!.InvokeNotOverride(t, 2), Throws.Exception);
mi = typeof(TestBase).GetMethod("GetValue", new[] { typeof(int), typeof(int) });
- Assert.That(mi.InvokeNotOverride(t, 1, 2), Is.EqualTo(0));
+ Assert.That(mi!.InvokeNotOverride(t, 1, 2), Is.EqualTo(0));
mi = typeof(TestBase).GetMethod("GetValue", new[] { typeof(int), typeof(int) });
- Assert.That(() => mi.InvokeNotOverride(t, 'c', 2), Throws.Exception);
+ Assert.That(() => mi!.InvokeNotOverride(t, 'c', 2), Throws.Exception);
}
[Test()]
diff --git a/UnitTests/Core/InteropServices/GenericSafeHandleTests.cs b/UnitTests/Core/InteropServices/GenericSafeHandleTests.cs
index d679b6cb..7759ede4 100644
--- a/UnitTests/Core/InteropServices/GenericSafeHandleTests.cs
+++ b/UnitTests/Core/InteropServices/GenericSafeHandleTests.cs
@@ -21,7 +21,9 @@ public class GenericSafeHandleTests
[Test]
public void GenericSafeHandleCloseMethodNull()
{
+#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
Assert.Throws(() => new GenericSafeHandle((IntPtr)1, null));
+#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type.
}
[Test]
diff --git a/UnitTests/Core/InteropServices/MarshalingStreamTests.cs b/UnitTests/Core/InteropServices/MarshalingStreamTests.cs
index 7c30595e..83640770 100644
--- a/UnitTests/Core/InteropServices/MarshalingStreamTests.cs
+++ b/UnitTests/Core/InteropServices/MarshalingStreamTests.cs
@@ -52,12 +52,14 @@ namespace Vanara.InteropServices.Tests;
Assert.That(ms.Position, Is.EqualTo(sizeof(int)));
ms.Seek(0, SeekOrigin.Begin);
byte[] ba = new byte[] { 0x2 };
- Assert.That(() => ms.Poke(null, 0), Throws.ArgumentNullException);
- Assert.That(() => ms.Poke(ba, 1000), Throws.ArgumentException);
+#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
+ Assert.That(() => ms.Poke(null, 0), Throws.ArgumentNullException);
+#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type.
+ Assert.That(() => ms.Poke(ba, 1000), Throws.ArgumentException);
Assert.That(() => ms.Poke(ba, -1), Throws.TypeOf());
ms.Poke(ba, 1);
Assert.That(ms.Read(), Is.EqualTo(0x00000102));
- Assert.That(() => ms.Read(), Throws.TypeOf());
+ Assert.That(ms.Read, Throws.TypeOf());
}
[Test()]
@@ -77,8 +79,10 @@ namespace Vanara.InteropServices.Tests;
byte[] buf = new byte[24];
ms.Read(buf, 0, buf.Length);
Assert.That(buf, Is.EquivalentTo(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3 }));
- Assert.That(() => ms.Read(null, 0, 0), Throws.ArgumentNullException);
- Assert.That(() => ms.Read(buf, 0, 30), Throws.ArgumentException);
+#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
+ Assert.That(() => ms.Read(null, 0, 0), Throws.ArgumentNullException);
+#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type.
+ Assert.That(() => ms.Read(buf, 0, 30), Throws.ArgumentException);
Assert.That(() => ms.Read(buf, -1, 0), Throws.TypeOf());
ms.Position = m.Size - 10;
Assert.That(() => ms.Read(buf, 0, buf.Length), Throws.Nothing);
@@ -101,15 +105,17 @@ namespace Vanara.InteropServices.Tests;
using (SafeHGlobalHandle m = new(10))
using (MarshalingStream ms = new(m, m.Size))
{
- Assert.That(() => ms.Write(null, 0, 0), Throws.ArgumentNullException);
- byte[] bytes = new byte[] { 0, 0, 0, 0, 0, 0, 0, 3 };
+#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
+ Assert.That(() => ms.Write(null, 0, 0), Throws.ArgumentNullException);
+ byte[] bytes = new byte[] { 0, 0, 0, 0, 0, 0, 0, 3 };
Assert.That(() => ms.Write(bytes, 1, 8), Throws.ArgumentException);
Assert.That(() => ms.Write(bytes, -1, 8), Throws.TypeOf());
Assert.That(() => ms.Write(bytes, 1, -8), Throws.TypeOf());
Assert.That(() => ms.Write(new byte[22]), Throws.TypeOf());
- ms.Write((SafeHGlobalHandle)null);
+ ms.Write((SafeHGlobalHandle?)null);
Assert.That(ms.Position, Is.Zero);
- ms.Write((string[])null);
+ ms.Write((string[]?)null);
+#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type.
Assert.That(ms.Position, Is.Zero);
Assert.That(() => ms.Write(0L), Throws.Nothing);
}
diff --git a/UnitTests/Core/InteropServices/NativeMemoryStreamTests.cs b/UnitTests/Core/InteropServices/NativeMemoryStreamTests.cs
index 28fa4b12..e38ca792 100644
--- a/UnitTests/Core/InteropServices/NativeMemoryStreamTests.cs
+++ b/UnitTests/Core/InteropServices/NativeMemoryStreamTests.cs
@@ -5,6 +5,7 @@ using System.Linq;
namespace Vanara.InteropServices.Tests;
+#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
[TestFixture()]
public class NativeMemoryStreamTests
{
@@ -76,7 +77,7 @@ public class NativeMemoryStreamTests
Assert.That(() => ms.Read(), Throws.InstanceOf());
Assert.That(() => ms.Read(typeof(int)), Throws.InstanceOf());
Assert.That(() => ms.Read(new byte[3], 0, 3), Throws.InstanceOf());
- Assert.That(() => ms.ReadByte(), Throws.InstanceOf());
+ Assert.That(ms.ReadByte, Throws.InstanceOf());
Assert.That(() => ms.ReadArray(typeof(byte), 1, false), Throws.InstanceOf());
Assert.That(() => ms.ReadReference(), Throws.InstanceOf());
Assert.That(() => ms.ReadReference(), Throws.InstanceOf());
@@ -201,7 +202,7 @@ public class NativeMemoryStreamTests
Assert.That(() => ms.Read(), Throws.InstanceOf());
Assert.That(() => ms.Read(typeof(int)), Throws.InstanceOf());
Assert.That(() => ms.Read(new byte[3], 0, 3), Throws.InstanceOf());
- Assert.That(() => ms.ReadByte(), Throws.InstanceOf());
+ Assert.That(ms.ReadByte, Throws.InstanceOf());
Assert.That(() => ms.ReadArray(typeof(byte), 1, false), Throws.InstanceOf());
Assert.That(() => ms.ReadReference(), Throws.InstanceOf());
Assert.That(() => ms.ReadReference(), Throws.InstanceOf());
@@ -219,14 +220,14 @@ public class NativeMemoryStreamTests
Assert.That(() => ms.WriteReference(testStr), Throws.Nothing);
Assert.That(ms.Length, Is.EqualTo(24 + IntPtr.Size * 2));
Assert.That(ms.Position, Is.EqualTo(IntPtr.Size * 2));
- Assert.That(() => ms.WriteReference((string)null), Throws.Nothing);
+ Assert.That(() => ms.WriteReference((string?)null), Throws.Nothing);
Assert.That(ms.Length, Is.EqualTo(24 + IntPtr.Size * 3));
Assert.That(ms.Position, Is.EqualTo(IntPtr.Size * 3));
var ptrs = ms.Pointer.ToArray(3);
Assert.That(ptrs, Is.EquivalentTo(new[] { IntPtr.Zero, IntPtr.Zero, IntPtr.Zero }));
ms.Flush();
Assert.That(ms.Capacity, Is.EqualTo((ms.Length / 20 + 1) * 20));
- ptrs = ms.Pointer.ToArray(3);
+ ptrs = ms.Pointer.ToArray(3)!;
Assert.That(ptrs, Is.Not.EquivalentTo(new[] { IntPtr.Zero, IntPtr.Zero, IntPtr.Zero }));
Assert.That(StringHelper.GetString(ptrs[0], ms.CharSet), Is.EqualTo(""));
Assert.That(StringHelper.GetString(ptrs[1], ms.CharSet), Is.EqualTo(testStr));
@@ -313,7 +314,7 @@ public class NativeMemoryStreamTests
public void StringEnumTest()
{
var abc = new[] { "A", "B", "C" };
- var a_c = new[] { "A", null, "C" };
+ string?[] a_c = new[] { "A", null, "C" };
using var ms = new NativeMemoryStream(128, 128);
Assert.That(() => ms.Write(null, StringListPackMethod.Concatenated), Throws.Nothing);
@@ -423,7 +424,7 @@ public class NativeMemoryStreamTests
Assert.That(() => ms.ReadArray(null, 0, false), Throws.ArgumentNullException);
Assert.That(() => ms.ReadArray(typeof(int), -1, false), Throws.InstanceOf());
Assert.That(() => ms.ReadArray(typeof(int), 0, false), Throws.Nothing);
- Assert.That(ms.ReadArray(typeof(int), 0, false).Length, Is.Zero);
+ Assert.That(ms.ReadArray(typeof(int), 0, false)!.Length, Is.Zero);
Assert.That(() => ms.ReadArray(typeof(Guid), 100, false), Throws.InstanceOf());
Assert.That(ms.ReadArray(typeof(long), arr.Length, false), Is.EquivalentTo(arr));
diff --git a/UnitTests/Core/InteropServices/SafeByteArrayTests.cs b/UnitTests/Core/InteropServices/SafeByteArrayTests.cs
index 3fb3dc34..70f8d426 100644
--- a/UnitTests/Core/InteropServices/SafeByteArrayTests.cs
+++ b/UnitTests/Core/InteropServices/SafeByteArrayTests.cs
@@ -19,7 +19,7 @@ public class SafeByteArrayTests
Assert.That(a[4] == 4);
Assert.That(a.IsReadOnly, Is.False);
- byte[] nullBytes = null;
+ byte[]? nullBytes = null;
a = new SafeByteArray(nullBytes);
Assert.That(a.Count == 0);
}
@@ -44,7 +44,9 @@ public class SafeByteArrayTests
Assert.That(a.Count == bytes.Length);
Assert.That(a[4] == 4);
+#pragma warning disable CS8604 // Possible null reference argument.
Assert.That(() => new SafeByteArray(t), Throws.ArgumentNullException);
+#pragma warning restore CS8604 // Possible null reference argument.
a.Dispose();
Assert.That(() => new SafeByteArray(a), Throws.ArgumentException);
@@ -72,11 +74,12 @@ public class SafeByteArrayTests
Assert.That(() => l.RemoveAt(0), Throws.TypeOf());
//Assert.That(l.Count, Is.EqualTo(16));
- var gl = l as IList;
+ var gl = (IList)l;
Assert.That(() => gl.Insert(0, 100), Throws.TypeOf());
Assert.That(() => gl.RemoveAt(0), Throws.TypeOf());
}
+#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
[Test]
public void ICollectionPropTest()
{
@@ -113,6 +116,7 @@ public class SafeByteArrayTests
Assert.That(c.CompareTo(sb3, Comparer.Default), Is.LessThan(0));
Assert.That(c.CompareTo(new List(bytes), Comparer.Default), Is.EqualTo(0));
}
+#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type.
[Test]
public void IStructuralEquatablePropTest()
@@ -122,8 +126,10 @@ public class SafeByteArrayTests
var iec = EqualityComparer.Default;
Assert.That(e.Equals(sb, iec), Is.True);
var h1 = e.GetHashCode(iec);
+#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
Assert.That(() => e.GetHashCode(null), Throws.ArgumentNullException);
Assert.That(() => e.Equals(null, null), Throws.ArgumentNullException);
+#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type.
Assert.That(e.Equals(null, iec), Is.False);
Assert.That(() => e.Equals(1, iec), Throws.TypeOf());
var sb2 = new SafeByteArray(3);
@@ -159,7 +165,7 @@ public class SafeByteArrayTests
var a = t.Clone() as SafeByteArray;
t = null;
Assert.That(a?.Count == bytes.Length);
- Assert.That(a[4] == 4);
+ Assert.That(a![4] == 4);
}
[Test()]
@@ -184,7 +190,9 @@ public class SafeByteArrayTests
var b3 = new byte[8];
Assert.That(() => t.CopyTo(b3, 0), Throws.TypeOf());
Assert.That(() => ((ICollection)t).CopyTo(new byte[4,4], 0), Throws.TypeOf());
+#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
Assert.That(() => t.CopyTo(null, 0), Throws.ArgumentNullException);
+#pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type.
}
[Test()]
diff --git a/UnitTests/Core/InteropServices/SafeCoTaskMemHandleTests.cs b/UnitTests/Core/InteropServices/SafeCoTaskMemHandleTests.cs
index 7aefde04..94cf86fb 100644
--- a/UnitTests/Core/InteropServices/SafeCoTaskMemHandleTests.cs
+++ b/UnitTests/Core/InteropServices/SafeCoTaskMemHandleTests.cs
@@ -1,4 +1,5 @@
using NUnit.Framework;
+using System.Linq;
using System.Security;
using Vanara.PInvoke;
@@ -65,7 +66,7 @@ public class SafeCoTaskMemHandleTests
Assert.That((int)h.Size, Is.EqualTo(IntPtr.Size + r.Length * (4 + IntPtr.Size)));
Assert.That(h.ToStringEnum(4, CharSet.Unicode), Has.Exactly(4).EqualTo("5").And.Exactly(4).Items);
- h = SafeCoTaskMemHandle.CreateFromStringList(null);
+ h = SafeCoTaskMemHandle.CreateFromStringList(Enumerable.Empty());
Assert.That((int)h.Size, Is.EqualTo(StringHelper.GetCharSize()));
}
diff --git a/UnitTests/Core/InteropServices/SafeCoTaskMemStringTests.cs b/UnitTests/Core/InteropServices/SafeCoTaskMemStringTests.cs
index 36c5b6eb..0c3d8ac9 100644
--- a/UnitTests/Core/InteropServices/SafeCoTaskMemStringTests.cs
+++ b/UnitTests/Core/InteropServices/SafeCoTaskMemStringTests.cs
@@ -10,22 +10,22 @@ public class SafeCoTaskMemStringTests
public void SafeCoTaskMemStringTest()
{
const int sz = 100;
- var cs = new string('x', sz);
+ string cs = new string('x', sz);
- var s = new SafeCoTaskMemString(cs);
+ SafeCoTaskMemString s = new SafeCoTaskMemString(cs);
Assert.That(s.Capacity, Is.EqualTo(sz + 1));
Assert.That((int)s.Size, Is.EqualTo(2 * (sz + 1)));
- Assert.That((string)s, Is.EqualTo(cs));
+ Assert.That((string?)s, Is.EqualTo(cs));
Assert.That((IntPtr)s, Is.Not.EqualTo(IntPtr.Zero));
s = new SafeCoTaskMemString(cs, CharSet.Ansi);
Assert.That(s.Capacity, Is.EqualTo(sz + 1));
Assert.That((int)s.Size, Is.EqualTo(sz + 1));
- Assert.That((string)s, Is.EqualTo(cs));
+ Assert.That((string?)s, Is.EqualTo(cs));
- s = new SafeCoTaskMemString((string)null);
+ s = new SafeCoTaskMemString((string?)null);
Assert.That(s.Capacity, Is.EqualTo(0));
- Assert.That((string)s, Is.Null);
+ Assert.That((string?)s, Is.Null);
Assert.That((IntPtr)s, Is.EqualTo(IntPtr.Zero));
}
@@ -35,11 +35,11 @@ public class SafeCoTaskMemStringTests
const int sz = 100;
var s = new SafeCoTaskMemString(sz);
Assert.That(s.Capacity, Is.EqualTo(sz));
- Assert.That((string)s, Is.EqualTo(string.Empty));
+ Assert.That((string?)s, Is.EqualTo(string.Empty));
s = new SafeCoTaskMemString(sz, CharSet.Ansi);
Assert.That(s.Capacity, Is.EqualTo(sz));
- Assert.That((string)s, Is.EqualTo(string.Empty));
+ Assert.That((string?)s, Is.EqualTo(string.Empty));
}
[Test()]
@@ -51,11 +51,13 @@ public class SafeCoTaskMemStringTests
var s = new SafeCoTaskMemString(ss);
Assert.That(s.Capacity, Is.EqualTo(sz));
- Assert.That((string)s, Is.EqualTo(new string('x', sz)));
+ Assert.That((string?)s, Is.EqualTo(new string('x', sz)));
ss = null;
+#pragma warning disable CS8604 // Possible null reference argument.
s = new SafeCoTaskMemString(ss, CharSet.Ansi);
- Assert.That((string)s, Is.Null);
+#pragma warning restore CS8604 // Possible null reference argument.
+ Assert.That((string?)s, Is.Null);
Assert.That(s.Capacity, Is.Zero);
}
diff --git a/UnitTests/Core/InteropServices/SafeHGlobalHandleTests.cs b/UnitTests/Core/InteropServices/SafeHGlobalHandleTests.cs
index 667616de..31452674 100644
--- a/UnitTests/Core/InteropServices/SafeHGlobalHandleTests.cs
+++ b/UnitTests/Core/InteropServices/SafeHGlobalHandleTests.cs
@@ -66,7 +66,7 @@ public class SafeHGlobalHandleTests
Assert.That((int)h.Size, Is.EqualTo(IntPtr.Size + r.Length * (4 + IntPtr.Size)));
Assert.That(h.ToStringEnum(4, CharSet.Unicode), Has.Exactly(4).EqualTo("5").And.Exactly(4).Items);
- h = SafeHGlobalHandle.CreateFromStringList(null);
+ h = SafeHGlobalHandle.CreateFromStringList(Enumerable.Empty());
Assert.That((int)h.Size, Is.EqualTo(StringHelper.GetCharSize()));
}
diff --git a/UnitTests/Core/InteropServices/SafeMemStructTests.cs b/UnitTests/Core/InteropServices/SafeMemStructTests.cs
index 203cdcc2..6b172a43 100644
--- a/UnitTests/Core/InteropServices/SafeMemStructTests.cs
+++ b/UnitTests/Core/InteropServices/SafeMemStructTests.cs
@@ -18,14 +18,14 @@ public class SafeMemStructTests
{
var immutVal = new FILETIME { dwHighDateTime = 0x2000000, dwLowDateTime = 0x33333333 };
var s = new SafeCoTaskStruct(immutVal);
- var bytes = s.DangerousGetHandle().ToByteArray(8);
+ var bytes = s.DangerousGetHandle().ToByteArray(8)!;
Assert.That(BitConverter.ToUInt32(bytes, 4), Is.EqualTo(immutVal.dwHighDateTime));
ref FILETIME r = ref s.AsRef();
Assert.That(r.dwHighDateTime, Is.EqualTo(immutVal.dwHighDateTime));
r.dwHighDateTime = 0;
- bytes = s.DangerousGetHandle().ToByteArray(8);
+ bytes = s.DangerousGetHandle().ToByteArray(8)!;
Assert.That(BitConverter.ToUInt32(bytes, 4), Is.Zero);
var newhVal = 0x22222222U;
@@ -38,12 +38,12 @@ public class SafeMemStructTests
{
var immutVal = new FILETIME { dwHighDateTime = 0x2000000, dwLowDateTime = 0x33333333 };
var s = new SafeCoTaskStruct(immutVal);
- var bytes = s.DangerousGetHandle().ToByteArray(8);
+ var bytes = s.DangerousGetHandle().ToByteArray(8)!;
Assert.That(BitConverter.ToUInt32(bytes, 4), Is.EqualTo(immutVal.dwHighDateTime));
var sp = s.AsSpan();
sp.Fill(default);
- bytes = s.DangerousGetHandle().ToByteArray(8);
+ bytes = s.DangerousGetHandle().ToByteArray(8)!;
Assert.That(BitConverter.ToUInt32(bytes, 4), Is.Zero);
var bsp = MemoryMarshal.AsBytes(sp);
diff --git a/UnitTests/Core/InteropServices/StrPtrTests.cs b/UnitTests/Core/InteropServices/StrPtrTests.cs
index 3d634ff1..0e8138f6 100644
--- a/UnitTests/Core/InteropServices/StrPtrTests.cs
+++ b/UnitTests/Core/InteropServices/StrPtrTests.cs
@@ -13,7 +13,7 @@ public class StrPtrTests
Assert.That(p0.IsNull);
var p1 = new StrPtrAuto("Test");
Assert.That(!p1.IsNull);
- Assert.That((string) p1, Is.EqualTo("Test"));
+ Assert.That((string?) p1, Is.EqualTo("Test"));
p1.Free();
}
@@ -22,10 +22,10 @@ public class StrPtrTests
{
var p1 = new StrPtrAuto(256);
Assert.That(!p1.IsNull);
- Assert.That((string) p1, Is.EqualTo(""));
+ Assert.That((string?) p1, Is.EqualTo(""));
var bytes = Marshal.SystemDefaultCharSize == 1 ? Encoding.ASCII.GetBytes("Test\0") : Encoding.Unicode.GetBytes("Test\0");
Marshal.Copy(bytes, 0, (IntPtr)p1, bytes.Length);
- Assert.That((string) p1, Is.EqualTo("Test"));
+ Assert.That((string?) p1, Is.EqualTo("Test"));
p1.Free();
}
@@ -36,15 +36,15 @@ public class StrPtrTests
Assert.That(p0.IsNull);
p0.Assign("Test", out var cc);
Assert.That(!p0.IsNull);
- Assert.That((string)p0, Is.EqualTo("Test"));
+ Assert.That((string?)p0, Is.EqualTo("Test"));
Assert.That(cc, Is.EqualTo(5));
p0.Free();
var p1 = new StrPtrAuto("Test");
Assert.That(!p1.IsNull);
- Assert.That((string) p1, Is.EqualTo("Test"));
+ Assert.That((string?) p1, Is.EqualTo("Test"));
p1.Assign("Test2");
Assert.That(!p1.IsNull);
- Assert.That((string) p1, Is.EqualTo("Test2"));
+ Assert.That((string?) p1, Is.EqualTo("Test2"));
p1.Free();
}
@@ -56,7 +56,7 @@ public class StrPtrTests
p0.AssignConstant(1);
Assert.That(!p0.IsNull);
Assert.That((IntPtr)p0, Is.EqualTo(new IntPtr(1)));
- Assert.That(() => p0.Free(), Throws.Nothing);
+ Assert.That(p0.Free, Throws.Nothing);
}
[Test()]
@@ -78,7 +78,7 @@ public class StrPtrTests
Assert.That(p0.IsNull);
var p1 = new StrPtrUni("Test");
Assert.That(!p1.IsNull);
- Assert.That((string) p1, Is.EqualTo("Test"));
+ Assert.That((string?) p1, Is.EqualTo("Test"));
p1.Free();
}
@@ -87,10 +87,10 @@ public class StrPtrTests
{
var p1 = new StrPtrUni(256);
Assert.That(!p1.IsNull);
- Assert.That((string) p1, Is.EqualTo(""));
+ Assert.That((string?) p1, Is.EqualTo(""));
var bytes = Marshal.SystemDefaultCharSize == 1 ? Encoding.ASCII.GetBytes("Test\0") : Encoding.Unicode.GetBytes("Test\0");
Marshal.Copy(bytes, 0, (IntPtr)p1, bytes.Length);
- Assert.That((string) p1, Is.EqualTo("Test"));
+ Assert.That((string?) p1, Is.EqualTo("Test"));
p1.Free();
}
@@ -101,15 +101,15 @@ public class StrPtrTests
Assert.That(p0.IsNull);
p0.Assign("Test", out var cc);
Assert.That(!p0.IsNull);
- Assert.That((string)p0, Is.EqualTo("Test"));
+ Assert.That((string?)p0, Is.EqualTo("Test"));
Assert.That(cc, Is.EqualTo(5));
p0.Free();
var p1 = new StrPtrUni("Test");
Assert.That(!p1.IsNull);
- Assert.That((string) p1, Is.EqualTo("Test"));
+ Assert.That((string?) p1, Is.EqualTo("Test"));
p1.Assign("Test2");
Assert.That(!p1.IsNull);
- Assert.That((string) p1, Is.EqualTo("Test2"));
+ Assert.That((string?) p1, Is.EqualTo("Test2"));
p1.Free();
}
@@ -121,7 +121,7 @@ public class StrPtrTests
p0.AssignConstant(1);
Assert.That(!p0.IsNull);
Assert.That((IntPtr)p0, Is.EqualTo(new IntPtr(1)));
- Assert.That(() => p0.Free(), Throws.Nothing);
+ Assert.That(p0.Free, Throws.Nothing);
}
[Test()]