Files
RobustToolbox/Robust.UnitTesting/Shared/Utility/NullableHelper_Test.cs
T
AcruidandGitHub 2183cd7ca1 Massive Namespace Cleanup (#1544)
* Removed the Interfaces folder.
* All objects inside the GameObjects subfolders are now in the GameObjects namespace.
* Added a Resharper DotSettings file to mark the GameObjects subfolders as not providing namespaces.
* Simplified Robust.client.Graphics namespace.
* Automated remove redundant using statements.
2021-02-10 23:27:19 -08:00

68 lines
1.8 KiB
C#

using NUnit.Framework;
using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Utility;
namespace Robust.UnitTesting.Shared.Utility
{
[TestFixture]
[TestOf(typeof(NullableHelper))]
public class NullableHelper_Test
{
[OneTimeSetUp]
public void OneTimeSetup()
{
//initializing logmanager so it wont error out if nullablehelper logs an error
IoCManager.InitThread();
IoCManager.Register<ILogManager, LogManager>();
IoCManager.BuildGraph();
}
[Test]
public void IsNullableTest()
{
var fields = typeof(NullableTestClass).GetAllFields();
foreach (var field in fields)
{
Assert.That(NullableHelper.IsMarkedAsNullable(field), Is.True, $"{field}");
}
}
[Test]
public void IsNotNullableTest()
{
var fields = typeof(NotNullableTestClass).GetAllFields();
foreach (var field in fields)
{
Assert.That(!NullableHelper.IsMarkedAsNullable(field), Is.True, $"{field}");
}
}
}
#pragma warning disable 169
#pragma warning disable 414
public class NullableTestClass
{
private int? i;
private double? d;
public object? o;
public INullableTestInterface? Itest;
public NullableTestClass? nTc;
private char? c;
}
public class NotNullableTestClass
{
private int i;
private double d;
private object o = null!;
private INullableTestInterface Itest = null!;
private NullableTestClass nTc = null!;
private char c;
}
#pragma warning restore 414
#pragma warning restore 169
public interface INullableTestInterface{}
}