xamarin-macios/tests/linker/CommonLinkAllTest.cs

53 строки
1.7 KiB
C#

using System;
using System.ComponentModel;
using NUnit.Framework;
using Foundation;
namespace LinkAll {
public class CustomConverter : TypeConverter {
// note: the default ctor will be preserved by the linker because it's used in a [TypeConverter] attribute
}
[TypeConverter (typeof (BooleanConverter))]
public class BuiltInConverter {
}
[TypeConverter (typeof (CustomConverter))]
class TypeDescriptorTest {
}
[TestFixture]
// we want the test to be availble if we use the linker
[Preserve (AllMembers = true)]
public class CommonLinkAllTest {
[Test]
public void TypeConverter_BuiltIn ()
{
Assert.NotNull (TypeDescriptor.GetConverter (new BuiltInConverter ()), "BuiltInConverter");
string name = (typeof (BuiltInConverter).GetCustomAttributes (false) [0] as TypeConverterAttribute).ConverterTypeName;
Assert.That (name, Is.EqualTo ("System.ComponentModel.BooleanConverter, System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"), "ConverterTypeName");
}
[Test]
public void TypeConverter_Custom ()
{
Assert.NotNull (TypeDescriptor.GetConverter (new TypeDescriptorTest ()), "TypeDescriptorTest");
string name = (typeof (TypeDescriptorTest).GetCustomAttributes (false) [0] as TypeConverterAttribute).ConverterTypeName;
Assert.That (name, Is.EqualTo ("LinkAll.CustomConverter, link all, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"), "ConverterTypeName");
}
[Test]
public void ConstantsVersion_4859 ()
{
// Check that the Makefile generated a valid version number, e.g. "12.3." was not
// reference: https://github.com/xamarin/xamarin-macios/issues/4859
Assert.True (Version.TryParse (ObjCRuntime.Constants.Version, out var _), "Version");
}
}
}