public async Task DeleteTabCommand_ShouldDeleteTabs_AndPreserveInitialDefaultTab()
        {
            var tab1 = await TabGenerator.CreateTab(order : 0);

            var tab2 = await TabGenerator.CreateTab(order : 1);

            _viewModel.LoadTabsCommand.Execute();

            // 1. Deleting the first item
            var tabItem1 = _viewModel.Tabs.First(t => t.Id == tab1.Id);
            var tabItem2 = _viewModel.Tabs.First(t => t.Id == tab2.Id);

            _viewModel.DeleteTabCommand.Execute(tabItem1);

            Assert.DoesNotContain(_viewModel.Tabs, t => t.Id == tab1.Id);

            // 2. Deleting the second item
            _viewModel.DeleteTabCommand.Execute(tabItem2);

            Assert.DoesNotContain(_viewModel.Tabs, t => t.Id == tab2.Id);

            // 3. Initial default tab is preserved
            Assert.Single(_viewModel.Tabs);
            Assert.Equal(DefaultValues.DefaultTabName, _viewModel.Tabs[0].Header);

            // 4. Making sure the tabs were deleted after reloading
            _viewModel.LoadTabsCommand.Execute();

            Assert.Single(_viewModel.Tabs);
        }
        public async Task LoadTabsCommand_ShouldLoadAllTabsWithInitialDefaultTab()
        {
            _viewModel.LoadTabsCommand.Execute();
            Assert.Single(_viewModel.Tabs);

            var tab1 = await TabGenerator.CreateTab(order : 1);

            var tab2 = await TabGenerator.CreateTab(order : 2);

            _viewModel.LoadTabsCommand.Execute();

            AssertItemInCollection(_viewModel.Tabs, tab1);
            AssertItemInCollection(_viewModel.Tabs, tab2);
        }