THRIFT-5511 Full support for the new net6 "nullability" semantics
Client: netstd
Patch: Jens Geyer

This closes #2516
diff --git a/lib/netstd/Tests/Thrift.Tests/DataModel/NullValuesSet.cs b/lib/netstd/Tests/Thrift.Tests/DataModel/NullValuesSet.cs
index 693b68e..ebc1717 100644
--- a/lib/netstd/Tests/Thrift.Tests/DataModel/NullValuesSet.cs
+++ b/lib/netstd/Tests/Thrift.Tests/DataModel/NullValuesSet.cs
@@ -25,13 +25,15 @@
 using OptReqDefTest;
 using Thrift.Collections;
 
+#pragma warning disable IDE0017  // init can be simplified - we don't want that here
+
 namespace Thrift.Tests.DataModel
 {
     // ReSharper disable once InconsistentNaming
     [TestClass]
     public class Thrift_5238
     {
-        private void CheckInstance(RaceDetails instance)
+        private static void CheckInstance(RaceDetails instance)
         {
             // object
             Assert.IsTrue(instance.__isset.def_nested);
@@ -42,14 +44,14 @@
             // string
             Assert.IsTrue(instance.__isset.def_four);
             Assert.IsTrue(instance.__isset.opt_four);
-            Assert.IsNull(instance.Req_four);
+            Assert.IsTrue(string.IsNullOrEmpty(instance.Req_four));
             Assert.IsNull(instance.Def_four);
             Assert.IsNull(instance.Opt_four);
 
             // byte[]
             Assert.IsTrue(instance.__isset.def_five);
             Assert.IsTrue(instance.__isset.opt_five);
-            Assert.IsNull(instance.Req_five);
+            Assert.IsTrue((instance.Req_five == null) || (instance.Req_five.Length == 0));
             Assert.IsNull(instance.Def_five);
             Assert.IsNull(instance.Opt_five);
 
@@ -66,6 +68,9 @@
         {
             var instance = new OptReqDefTest.RaceDetails();
 
+            // the following code INTENTIONALLY assigns null to non.nullable reftypes
+            #pragma warning disable CS8625
+
             // object
             instance.Def_nested = null;
             instance.Opt_nested = null;
@@ -85,6 +90,9 @@
             instance.Opt_six = null;
             instance.Def_six = null;
 
+            // back to normal
+            #pragma warning restore CS8625
+
             // test the setup
             CheckInstance(instance);