using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Controls.Shapes; using Avalonia.Media; using Avalonia.UnitTests; using Xunit; namespace Avalonia.Markup.Xaml.UnitTests.Converters { public class GeometryTypeConverterTests: XamlTestBase { public class StringDataViewModel { public string PathData { get; set; } } public class IntDataViewModel { public int PathData { get; set; } } [Theory] [MemberData(nameof(Get_GeometryTypeConverter_Data))] public void GeometryTypeConverter_Value_Work(object vm, bool nullData) { using(UnitTestApplication.Start(TestServices.StyledWindow)) { var xaml = @" "; var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); var path = window.FindControl("path"); window.DataContext = vm; Assert.Equal(nullData, path.Data is null); } } public static IEnumerable Get_GeometryTypeConverter_Data() { yield return new object[] { new StringDataViewModel { }, true }; yield return new object[] { new StringDataViewModel { PathData = "M406.39,333.45l205.93,0" }, false }; yield return new object[] { new IntDataViewModel { }, true }; yield return new object[] { new IntDataViewModel { PathData = 100 }, true }; } } }