File: IdentityAssertsTests.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 IdentityAssertsTests
{
	public class NotSame
	{
		[Fact]
		public void Identical()
		{
			var actual = new object();
 
			var ex = Record.Exception(() => Assert.NotSame(actual, actual));
 
			Assert.IsType<NotSameException>(ex);
			Assert.Equal("Assert.NotSame() Failure: Values are the same instance", ex.Message);
		}
 
		[Fact]
		public void NotIdentical()
		{
			Assert.NotSame("bob", "jim");
		}
	}
 
	public class Same
	{
		[Fact]
		public void Identical()
		{
			var actual = new object();
 
			Assert.Same(actual, actual);
		}
 
		[Fact]
		public void NotIdentical()
		{
			var ex = Record.Exception(() => Assert.Same("bob", "jim"));
 
			Assert.IsType<SameException>(ex);
			Assert.Equal(
				"Assert.Same() Failure: Values are not the same instance" + Environment.NewLine +
				"Expected: \"bob\"" + Environment.NewLine +
				"Actual:   \"jim\"",
				ex.Message
			);
		}
 
		[Fact]
		public void EqualValueTypeValuesAreNotSameBecauseOfBoxing()
		{
#pragma warning disable xUnit2005 // Do not use identity check on value type
			Assert.Throws<SameException>(() => Assert.Same(0, 0));
#pragma warning restore xUnit2005 // Do not use identity check on value type
		}
	}
}