File: NullAssertsTests.cs
Web Access
Project: src\src\Microsoft.DotNet.XUnitAssert\tests\Microsoft.DotNet.XUnitAssert.Tests.csproj (Microsoft.DotNet.XUnitAssert.Tests)
using System;
using Xunit;
using Xunit.Sdk;
 
public class NullAssertsTests
{
	public class NotNull
	{
		[Fact]
		public void Success_Reference()
		{
			Assert.NotNull(new object());
		}
 
		[Fact]
		public void Success_NullableStruct()
		{
			int? x = 42;
 
			var result = Assert.NotNull(x);
 
			Assert.IsType<int>(result);
			Assert.Equal(42, result);
		}
 
		[Fact]
		public void Failure_Reference()
		{
			var ex = Record.Exception(() => Assert.NotNull(null));
 
			Assert.IsType<NotNullException>(ex);
			Assert.Equal("Assert.NotNull() Failure: Value is null", ex.Message);
		}
 
		[Fact]
		public void Failure_NullableStruct()
		{
			int? value = null;
 
			var ex = Record.Exception(() => Assert.NotNull(value));
 
			Assert.IsType<NotNullException>(ex);
			Assert.Equal("Assert.NotNull() Failure: Value of type 'Nullable<int>' does not have a value", ex.Message);
		}
	}
 
	public class Null
	{
		[Fact]
		public void Success_Reference()
		{
			Assert.Null(null);
		}
 
		[Fact]
		public void Success_NullableStruct()
		{
			int? x = null;
 
			Assert.Null(x);
		}
 
		[Fact]
		public void Failure_Reference()
		{
			var ex = Record.Exception(() => Assert.Null(new object()));
 
			Assert.IsType<NullException>(ex);
			Assert.Equal(
				"Assert.Null() Failure: Value is not null" + Environment.NewLine +
				"Expected: null" + Environment.NewLine +
				"Actual:   Object { }",
				ex.Message
			);
		}
 
		[Fact]
		public void Failure_NullableStruct()
		{
			int? x = 42;
 
			var ex = Record.Exception(() => Assert.Null(x));
 
			Assert.IsType<NullException>(ex);
			Assert.Equal(
				"Assert.Null() Failure: Value of type 'Nullable<int>' has a value" + Environment.NewLine +
				"Expected: null" + Environment.NewLine +
				"Actual:   42",
				ex.Message
			);
		}
	}
}