File: System\Windows\Forms\Design\DataMemberFieldConverterTests.cs
Web Access
Project: src\src\System.Windows.Forms.Design\tests\UnitTests\System.Windows.Forms.Design.Tests.csproj (System.Windows.Forms.Design.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Globalization;
 
namespace System.Windows.Forms.Design.Tests;
 
public class DataMemberFieldConverterTests
{
    private static readonly DataMemberFieldConverter s_converter = new();
    private static readonly ITypeDescriptorContext s_context = new MyTypeDescriptorContext();
 
    [Fact]
    public static void CanConvertFrom()
    {
        Assert.True(s_converter.CanConvertFrom(s_context, typeof(string)));
        Assert.True(s_converter.CanConvertFrom(s_context, typeof(InstanceDescriptor)));
    }
 
    [Theory]
    [InlineData("", "")]
    [InlineData(null, null)]
    [InlineData("(None)", "")]
    public static void ConvertFrom(object actual, object expected)
    {
        Assert.Equal(expected, s_converter.ConvertFrom(s_context, CultureInfo.CurrentCulture, actual));
    }
 
    [Theory]
    [InlineData("", typeof(string), "(none)")]
    [InlineData(null, typeof(string), "(none)")]
    [InlineData("FirstName", typeof(string), "FirstName")]
    public static void ConvertTo(object actual, Type expectedType, object expected)
    {
        Assert.Equal(expected, s_converter.ConvertTo(s_context, CultureInfo.CurrentCulture, actual, expectedType));
    }
 
    [Theory]
    [InlineData("", typeof(int))]
    [InlineData("FirstName", typeof(int))]
    public static void ConvertTo_ThrowsNotSupportedException(object actual, Type expectedType)
    {
        Assert.Throws<NotSupportedException>(
            () => s_converter.ConvertTo(s_context, CultureInfo.CurrentCulture, actual, expectedType));
    }
}
 
[Serializable]
public class MyTypeDescriptorContext : ITypeDescriptorContext
{
    public IContainer Container => null;
    public object Instance { get { return null; } }
    public PropertyDescriptor PropertyDescriptor { get { return null; } }
    public bool OnComponentChanging() { return true; }
    public void OnComponentChanged() { }
    public object GetService(Type serviceType) { return null; }
}