public void ImplementsInterface_ThrowsIfArgumentIsNotRuntimeType()
        {
            // Arrange
            var typeInfo          = new RuntimeTypeInfo(typeof(object).GetTypeInfo());
            var interfaceTypeInfo = new TestTypeInfo();

            // Act and Assert
            ExceptionAssert.ThrowsArgument(() => typeInfo.ImplementsInterface(interfaceTypeInfo),
                                           "interfaceTypeInfo",
                                           $"Argument must be an instance of '{typeof(RuntimeTypeInfo)}'.");
        }
        public void Equals_ReturnsFalseIfTypeInfoNamesAreDifferent(Type type, string fullName)
        {
            // Arrange
            var typeA = new RuntimeTypeInfo(type.GetTypeInfo());
            var typeB = new TestTypeInfo
            {
                FullName = "Different" + fullName
            };

            // Act
            var equals = typeA.Equals(typeB);

            // Assert
            Assert.False(equals);
        }
        public void Equals_ReturnsTrueIfTypeInfoNamesAreIdentical(Type type, string fullName)
        {
            // Arrange
            var typeA = new RuntimeTypeInfo(type.GetTypeInfo());
            var typeB = new TestTypeInfo
            {
                FullName = fullName
            };

            // Act
            var equals = typeA.Equals(typeB);

            // Assert
            Assert.True(equals);
        }