From 09103a9b5579b7f882e76b76b2f33121c3158195 Mon Sep 17 00:00:00 2001 From: codomposer Date: Thu, 13 Nov 2025 08:15:16 -0500 Subject: [PATCH 1/3] add test for chip --- .../ChipTests.cs | 264 ++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 tests/MaterialDesignThemes.Wpf.Tests/ChipTests.cs diff --git a/tests/MaterialDesignThemes.Wpf.Tests/ChipTests.cs b/tests/MaterialDesignThemes.Wpf.Tests/ChipTests.cs new file mode 100644 index 0000000000..bb4ec25e7e --- /dev/null +++ b/tests/MaterialDesignThemes.Wpf.Tests/ChipTests.cs @@ -0,0 +1,264 @@ +using System.Windows.Input; +using System.Windows.Media; + +namespace MaterialDesignThemes.Wpf.Tests; + +[TestExecutor] +public class ChipTests +{ + [Test] + public async Task TestIconProperty() + { + Chip chip = new(); + + // Assert defaults + await Assert.That(Chip.IconProperty.Name).IsEqualTo("Icon"); + await Assert.That(chip.Icon).IsNull(); + + // Assert setting works + var icon = new PackIcon { Kind = PackIconKind.Home }; + chip.Icon = icon; + await Assert.That(chip.Icon).IsEqualTo(icon); + } + + [Test] + public async Task TestIconBackgroundProperty() + { + Chip chip = new(); + + // Assert defaults + await Assert.That(Chip.IconBackgroundProperty.Name).IsEqualTo("IconBackground"); + await Assert.That(chip.IconBackground).IsNull(); + + // Assert setting works + chip.IconBackground = Brushes.Red; + await Assert.That(chip.IconBackground).IsEqualTo(Brushes.Red); + } + + [Test] + public async Task TestIconForegroundProperty() + { + Chip chip = new(); + + // Assert defaults + await Assert.That(Chip.IconForegroundProperty.Name).IsEqualTo("IconForeground"); + await Assert.That(chip.IconForeground).IsNull(); + + // Assert setting works + chip.IconForeground = Brushes.Blue; + await Assert.That(chip.IconForeground).IsEqualTo(Brushes.Blue); + } + + [Test] + public async Task TestIsDeletableProperty() + { + Chip chip = new(); + + // Assert defaults + await Assert.That(Chip.IsDeletableProperty.Name).IsEqualTo("IsDeletable"); + await Assert.That(chip.IsDeletable).IsFalse(); + + // Assert setting works + chip.IsDeletable = true; + await Assert.That(chip.IsDeletable).IsTrue(); + } + + [Test] + public async Task TestDeleteCommandProperty() + { + Chip chip = new(); + + // Assert defaults + await Assert.That(Chip.DeleteCommandProperty.Name).IsEqualTo("DeleteCommand"); + await Assert.That(chip.DeleteCommand).IsNull(); + + // Assert setting works + var command = new TestCommand(); + chip.DeleteCommand = command; + await Assert.That(chip.DeleteCommand).IsEqualTo(command); + } + + [Test] + public async Task TestDeleteCommandParameterProperty() + { + Chip chip = new(); + + // Assert defaults + await Assert.That(Chip.DeleteCommandParameterProperty.Name).IsEqualTo("DeleteCommandParameter"); + await Assert.That(chip.DeleteCommandParameter).IsNull(); + + // Assert setting works + var parameter = new object(); + chip.DeleteCommandParameter = parameter; + await Assert.That(chip.DeleteCommandParameter).IsEqualTo(parameter); + } + + [Test] + public async Task TestDeleteToolTipProperty() + { + Chip chip = new(); + + // Assert defaults + await Assert.That(Chip.DeleteToolTipProperty.Name).IsEqualTo("DeleteToolTip"); + await Assert.That(chip.DeleteToolTip).IsNull(); + + // Assert setting works + chip.DeleteToolTip = "Delete this chip"; + await Assert.That(chip.DeleteToolTip).IsEqualTo("Delete this chip"); + } + + [Test] + public async Task DeleteClickEvent_WhenDeleteButtonClicked_EventIsRaised() + { + Chip chip = new(); + chip.ApplyDefaultStyle(); + List invocations = new(); + + chip.DeleteClick += OnDeleteClick; + + void OnDeleteClick(object? sender, RoutedEventArgs e) + => invocations.Add(e); + + // Find and click the delete button + var deleteButton = chip.FindVisualChild