From 381081da18180dea03b0e69a260c69461f68a718 Mon Sep 17 00:00:00 2001 From: Dev Date: Thu, 9 Apr 2026 09:25:18 +0200 Subject: [PATCH] test(14-01): add failing tests for SelectDirectoryUserCommand - Test 17: adds user to SelectedUsers - Test 18: skips duplicates - Test 19: null does nothing - Test 20: user is auditable after selection Co-Authored-By: Claude Opus 4.6 (1M context) --- .../UserAccessAuditViewModelDirectoryTests.cs | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/SharepointToolbox.Tests/ViewModels/UserAccessAuditViewModelDirectoryTests.cs b/SharepointToolbox.Tests/ViewModels/UserAccessAuditViewModelDirectoryTests.cs index 1bcb1cc..57276df 100644 --- a/SharepointToolbox.Tests/ViewModels/UserAccessAuditViewModelDirectoryTests.cs +++ b/SharepointToolbox.Tests/ViewModels/UserAccessAuditViewModelDirectoryTests.cs @@ -348,4 +348,59 @@ public class UserAccessAuditViewModelDirectoryTests Assert.Single(visible); Assert.Equal("Alice", visible[0].DisplayName); } + + // ── Test 17: SelectDirectoryUserCommand adds user to SelectedUsers ────── + + [Fact] + public void SelectDirectoryUserCommand_adds_user_to_SelectedUsers() + { + var (vm, _, _) = CreateViewModel(); + var dirUser = MakeMember("Alice"); + + vm.SelectDirectoryUserCommand.Execute(dirUser); + + Assert.Single(vm.SelectedUsers); + Assert.Equal("Alice", vm.SelectedUsers[0].DisplayName); + Assert.Equal("alice@contoso.com", vm.SelectedUsers[0].UserPrincipalName); + } + + // ── Test 18: SelectDirectoryUserCommand skips duplicates ───────────────── + + [Fact] + public void SelectDirectoryUserCommand_skips_duplicates() + { + var (vm, _, _) = CreateViewModel(); + var dirUser = MakeMember("Alice"); + + vm.SelectDirectoryUserCommand.Execute(dirUser); + vm.SelectDirectoryUserCommand.Execute(dirUser); + + Assert.Single(vm.SelectedUsers); + } + + // ── Test 19: SelectDirectoryUserCommand with null does nothing ─────────── + + [Fact] + public void SelectDirectoryUserCommand_with_null_does_nothing() + { + var (vm, _, _) = CreateViewModel(); + + vm.SelectDirectoryUserCommand.Execute(null); + + Assert.Empty(vm.SelectedUsers); + } + + // ── Test 20: After SelectDirectoryUser, user can be audited ────────────── + + [Fact] + public void SelectDirectoryUser_adds_auditable_user_to_SelectedUsers() + { + var (vm, _, _) = CreateViewModel(); + var dirUser = MakeMember("Alice"); + + vm.SelectDirectoryUserCommand.Execute(dirUser); + + Assert.True(vm.SelectedUsers.Count > 0); + Assert.Equal("alice@contoso.com", vm.SelectedUsers[0].UserPrincipalName); + } }