diff --git a/samples/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContext.csproj b/samples/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContext.csproj
index 9ad92d3e62..8508765545 100644
--- a/samples/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContext.csproj
+++ b/samples/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContext.csproj
@@ -1,13 +1,14 @@
-
- WinExe
- net7.0
- enable
- true
- app.manifest
- true
- true
-
+
+
+ WinExe
+ $(AvsCurrentTargetFramework)
+ enable
+ true
+ app.manifest
+ true
+ true
+
@@ -18,6 +19,7 @@
+
@@ -26,4 +28,5 @@
+
diff --git a/samples/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContextPlug/UnloadableAssemblyLoadContextPlug.csproj b/samples/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContextPlug/UnloadableAssemblyLoadContextPlug.csproj
index 564c169818..4dd79dee1b 100644
--- a/samples/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContextPlug/UnloadableAssemblyLoadContextPlug.csproj
+++ b/samples/UnloadableAssemblyLoadContext/UnloadableAssemblyLoadContextPlug/UnloadableAssemblyLoadContextPlug.csproj
@@ -1,17 +1,19 @@
-
- net7.0
- enable
- true
- app.manifest
- true
- UnloadableAssemblyLoadContextPlug
- UnloadableAssemblyLoadContextPlug
-
-
-
-
+
+ $(AvsCurrentTargetFramework)
+ enable
+ true
+ app.manifest
+ true
+ UnloadableAssemblyLoadContextPlug
+ UnloadableAssemblyLoadContextPlug
+
+
+
+
+
+
%(Filename)
@@ -19,33 +21,27 @@
Designer
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
diff --git a/samples/XEmbedSample/HarfbuzzWorkaround.cs b/samples/XEmbedSample/HarfbuzzWorkaround.cs
index f0ecf0699a..e241d7740c 100644
--- a/samples/XEmbedSample/HarfbuzzWorkaround.cs
+++ b/samples/XEmbedSample/HarfbuzzWorkaround.cs
@@ -46,7 +46,7 @@ public unsafe class HarfbuzzWorkaround
var libraryPathBytes = Marshal.AllocHGlobal(4096);
var handle = NativeLibrary.Load("libHarfBuzzSharp", typeof(HarfBuzzSharp.Blob).Assembly, null);
dlinfo(handle, RTLD_DI_ORIGIN, libraryPathBytes);
- var libraryOrigin = Marshal.PtrToStringUTF8(libraryPathBytes);
+ var libraryOrigin = Marshal.PtrToStringUTF8(libraryPathBytes) ?? string.Empty;
Marshal.FreeHGlobal(libraryPathBytes);
var libraryPath = Path.Combine(libraryOrigin, "libHarfBuzzSharp.so");
@@ -63,4 +63,4 @@ public unsafe class HarfbuzzWorkaround
});
}
-}
\ No newline at end of file
+}
diff --git a/samples/XEmbedSample/Program.cs b/samples/XEmbedSample/Program.cs
index d5cf8be039..e8011feccb 100644
--- a/samples/XEmbedSample/Program.cs
+++ b/samples/XEmbedSample/Program.cs
@@ -4,7 +4,9 @@ using Avalonia.Controls.Primitives;
using Avalonia.Media;
using ControlCatalog;
using ControlCatalog.Models;
+using Gdk;
using Gtk;
+using Window = Gtk.Window;
namespace XEmbedSample;
@@ -31,7 +33,7 @@ class Program
var w = new Gtk.Window("XEmbed Test Window");
- var socket = new AvaloniaXEmbedGtkSocket(w.StyleContext.GetBackgroundColor(StateFlags.Normal))
+ var socket = new AvaloniaXEmbedGtkSocket(GetBackgroundColor(w))
{
Content = new ScrollViewer()
{
@@ -60,4 +62,11 @@ class Program
Gtk.Application.Run();
}
-}
\ No newline at end of file
+
+ private static RGBA GetBackgroundColor(Window window)
+ {
+#pragma warning disable CS0612 // Type or member is obsolete; OK for a sample.
+ return window.StyleContext.GetBackgroundColor(StateFlags.Normal);
+#pragma warning restore CS0612 // Type or member is obsolete
+ }
+}
diff --git a/samples/XEmbedSample/SocketEx.cs b/samples/XEmbedSample/SocketEx.cs
index 3a4d820978..780b67c9c7 100644
--- a/samples/XEmbedSample/SocketEx.cs
+++ b/samples/XEmbedSample/SocketEx.cs
@@ -14,8 +14,8 @@ public class AvaloniaXEmbedGtkSocket : Gtk.Socket
_backgroundColor = backgroundColor;
}
- private object _content;
- public object Content
+ private object? _content;
+ public object? Content
{
get => _content;
set
@@ -61,4 +61,4 @@ public class AvaloniaXEmbedGtkSocket : Gtk.Socket
_avaloniaPlug = null;
base.OnDestroyed();
}
-}
\ No newline at end of file
+}
diff --git a/src/Avalonia.Base/Media/TextFormatting/Unicode/PropertyValueAliasHelper.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/PropertyValueAliasHelper.cs
index bb9b7a6219..95b1ed524b 100644
--- a/src/Avalonia.Base/Media/TextFormatting/Unicode/PropertyValueAliasHelper.cs
+++ b/src/Avalonia.Base/Media/TextFormatting/Unicode/PropertyValueAliasHelper.cs
@@ -182,11 +182,11 @@ namespace Avalonia.Media.TextFormatting.Unicode
public static string GetTag(Script script)
{
- if(!s_scriptToTag.ContainsKey(script))
+ if (!s_scriptToTag.TryGetValue(script, out var value))
{
return "Zzzz";
}
- return s_scriptToTag[script];
+ return value;
}
private static readonly Dictionary s_tagToScript =
@@ -367,11 +367,11 @@ namespace Avalonia.Media.TextFormatting.Unicode
public static Script GetScript(string tag)
{
- if(!s_tagToScript.ContainsKey(tag))
+ if (!s_tagToScript.TryGetValue(tag, out var value))
{
return Script.Unknown;
}
- return s_tagToScript[tag];
+ return value;
}
private static readonly Dictionary s_tagToGeneralCategory =
@@ -418,11 +418,11 @@ namespace Avalonia.Media.TextFormatting.Unicode
public static GeneralCategory GetGeneralCategory(string tag)
{
- if(!s_tagToGeneralCategory.ContainsKey(tag))
+ if (!s_tagToGeneralCategory.TryGetValue(tag, out var value))
{
return GeneralCategory.Other;
}
- return s_tagToGeneralCategory[tag];
+ return value;
}
private static readonly Dictionary s_tagToLineBreakClass =
@@ -479,11 +479,11 @@ namespace Avalonia.Media.TextFormatting.Unicode
public static LineBreakClass GetLineBreakClass(string tag)
{
- if(!s_tagToLineBreakClass.ContainsKey(tag))
+ if (!s_tagToLineBreakClass.TryGetValue(tag, out var value))
{
return LineBreakClass.Unknown;
}
- return s_tagToLineBreakClass[tag];
+ return value;
}
private static readonly Dictionary s_tagToBidiPairedBracketType =
@@ -495,11 +495,11 @@ namespace Avalonia.Media.TextFormatting.Unicode
public static BidiPairedBracketType GetBidiPairedBracketType(string tag)
{
- if(!s_tagToBidiPairedBracketType.ContainsKey(tag))
+ if (!s_tagToBidiPairedBracketType.TryGetValue(tag, out var value))
{
return BidiPairedBracketType.None;
}
- return s_tagToBidiPairedBracketType[tag];
+ return value;
}
private static readonly Dictionary s_tagToBidiClass =
@@ -531,11 +531,11 @@ namespace Avalonia.Media.TextFormatting.Unicode
public static BidiClass GetBidiClass(string tag)
{
- if(!s_tagToBidiClass.ContainsKey(tag))
+ if (!s_tagToBidiClass.TryGetValue(tag, out var value))
{
return BidiClass.LeftToRight;
}
- return s_tagToBidiClass[tag];
+ return value;
}
}
diff --git a/src/Avalonia.Controls/TextBox.cs b/src/Avalonia.Controls/TextBox.cs
index 39323d518b..ad96829b28 100644
--- a/src/Avalonia.Controls/TextBox.cs
+++ b/src/Avalonia.Controls/TextBox.cs
@@ -1,6 +1,7 @@
using Avalonia.Input.Platform;
using System;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Avalonia.Reactive;
using Avalonia.Controls.Presenters;
@@ -629,6 +630,7 @@ namespace Avalonia.Controls
///
/// Gets or sets the text selected in the TextBox
///
+ [AllowNull]
public string SelectedText
{
get => GetSelection();
diff --git a/src/Headless/Avalonia.Headless/HeadlessPlatformStubs.cs b/src/Headless/Avalonia.Headless/HeadlessPlatformStubs.cs
index e484229551..6bfe8562dc 100644
--- a/src/Headless/Avalonia.Headless/HeadlessPlatformStubs.cs
+++ b/src/Headless/Avalonia.Headless/HeadlessPlatformStubs.cs
@@ -73,7 +73,11 @@ namespace Avalonia.Headless
if (format == DataFormats.Files && _data is not null)
return _data.GetFiles();
if (format == DataFormats.FileNames && _data is not null)
+ {
+#pragma warning disable CS0618 // Type or member is obsolete
return _data.GetFileNames();
+#pragma warning restore CS0618 // Type or member is obsolete
+ }
else
return (object?)_data;
});
diff --git a/src/Windows/Avalonia.Win32.Automation/GlobalSuppressions.cs b/src/Windows/Avalonia.Win32.Automation/GlobalSuppressions.cs
new file mode 100644
index 0000000000..cb007864dd
--- /dev/null
+++ b/src/Windows/Avalonia.Win32.Automation/GlobalSuppressions.cs
@@ -0,0 +1,11 @@
+using System.Diagnostics.CodeAnalysis;
+
+// Until https://github.com/dotnet/runtime/issues/90922 is resolved, this is the only way
+// to suppress CA2256 in the generated code.
+[assembly: SuppressMessage(
+ "Usage",
+ "CA2256:All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface",
+ Justification = "Generated code and analyzer ignores that it is generated AND partial",
+ Scope = "type",
+ Target = "~T:InterfaceImplementation")
+]
diff --git a/tests/Avalonia.Base.UnitTests/Animation/AnimationIterationTests.cs b/tests/Avalonia.Base.UnitTests/Animation/AnimationIterationTests.cs
index 65253e7214..942ac148c8 100644
--- a/tests/Avalonia.Base.UnitTests/Animation/AnimationIterationTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/AnimationIterationTests.cs
@@ -317,7 +317,7 @@ namespace Avalonia.Base.UnitTests.Animation
}
[Fact]
- public void Cancellation_Should_Stop_Animation()
+ public async Task Cancellation_Should_Stop_Animation()
{
var keyframe1 = new KeyFrame()
{
@@ -364,7 +364,7 @@ namespace Avalonia.Base.UnitTests.Animation
clock.Step(TimeSpan.FromSeconds(2));
clock.Step(TimeSpan.FromSeconds(3));
- animationRun.Wait();
+ await animationRun;
clock.Step(TimeSpan.FromSeconds(6));
Assert.True(animationRun.IsCompleted);
@@ -404,7 +404,7 @@ namespace Avalonia.Base.UnitTests.Animation
}
[Fact]
- public void Cancellation_Of_Completed_Animation_Does_Not_Fail()
+ public async Task Cancellation_Of_Completed_Animation_Does_Not_Fail()
{
var keyframe1 = new KeyFrame()
{
@@ -450,12 +450,12 @@ namespace Avalonia.Base.UnitTests.Animation
Assert.Equal(2, propertyChangedCount);
cancellationTokenSource.Cancel();
- animationRun.Wait();
+ await animationRun;
}
// https://github.com/AvaloniaUI/Avalonia/issues/12582
[Fact]
- public void Interpolator_Is_Not_Called_After_Last_Iteration()
+ public async Task Interpolator_Is_Not_Called_After_Last_Iteration()
{
var animator = new FakeAnimator();
@@ -511,7 +511,7 @@ namespace Avalonia.Base.UnitTests.Animation
Assert.Equal(3, animator.CallCount);
Assert.Equal(1.0d, animator.LastProgress);
- animationRun.Wait();
+ await animationRun;
}
[Theory]
diff --git a/tests/Avalonia.Base.UnitTests/Collections/AvaloniaListTests.cs b/tests/Avalonia.Base.UnitTests/Collections/AvaloniaListTests.cs
index 82a9885ddc..82c7a0eac8 100644
--- a/tests/Avalonia.Base.UnitTests/Collections/AvaloniaListTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Collections/AvaloniaListTests.cs
@@ -554,7 +554,7 @@ namespace Avalonia.Base.UnitTests.Collections
}
///
- /// Assert that emits when performing .
+ /// Assert that emits when performing .
///
/// The event source.
/// The action to perform.
diff --git a/tests/Avalonia.Base.UnitTests/DispatcherTests.cs b/tests/Avalonia.Base.UnitTests/DispatcherTests.cs
index fdc2ff9274..a667057708 100644
--- a/tests/Avalonia.Base.UnitTests/DispatcherTests.cs
+++ b/tests/Avalonia.Base.UnitTests/DispatcherTests.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@@ -462,6 +463,7 @@ public partial class DispatcherTests
}
[Fact]
+ [SuppressMessage("Usage", "xUnit1031:Do not use blocking task operations in test method", Justification = "Tests the dispatcher itself")]
public void DispatcherInvokeAsyncUnwrapsTasks()
{
int asyncMethodStage = 0;
diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTests.cs
index f666d2d3c9..540797ee96 100644
--- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTests.cs
@@ -1,4 +1,5 @@
-using System.Linq;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using Avalonia.Media.TextFormatting.Unicode;
@@ -18,6 +19,7 @@ namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
[Theory(Skip = "Only run when the Unicode spec changes.")]
[ClassData(typeof(BiDiClassTestDataGenerator))]
+ [SuppressMessage("Usage", "xUnit1026:Theory methods should use all of their parameters", Justification = "Parameters match BiDi fields")]
public void Should_Resolve(
int lineNumber,
int[] codePoints,
diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
index 14da235847..74fe709788 100644
--- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
@@ -447,11 +447,11 @@ namespace Avalonia.Base.UnitTests.Media.TextFormatting
writer.WriteLine($" public static string GetTag({typeName} {typeName.ToLower()})");
writer.WriteLine(" {");
- writer.WriteLine($" if(!s_{typeName.ToLower()}ToTag.ContainsKey({typeName.ToLower()}))");
+ writer.WriteLine($" if (!s_{typeName.ToLower()}ToTag.TryGetValue({typeName.ToLower()}, out var value))");
writer.WriteLine(" {");
writer.WriteLine($" return \"{defaultValue}\";");
writer.WriteLine(" }");
- writer.WriteLine($" return s_{typeName.ToLower()}ToTag[{typeName.ToLower()}];");
+ writer.WriteLine($" return value;");
writer.WriteLine(" }");
writer.WriteLine();
@@ -474,11 +474,11 @@ namespace Avalonia.Base.UnitTests.Media.TextFormatting
writer.WriteLine($" public static {typeName} Get{typeName}(string tag)");
writer.WriteLine(" {");
- writer.WriteLine($" if(!s_tagTo{typeName}.ContainsKey(tag))");
+ writer.WriteLine($" if (!s_tagTo{typeName}.TryGetValue(tag, out var value))");
writer.WriteLine(" {");
writer.WriteLine($" return {typeName}.{defaultValue};");
writer.WriteLine(" }");
- writer.WriteLine($" return s_tagTo{typeName}[tag];");
+ writer.WriteLine($" return value;");
writer.WriteLine(" }");
writer.WriteLine();
diff --git a/tests/Avalonia.Base.UnitTests/Utilities/StringTokenizerTests.cs b/tests/Avalonia.Base.UnitTests/Utilities/StringTokenizerTests.cs
index 42a4a406ef..b7d09a40d7 100644
--- a/tests/Avalonia.Base.UnitTests/Utilities/StringTokenizerTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Utilities/StringTokenizerTests.cs
@@ -2,6 +2,8 @@
using Avalonia.Utilities;
using Xunit;
+#pragma warning disable CS0618 // Type or member is obsolete
+
namespace Avalonia.Base.UnitTests.Utilities
{
public class StringTokenizerTests
diff --git a/tests/Avalonia.Build.Tasks.UnitTest/CompileAvaloniaXamlTaskTest.cs b/tests/Avalonia.Build.Tasks.UnitTest/CompileAvaloniaXamlTaskTest.cs
index 115457926b..c2a4b8f44e 100644
--- a/tests/Avalonia.Build.Tasks.UnitTest/CompileAvaloniaXamlTaskTest.cs
+++ b/tests/Avalonia.Build.Tasks.UnitTest/CompileAvaloniaXamlTaskTest.cs
@@ -30,7 +30,7 @@ public class CompileAvaloniaXamlTaskTest
ProjectDirectory = Directory.GetCurrentDirectory(),
VerifyIl = true
}.Execute();
- Assert.Equal(0, engine.Errors.Count);
+ Assert.Empty(engine.Errors);
}
diff --git a/tests/Avalonia.Controls.DataGrid.UnitTests/Collections/ComparerTests.cs b/tests/Avalonia.Controls.DataGrid.UnitTests/Collections/ComparerTests.cs
index 55e144aa1d..5ede8d1f29 100644
--- a/tests/Avalonia.Controls.DataGrid.UnitTests/Collections/ComparerTests.cs
+++ b/tests/Avalonia.Controls.DataGrid.UnitTests/Collections/ComparerTests.cs
@@ -219,5 +219,8 @@ public class NoStringTypeComparerTests
}
return false;
}
+
+ public override int GetHashCode()
+ => Prop;
}
}
diff --git a/tests/Avalonia.Controls.UnitTests/GridLengthTests.cs b/tests/Avalonia.Controls.UnitTests/GridLengthTests.cs
index aab282a54f..10e52d1d95 100644
--- a/tests/Avalonia.Controls.UnitTests/GridLengthTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/GridLengthTests.cs
@@ -107,7 +107,7 @@ namespace Avalonia.Controls.UnitTests
[InlineData(1.2d, GridUnitType.Pixel, "1.2")]
[InlineData(1.2d, GridUnitType.Star, "1.2*")]
[InlineData(1.2d, GridUnitType.Auto, "Auto")]
- public async void ToString_AllCulture_Should_Pass(double d, GridUnitType type, string result)
+ public async Task ToString_AllCulture_Should_Pass(double d, GridUnitType type, string result)
{
List cultureInfos = CultureInfo.GetCultures(CultureTypes.AllCultures).ToList();
GridLength length = new GridLength(d, type);
diff --git a/tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs b/tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs
index e467048e1d..70c6969021 100644
--- a/tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs
@@ -804,7 +804,7 @@ namespace Avalonia.Controls.UnitTests
[InlineData("abc", "ddd", 3, 0, 2, true, "ddc")]
[InlineData("abc", "dddd", 4, 1, 3, true, "addd")]
[InlineData("abc", "ddddd", 5, 3, 3, true, "abcdd")]
- public void MaxLength_Works_Properly(
+ public async Task MaxLength_Works_Properly(
string initalText,
string textInput,
int maxLength,
@@ -838,10 +838,10 @@ namespace Avalonia.Controls.UnitTests
if (fromClipboard)
{
- topLevel.Clipboard?.SetTextAsync(textInput).GetAwaiter().GetResult();
+ await topLevel.Clipboard!.SetTextAsync(textInput);
RaiseKeyEvent(target, Key.V, KeyModifiers.Control);
- topLevel.Clipboard?.ClearAsync().GetAwaiter().GetResult();
+ await topLevel.Clipboard!.ClearAsync();
}
else
{
diff --git a/tests/Avalonia.Controls.UnitTests/Platform/ScreensTests.cs b/tests/Avalonia.Controls.UnitTests/Platform/ScreensTests.cs
index 64c52acda0..e9aae23214 100644
--- a/tests/Avalonia.Controls.UnitTests/Platform/ScreensTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Platform/ScreensTests.cs
@@ -102,7 +102,7 @@ public class ScreensTests : ScopedTestBase
}
[Fact]
- public void Should_Raise_Event_When_Screen_Changed_From_Another_Thread()
+ public async Task Should_Raise_Event_When_Screen_Changed_From_Another_Thread()
{
using var _ = UnitTestApplication.Start(TestServices.MockThreadingInterface);
@@ -114,7 +114,7 @@ public class ScreensTests : ScopedTestBase
hasChangedTimes += 1;
};
- Task.Run(() => screens.PushNewScreens([1, 2])).Wait();
+ await Task.Run(() => screens.PushNewScreens([1, 2]));
Dispatcher.UIThread.RunJobs();
Assert.Equal(1, hasChangedTimes);
diff --git a/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs b/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs
index e85aa99fc9..5228522ade 100644
--- a/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs
@@ -1,3 +1,5 @@
+#nullable enable
+
using System;
using System.Collections.Generic;
using System.Reactive.Linq;
@@ -837,7 +839,7 @@ namespace Avalonia.Controls.UnitTests
[InlineData("abc", "ddd", 3, 0, 2, true, "ddc")]
[InlineData("abc", "dddd", 4, 1, 3, true, "addd")]
[InlineData("abc", "ddddd", 5, 3, 3, true, "abcdd")]
- public void MaxLength_Works_Properly(
+ public async Task MaxLength_Works_Properly(
string initalText,
string textInput,
int maxLength,
@@ -870,10 +872,10 @@ namespace Avalonia.Controls.UnitTests
if (fromClipboard)
{
- topLevel.Clipboard?.SetTextAsync(textInput).GetAwaiter().GetResult();
+ await topLevel.Clipboard!.SetTextAsync(textInput);
RaiseKeyEvent(target, Key.V, KeyModifiers.Control);
- topLevel.Clipboard?.ClearAsync().GetAwaiter().GetResult();
+ await topLevel.Clipboard!.ClearAsync();
}
else
{
@@ -936,7 +938,7 @@ namespace Avalonia.Controls.UnitTests
SelectionEnd = 3,
};
- var values = new List();
+ var values = new List();
target.GetObservable(TextBox.TextProperty).Subscribe(x => values.Add(x));
target.SelectedText = "A";
@@ -960,7 +962,7 @@ namespace Avalonia.Controls.UnitTests
SelectionEnd = 3,
};
- var values = new List();
+ var values = new List();
target.GetObservable(TextBox.TextProperty).Subscribe(x => values.Add(x));
RaiseTextEvent(target, "A");
@@ -1008,7 +1010,7 @@ namespace Avalonia.Controls.UnitTests
}
[Fact]
- public void Should_Fullfill_MaxLines_Contraint()
+ public async Task Should_Fullfill_MaxLines_Contraint()
{
using (UnitTestApplication.Start(Services))
{
@@ -1034,10 +1036,10 @@ namespace Avalonia.Controls.UnitTests
var initialHeight = target.DesiredSize.Height;
- topLevel.Clipboard?.SetTextAsync(Environment.NewLine).GetAwaiter().GetResult();
+ await topLevel.Clipboard!.SetTextAsync(Environment.NewLine);
RaiseKeyEvent(target, Key.V, KeyModifiers.Control);
- topLevel.Clipboard?.ClearAsync().GetAwaiter().GetResult();
+ await topLevel.Clipboard!.ClearAsync();
RaiseTextEvent(target, Environment.NewLine);
@@ -1075,10 +1077,12 @@ namespace Avalonia.Controls.UnitTests
topLevel.LayoutManager.ExecuteInitialLayoutPass();
var textPresenter = target.FindDescendantOfType();
+ Assert.NotNull(textPresenter);
Assert.Equal("PART_TextPresenter", textPresenter.Name);
Assert.Equal(new Thickness(0), textPresenter.Margin); // Test assumes no margin on TextPresenter
var scrollViewer = target.FindDescendantOfType();
+ Assert.NotNull(scrollViewer);
Assert.Equal("PART_ScrollViewer", scrollViewer.Name);
Assert.Equal(maxLines * target.LineHeight, scrollViewer.MaxHeight);
}
@@ -1111,6 +1115,7 @@ namespace Avalonia.Controls.UnitTests
topLevel.LayoutManager.ExecuteInitialLayoutPass();
var textPresenter = target.FindDescendantOfType();
+ Assert.NotNull(textPresenter);
Assert.Equal("PART_TextPresenter", textPresenter.Name);
var textPresenterMargin = new Thickness(horizontal: 0, vertical: 3);
textPresenter.Margin = textPresenterMargin;
@@ -1119,6 +1124,7 @@ namespace Avalonia.Controls.UnitTests
target.Measure(Size.Infinity);
var scrollViewer = target.FindDescendantOfType();
+ Assert.NotNull(scrollViewer);
Assert.Equal("PART_ScrollViewer", scrollViewer.Name);
Assert.Equal((maxLines * target.LineHeight) + textPresenterMargin.Top + textPresenterMargin.Bottom, scrollViewer.MaxHeight);
}
@@ -1187,10 +1193,12 @@ namespace Avalonia.Controls.UnitTests
topLevel.LayoutManager.ExecuteInitialLayoutPass();
var textPresenter = target.FindDescendantOfType();
+ Assert.NotNull(textPresenter);
Assert.Equal("PART_TextPresenter", textPresenter.Name);
Assert.Equal(new Thickness(0), textPresenter.Margin); // Test assumes no margin on TextPresenter
var scrollViewer = target.FindDescendantOfType();
+ Assert.NotNull(scrollViewer);
Assert.Equal("PART_ScrollViewer", scrollViewer.Name);
Assert.Equal(minLines * target.LineHeight, scrollViewer.MinHeight);
}
@@ -1223,6 +1231,7 @@ namespace Avalonia.Controls.UnitTests
topLevel.LayoutManager.ExecuteInitialLayoutPass();
var textPresenter = target.FindDescendantOfType();
+ Assert.NotNull(textPresenter);
Assert.Equal("PART_TextPresenter", textPresenter.Name);
var textPresenterMargin = new Thickness(horizontal: 0, vertical: 3);
textPresenter.Margin = textPresenterMargin;
@@ -1231,6 +1240,7 @@ namespace Avalonia.Controls.UnitTests
target.Measure(Size.Infinity);
var scrollViewer = target.FindDescendantOfType();
+ Assert.NotNull(scrollViewer);
Assert.Equal("PART_ScrollViewer", scrollViewer.Name);
Assert.Equal((minLines * target.LineHeight) + textPresenterMargin.Top + textPresenterMargin.Bottom, scrollViewer.MinHeight);
}
@@ -1541,6 +1551,7 @@ namespace Avalonia.Controls.UnitTests
var adorner = new TextBox { Template = CreateTemplate(), Text = "a" };
var adornerLayer = AdornerLayer.GetAdornerLayer(button);
+ Assert.NotNull(adornerLayer);
adornerLayer.Children.Add(adorner);
AdornerLayer.SetAdornedElement(adorner, button);
@@ -1561,6 +1572,7 @@ namespace Avalonia.Controls.UnitTests
};
var adorner = new TextBox { Template = CreateTemplate(), Text = "a" };
var adornerLayer = AdornerLayer.GetAdornerLayer(button);
+ Assert.NotNull(adornerLayer);
root.Measure(new Size(10, 10));
@@ -1780,7 +1792,7 @@ namespace Avalonia.Controls.UnitTests
private class Class1 : NotifyingBase
{
private int _foo;
- private string _bar;
+ private string? _bar;
public int Foo
{
@@ -1788,7 +1800,7 @@ namespace Avalonia.Controls.UnitTests
set { _foo = value; RaisePropertyChanged(); }
}
- public string Bar
+ public string? Bar
{
get { return _bar; }
set { _bar = value; RaisePropertyChanged(); }
@@ -1797,11 +1809,11 @@ namespace Avalonia.Controls.UnitTests
private class ClipboardStub : IClipboard // in order to get tests working that use the clipboard
{
- private string _text;
+ private string? _text;
- public Task GetTextAsync() => Task.FromResult(_text);
+ public Task GetTextAsync() => Task.FromResult(_text);
- public Task SetTextAsync(string text)
+ public Task SetTextAsync(string? text)
{
_text = text;
return Task.CompletedTask;
@@ -1817,14 +1829,14 @@ namespace Avalonia.Controls.UnitTests
public Task GetFormatsAsync() => Task.FromResult(Array.Empty());
- public Task