using Avalonia.Controls; using Avalonia.Headless.XUnit; using Avalonia.VisualTree; using NSubstitute; using Shouldly; using Xunit; using JdeScoping.SecureStoreManager.Services; using JdeScoping.SecureStoreManager.ViewModels; using JdeScoping.SecureStoreManager.Views; namespace JdeScoping.SecureStoreManager.Tests.Views; public class MainWindowTests { [AvaloniaFact] public void MainWindow_ShowsWithCorrectDefaultTitle() { // Arrange & Act var window = new MainWindow(); window.Show(); // Assert window.Title.ShouldBe("SecureStore Manager"); } [AvaloniaFact] public void MainWindow_HasExpectedWidth() { // Arrange & Act var window = new MainWindow(); window.Show(); // Assert window.Width.ShouldBe(800); } [AvaloniaFact] public void MainWindow_HasExpectedHeight() { // Arrange & Act var window = new MainWindow(); window.Show(); // Assert window.Height.ShouldBe(500); } [AvaloniaFact] public void MainWindow_DataContextIsMainWindowViewModel() { // Arrange & Act var window = new MainWindow(); window.Show(); // Assert window.DataContext.ShouldBeOfType(); } [AvaloniaFact] public void MainWindow_ContainsSecretsDataGrid() { // Arrange & Act var window = new MainWindow(); window.Show(); // Assert var dataGrid = window.FindDescendantOfType(); dataGrid.ShouldNotBeNull(); } [AvaloniaFact] public void MainWindow_ContainsMenuBar() { // Arrange & Act var window = new MainWindow(); window.Show(); // Assert var menu = window.FindDescendantOfType(); menu.ShouldNotBeNull(); } [AvaloniaFact] public void MainWindow_ContainsToolbarButtons() { // Arrange & Act var window = new MainWindow(); window.Show(); // Assert var buttons = window.GetVisualDescendants().OfType