diff --git a/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/ITestInterface.cs b/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/ITestInterface.cs new file mode 100644 index 00000000000..9a3292c0c6f --- /dev/null +++ b/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/ITestInterface.cs @@ -0,0 +1,13 @@ +#nullable enable + +namespace NServiceBus.Core.Tests.API.Infra.NullableInterface +{ + interface ITestInterface + { + string WriteAMessage(string message); + + string WriteNullableMessage(string? message); + + string? ReturnNullableMessage(string? message); + } +} diff --git a/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/TestInterface.cs b/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/TestInterface.cs new file mode 100644 index 00000000000..5eec0a9fc1b --- /dev/null +++ b/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/TestInterface.cs @@ -0,0 +1,24 @@ +namespace NServiceBus.Core.Tests.API.Infra.NullableInterface +{ + using System; + + class TestInterface : ITestInterface + { + public string ReturnNullableMessage(string message) + { + Console.WriteLine(message); + return message; + } + + public string WriteAMessage(string message) + { + Console.WriteLine(message); + return message; + } + public string WriteNullableMessage(string message) + { + Console.WriteLine(message); + return message; + } + } +} diff --git a/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/TestInterfaceTest.cs b/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/TestInterfaceTest.cs new file mode 100644 index 00000000000..d160f08888c --- /dev/null +++ b/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/TestInterfaceTest.cs @@ -0,0 +1,30 @@ +namespace NServiceBus.Core.Tests.API.Infra.NullableInterface +{ + using NUnit.Framework; + + class TestInterfaceTest + { + [Test] + public void Test_with_no_nullable_operators() + { + var testInterface = new TestInterface(); + var message = "Hello, World!"; + var nullableMessage = (string)null; + // Test WriteAMessage + var result1 = testInterface.WriteAMessage(message); + Assert.That(result1, Is.EqualTo(message)); + // Test WriteNullableMessage with non-null value + var result2 = testInterface.WriteNullableMessage(message); + Assert.That(result2, Is.EqualTo(message)); + // Test WriteNullableMessage with null value + var result3 = testInterface.WriteNullableMessage(nullableMessage); + Assert.That(result3, Is.EqualTo(nullableMessage)); + // Test ReturnNullableMessage with non-null value + var result4 = testInterface.ReturnNullableMessage(message); + Assert.That(result4, Is.EqualTo(message)); + // Test ReturnNullableMessage with null value + var result5 = testInterface.ReturnNullableMessage(nullableMessage); + Assert.That(result5, Is.EqualTo(nullableMessage)); + } + } +} diff --git a/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/TestInterfaceTest_Nullable.cs b/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/TestInterfaceTest_Nullable.cs new file mode 100644 index 00000000000..bea3a8c215c --- /dev/null +++ b/src/NServiceBus.Core.Tests/API/Infra/NullableInterface/TestInterfaceTest_Nullable.cs @@ -0,0 +1,32 @@ +#nullable enable + +namespace NServiceBus.Core.Tests.API.Infra.NullableInterface +{ + using NUnit.Framework; + + class TestInterfaceTest_Nullable + { + [Test] + public void Test_with_no_nullable_operators() + { + var testInterface = new TestInterface(); + var message = "Hello, World!"; + var nullableMessage = (string)null; + // Test WriteAMessage + var result1 = testInterface.WriteAMessage(message); + Assert.That(result1, Is.EqualTo(message)); + // Test WriteNullableMessage with non-null value + var result2 = testInterface.WriteNullableMessage(message); + Assert.That(result2, Is.EqualTo(message)); + // Test WriteNullableMessage with null value + var result3 = testInterface.WriteNullableMessage(nullableMessage); + Assert.That(result3, Is.EqualTo(nullableMessage)); + // Test ReturnNullableMessage with non-null value + var result4 = testInterface.ReturnNullableMessage(message); + Assert.That(result4, Is.EqualTo(message)); + // Test ReturnNullableMessage with null value + var result5 = testInterface.ReturnNullableMessage(nullableMessage); + Assert.That(result5, Is.EqualTo(nullableMessage)); + } + } +}