public void Should_return_item_if_type_matches_the_enum()
    {
        StringBasedTypeConverter.ConvertTo(null, null, TestEnum.Item1, typeof(TestEnum)).Should().Be(TestEnum.Item1);

        ExtensibleTestEnumTypeConverter.ConvertTo(null, null, ExtensibleTestEnum.Item1, typeof(ExtensibleTestEnum)).Should().Be(ExtensibleTestEnum.Item1);
        ExtendedTestEnumTypeConverter.ConvertTo(null, null, ExtendedTestEnum.Item1, typeof(ExtendedTestEnum)).Should().Be(ExtendedTestEnum.Item1);
        DifferentAssemblyExtendedTestEnumTypeConverter.ConvertTo(null, null, DifferentAssemblyExtendedTestEnum.Item1, typeof(DifferentAssemblyExtendedTestEnum)).Should().Be(DifferentAssemblyExtendedTestEnum.Item1);
    }
    public void Should_return_key_if_type_matches_the_key()
    {
        StringBasedTypeConverter.ConvertTo(null, null, TestEnum.Item1, typeof(string)).Should().Be("item1");

        ExtensibleTestEnumTypeConverter.ConvertTo(null, null, ExtensibleTestEnum.Item1, typeof(string)).Should().Be("Item1");
        ExtendedTestEnumTypeConverter.ConvertTo(null, null, ExtendedTestEnum.Item1, typeof(string)).Should().Be("Item1");
        DifferentAssemblyExtendedTestEnumTypeConverter.ConvertTo(null, null, DifferentAssemblyExtendedTestEnum.Item1, typeof(string)).Should().Be("Item1");
    }