From c29ed43e0e1e723cee1f0e6697cce0e04db1a3e2 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 18 Nov 2022 12:21:58 +0100 Subject: [PATCH] Move attaching styles in tests to a helper. The API is now internal, so this should prevent churn in the tests when the API changes. --- .../Animation/AnimatableTests.cs | 2 +- .../Styling/SetterTests.cs | 2 +- .../Styling/StyleTests.cs | 16 ++++++++-------- .../Styling/Style_Activation.cs | 4 ++-- tests/Avalonia.Benchmarks/Styling/Style_Apply.cs | 3 ++- .../Styling/Style_ClassSelector.cs | 7 ++++--- .../Styling/Style_NonActive.cs | 3 ++- .../Avalonia.Markup.Xaml.UnitTests/StyleTests.cs | 2 +- tests/Avalonia.UnitTests/StyleHelpers.cs | 14 ++++++++++++++ 9 files changed, 35 insertions(+), 18 deletions(-) create mode 100644 tests/Avalonia.UnitTests/StyleHelpers.cs diff --git a/tests/Avalonia.Base.UnitTests/Animation/AnimatableTests.cs b/tests/Avalonia.Base.UnitTests/Animation/AnimatableTests.cs index dec813b3b0..d81c6e75f3 100644 --- a/tests/Avalonia.Base.UnitTests/Animation/AnimatableTests.cs +++ b/tests/Avalonia.Base.UnitTests/Animation/AnimatableTests.cs @@ -436,7 +436,7 @@ namespace Avalonia.Base.UnitTests.Animation } }; - style.TryAttach(control, control, FrameType.Style); + StyleHelpers.TryAttach(style, control); // Which means that the transition state hasn't been initialized with the new // Transitions when the Opacity change notification gets raised here. diff --git a/tests/Avalonia.Base.UnitTests/Styling/SetterTests.cs b/tests/Avalonia.Base.UnitTests/Styling/SetterTests.cs index 18f572dedc..33023c4851 100644 --- a/tests/Avalonia.Base.UnitTests/Styling/SetterTests.cs +++ b/tests/Avalonia.Base.UnitTests/Styling/SetterTests.cs @@ -504,7 +504,7 @@ namespace Avalonia.Base.UnitTests.Styling private void Apply(Style style, Control control) { - style.TryAttach(control, null, FrameType.Style); + StyleHelpers.TryAttach(style, control); } private void Apply(Setter setter, Control control) diff --git a/tests/Avalonia.Base.UnitTests/Styling/StyleTests.cs b/tests/Avalonia.Base.UnitTests/Styling/StyleTests.cs index a318a8d76a..1399ddc406 100644 --- a/tests/Avalonia.Base.UnitTests/Styling/StyleTests.cs +++ b/tests/Avalonia.Base.UnitTests/Styling/StyleTests.cs @@ -28,7 +28,7 @@ namespace Avalonia.Base.UnitTests.Styling var target = new Class1(); - style.TryAttach(target, null, FrameType.Style); + StyleHelpers.TryAttach(style, target); Assert.Equal("Foo", target.Foo); } @@ -46,7 +46,7 @@ namespace Avalonia.Base.UnitTests.Styling var target = new Class1(); - style.TryAttach(target, null, FrameType.Style); + StyleHelpers.TryAttach(style, target); Assert.Equal("foodefault", target.Foo); target.Classes.Add("foo"); Assert.Equal("Foo", target.Foo); @@ -67,7 +67,7 @@ namespace Avalonia.Base.UnitTests.Styling var target = new Class1(); - style.TryAttach(target, target, FrameType.Style); + StyleHelpers.TryAttach(style, target); Assert.Equal("Foo", target.Foo); } @@ -93,7 +93,7 @@ namespace Avalonia.Base.UnitTests.Styling var target = new Class1(); var other = new Class1(); - style.TryAttach(target, other, FrameType.Style); + StyleHelpers.TryAttach(style, target, host: other); Assert.Equal("foodefault", target.Foo); } @@ -114,7 +114,7 @@ namespace Avalonia.Base.UnitTests.Styling Foo = "Original", }; - style.TryAttach(target, null, FrameType.Style); + StyleHelpers.TryAttach(style, target); Assert.Equal("Original", target.Foo); } @@ -578,7 +578,7 @@ namespace Avalonia.Base.UnitTests.Styling Child = border = new Border(), }; - style.TryAttach(border, null, FrameType.Style); + StyleHelpers.TryAttach(style, border); Assert.Equal(new Thickness(4), border.BorderThickness); root.Child = null; @@ -762,7 +762,7 @@ namespace Avalonia.Base.UnitTests.Styling var target = new Class1(); - style.TryAttach(target, null, FrameType.Style); + StyleHelpers.TryAttach(style, target); Assert.Equal(1, target.Classes.ListenerCount); @@ -875,7 +875,7 @@ namespace Avalonia.Base.UnitTests.Styling var clock = new TestClock(); var target = new Class1 { Clock = clock }; - style.TryAttach(target, null, FrameType.Style); + StyleHelpers.TryAttach(style, target); Assert.Equal(0.0, target.Double); diff --git a/tests/Avalonia.Benchmarks/Styling/Style_Activation.cs b/tests/Avalonia.Benchmarks/Styling/Style_Activation.cs index 7fe25b1d33..39ae72d488 100644 --- a/tests/Avalonia.Benchmarks/Styling/Style_Activation.cs +++ b/tests/Avalonia.Benchmarks/Styling/Style_Activation.cs @@ -2,6 +2,7 @@ using Avalonia.Controls; using Avalonia.PropertyStore; using Avalonia.Styling; +using Avalonia.UnitTests; using BenchmarkDotNet.Attributes; #nullable enable @@ -27,8 +28,7 @@ namespace Avalonia.Benchmarks.Styling { Setters = { new Setter(TestClass.StringProperty, "foo") } }; - - style.TryAttach(_target, null, FrameType.Style); + StyleHelpers.TryAttach(style, _target); } [Benchmark] diff --git a/tests/Avalonia.Benchmarks/Styling/Style_Apply.cs b/tests/Avalonia.Benchmarks/Styling/Style_Apply.cs index 01302be03a..ccc092e1f4 100644 --- a/tests/Avalonia.Benchmarks/Styling/Style_Apply.cs +++ b/tests/Avalonia.Benchmarks/Styling/Style_Apply.cs @@ -4,6 +4,7 @@ using System.Runtime.CompilerServices; using Avalonia.Controls; using Avalonia.PropertyStore; using Avalonia.Styling; +using Avalonia.UnitTests; using BenchmarkDotNet.Attributes; #nullable enable @@ -57,7 +58,7 @@ namespace Avalonia.Benchmarks.Styling target.GetValueStore().BeginStyling(); foreach (var style in _styles) - style.TryAttach(target, null, FrameType.Style); + StyleHelpers.TryAttach(style, target); target.GetValueStore().EndStyling(); } diff --git a/tests/Avalonia.Benchmarks/Styling/Style_ClassSelector.cs b/tests/Avalonia.Benchmarks/Styling/Style_ClassSelector.cs index d16071acbb..eca36c2619 100644 --- a/tests/Avalonia.Benchmarks/Styling/Style_ClassSelector.cs +++ b/tests/Avalonia.Benchmarks/Styling/Style_ClassSelector.cs @@ -3,6 +3,7 @@ using System.Runtime.CompilerServices; using Avalonia.Controls; using Avalonia.PropertyStore; using Avalonia.Styling; +using Avalonia.UnitTests; using BenchmarkDotNet.Attributes; #nullable enable @@ -36,7 +37,7 @@ namespace Avalonia.Benchmarks.Styling target.GetValueStore().BeginStyling(); for (var i = 0; i < 50; ++i) - _style.TryAttach(target, null, FrameType.Style); + StyleHelpers.TryAttach(_style, target); target.GetValueStore().EndStyling(); } @@ -49,7 +50,7 @@ namespace Avalonia.Benchmarks.Styling target.GetValueStore().BeginStyling(); for (var i = 0; i < 50; ++i) - _style.TryAttach(target, null, FrameType.Style); + StyleHelpers.TryAttach(_style, target); target.GetValueStore().EndStyling(); @@ -65,7 +66,7 @@ namespace Avalonia.Benchmarks.Styling target.GetValueStore().BeginStyling(); for (var i = 0; i < 50; ++i) - _style.TryAttach(target, null, FrameType.Style); + StyleHelpers.TryAttach(_style, target); target.GetValueStore().EndStyling(); diff --git a/tests/Avalonia.Benchmarks/Styling/Style_NonActive.cs b/tests/Avalonia.Benchmarks/Styling/Style_NonActive.cs index 2b4a3908a6..578ddfb3eb 100644 --- a/tests/Avalonia.Benchmarks/Styling/Style_NonActive.cs +++ b/tests/Avalonia.Benchmarks/Styling/Style_NonActive.cs @@ -2,6 +2,7 @@ using Avalonia.Controls; using Avalonia.PropertyStore; using Avalonia.Styling; +using Avalonia.UnitTests; using BenchmarkDotNet.Attributes; #nullable enable @@ -28,7 +29,7 @@ namespace Avalonia.Benchmarks.Styling Setters = { new Setter(TestClass.StringProperty, "foo") } }; - style.TryAttach(_target, null, FrameType.Style); + StyleHelpers.TryAttach(style, _target); _target.SetValue(TestClass.StringProperty, "foo"); _target.SetValue(TestClass.Struct1Property, new(1)); _target.SetValue(TestClass.Struct2Property, new(1)); diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/StyleTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/StyleTests.cs index e8fb00056c..cad7b7b094 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/StyleTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/StyleTests.cs @@ -55,7 +55,7 @@ namespace Avalonia.Markup.Xaml.UnitTests } }; - style.TryAttach(control, control, FrameType.Style); + StyleHelpers.TryAttach(style, control); Assert.Equal("foo", control.Text); control.Text = "bar"; diff --git a/tests/Avalonia.UnitTests/StyleHelpers.cs b/tests/Avalonia.UnitTests/StyleHelpers.cs new file mode 100644 index 0000000000..00f74769d3 --- /dev/null +++ b/tests/Avalonia.UnitTests/StyleHelpers.cs @@ -0,0 +1,14 @@ +using Avalonia.Styling; + +#nullable enable + +namespace Avalonia.UnitTests +{ + public static class StyleHelpers + { + public static SelectorMatchResult TryAttach(Style style, StyledElement element, object? host = null) + { + return style.TryAttach(element, host ?? element, PropertyStore.FrameType.Style); + } + } +}