using Avalonia.Controls; using Avalonia.Headless.XUnit; using Avalonia.VisualTree; using Shouldly; using Xunit; using JdeScoping.SecureStoreManager.ViewModels; using JdeScoping.SecureStoreManager.Views; namespace JdeScoping.SecureStoreManager.Tests.Views; public class NewStoreDialogTests { [AvaloniaFact] public void NewStoreDialog_ShowsWithCorrectTitle() { // Arrange & Act var dialog = new NewStoreDialog(); dialog.Show(); // Assert dialog.Title.ShouldBe("Create New Store"); } [AvaloniaFact] public void NewStoreDialog_DataContextIsNewStoreDialogViewModel() { // Arrange & Act var dialog = new NewStoreDialog(); dialog.Show(); // Assert dialog.DataContext.ShouldBeOfType(); } [AvaloniaFact] public void NewStoreDialog_HasStorePathTextBox() { // Arrange & Act var dialog = new NewStoreDialog(); dialog.Show(); // Assert var textBoxes = dialog.GetVisualDescendants().OfType().ToList(); textBoxes.Count.ShouldBeGreaterThan(0); } [AvaloniaFact] public void NewStoreDialog_HasRadioButtons() { // Arrange & Act var dialog = new NewStoreDialog(); dialog.Show(); // Assert var radioButtons = dialog.GetVisualDescendants().OfType().ToList(); radioButtons.Count.ShouldBeGreaterThanOrEqualTo(2); } [AvaloniaFact] public void NewStoreDialog_HasCreateAndCancelButtons() { // Arrange & Act var dialog = new NewStoreDialog(); dialog.Show(); // Assert var buttons = dialog.GetVisualDescendants().OfType