1
0

GeometryTypeConverterTests.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Avalonia.Controls;
  7. using Avalonia.Controls.Shapes;
  8. using Avalonia.Media;
  9. using Avalonia.UnitTests;
  10. using Xunit;
  11. namespace Avalonia.Markup.Xaml.UnitTests.Converters
  12. {
  13. public class GeometryTypeConverterTests: XamlTestBase
  14. {
  15. public class StringDataViewModel
  16. {
  17. public string PathData { get; set; }
  18. }
  19. public class IntDataViewModel
  20. {
  21. public int PathData { get; set; }
  22. }
  23. [Theory]
  24. [MemberData(nameof(Get_GeometryTypeConverter_Data))]
  25. public void GeometryTypeConverter_Value_Work(object vm, bool nullData)
  26. {
  27. using(UnitTestApplication.Start(TestServices.StyledWindow))
  28. {
  29. var xaml = @"
  30. <Window xmlns='https://github.com/avaloniaui'
  31. xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
  32. xmlns:c='clr-namespace:Avalonia.Markup.Xaml.UnitTests.Converters;assembly=Avalonia.Markup.Xaml.UnitTests'>
  33. <Path Name='path' Data='{Binding PathData}' Height='10' Width='10'/>
  34. </Window>";
  35. var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml);
  36. var path = window.FindControl<Path>("path");
  37. window.DataContext = vm;
  38. Assert.Equal(nullData, path.Data is null);
  39. }
  40. }
  41. public static IEnumerable<object[]> Get_GeometryTypeConverter_Data()
  42. {
  43. yield return new object[] { new StringDataViewModel { }, true };
  44. yield return new object[] { new StringDataViewModel { PathData = "M406.39,333.45l205.93,0" }, false };
  45. yield return new object[] { new IntDataViewModel { }, true };
  46. yield return new object[] { new IntDataViewModel { PathData = 100 }, true };
  47. }
  48. }
  49. }