File: TypeAssertsTests.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 TypeAssertsTests
{
	public class IsAssignableFrom_Generic
	{
		[Fact]
		public void NullObjectThrows()
		{
			Assert.Throws<IsAssignableFromException>(() => Assert.IsAssignableFrom<object>(null));
		}
 
		[Fact]
		public void SameType()
		{
			var expected = new InvalidCastException();
 
			Assert.IsAssignableFrom<InvalidCastException>(expected);
		}
 
		[Fact]
		public void BaseType()
		{
			var expected = new InvalidCastException();
 
			Assert.IsAssignableFrom<Exception>(expected);
		}
 
		[Fact]
		public void Interface()
		{
			var expected = new DisposableClass();
 
			Assert.IsAssignableFrom<IDisposable>(expected);
		}
 
		[Fact]
		public void ReturnsCastObject()
		{
			var expected = new InvalidCastException();
 
			var actual = Assert.IsAssignableFrom<InvalidCastException>(expected);
 
			Assert.Same(expected, actual);
		}
 
		[Fact]
		public void IncompatibleTypeThrows()
		{
			var exception =
				Assert.Throws<IsAssignableFromException>(
					() => Assert.IsAssignableFrom<InvalidCastException>(new InvalidOperationException())
				);
 
			Assert.Equal("Assert.IsAssignableFrom() Failure", exception.UserMessage);
		}
	}
 
	public class IsAssignableFrom_NonGeneric
	{
		[Fact]
		public void NullObjectThrows()
		{
			Assert.Throws<IsAssignableFromException>(() => Assert.IsAssignableFrom(typeof(object), null));
		}
 
		[Fact]
		public void SameType()
		{
			var expected = new InvalidCastException();
 
			Assert.IsAssignableFrom(typeof(InvalidCastException), expected);
		}
 
		[Fact]
		public void BaseType()
		{
			var expected = new InvalidCastException();
 
			Assert.IsAssignableFrom(typeof(Exception), expected);
		}
 
		[Fact]
		public void Interface()
		{
			var expected = new DisposableClass();
 
			Assert.IsAssignableFrom(typeof(IDisposable), expected);
		}
 
		[Fact]
		public void ReturnsCastObject()
		{
			var expected = new InvalidCastException();
 
			var actual = Assert.IsAssignableFrom<InvalidCastException>(expected);
 
			Assert.Same(expected, actual);
		}
 
		[Fact]
		public void IncompatibleTypeThrows()
		{
			var exception =
				Assert.Throws<IsAssignableFromException>(
					() => Assert.IsAssignableFrom(typeof(InvalidCastException), new InvalidOperationException())
				);
 
			Assert.Equal("Assert.IsAssignableFrom() Failure", exception.UserMessage);
		}
	}
 
	public class IsNotType_Generic
	{
		[Fact]
		public void UnmatchedType()
		{
			var expected = new InvalidCastException();
 
			Assert.IsNotType<Exception>(expected);
		}
 
		[Fact]
		public void MatchedTypeThrows()
		{
			XunitException exception =
				Assert.Throws<IsNotTypeException>(
					() => Assert.IsNotType<InvalidCastException>(new InvalidCastException()));
 
			Assert.Equal("Assert.IsNotType() Failure", exception.UserMessage);
		}
 
		[Fact]
		public void NullObjectDoesNotThrow()
		{
			Assert.IsNotType<object>(null);
		}
	}
 
	public class IsNotType_NonGeneric
	{
		[Fact]
		public void UnmatchedType()
		{
			var expected = new InvalidCastException();
 
			Assert.IsNotType(typeof(Exception), expected);
		}
 
		[Fact]
		public void MatchedTypeThrows()
		{
			XunitException exception =
				Assert.Throws<IsNotTypeException>(
					() => Assert.IsNotType(typeof(InvalidCastException), new InvalidCastException()));
 
			Assert.Equal("Assert.IsNotType() Failure", exception.UserMessage);
		}
 
		[Fact]
		public void NullObjectDoesNotThrow()
		{
			Assert.IsNotType(typeof(object), null);
		}
	}
 
	public class IsType_Generic
	{
		[Fact]
		public void MatchingType()
		{
			var expected = new InvalidCastException();
 
			Assert.IsType<InvalidCastException>(expected);
		}
 
		[Fact]
		public void ReturnsCastObject()
		{
			var expected = new InvalidCastException();
 
			var actual = Assert.IsType<InvalidCastException>(expected);
 
			Assert.Same(expected, actual);
		}
 
		[Fact]
		public void UnmatchedTypeThrows()
		{
			XunitException exception =
				Assert.Throws<IsTypeException>(
					() => Assert.IsType<InvalidCastException>(new InvalidOperationException()));
 
			Assert.Equal("Assert.IsType() Failure", exception.UserMessage);
		}
 
		[Fact]
		public void NullObjectThrows()
		{
			Assert.Throws<IsTypeException>(() => Assert.IsType<object>(null));
		}
	}
 
	public class IsType_NonGeneric
	{
		[Fact]
		public void MatchingType()
		{
			var expected = new InvalidCastException();
 
			Assert.IsType(typeof(InvalidCastException), expected);
		}
 
		[Fact]
		public void UnmatchedTypeThrows()
		{
			XunitException exception =
				Assert.Throws<IsTypeException>(
					() => Assert.IsType(typeof(InvalidCastException), new InvalidOperationException()));
 
			Assert.Equal("Assert.IsType() Failure", exception.UserMessage);
		}
 
		[Fact]
		public void NullObjectThrows()
		{
			Assert.Throws<IsTypeException>(() => Assert.IsType(typeof(object), null));
		}
	}
 
	class DisposableClass : IDisposable
	{
		public void Dispose()
		{ }
	}
}