feat(13-01): extend GraphDirectoryUser with UserType and add includeGuests parameter to directory service
- Add string? UserType as last positional parameter to GraphDirectoryUser record - Add bool includeGuests = false parameter to IGraphUserDirectoryService.GetUsersAsync - Branch Graph filter: members-only (default) vs all users when includeGuests=true - Add userType to Graph Select array for MapUser population - Update MapUser to include UserType from Graph User object - Add MapUser_PopulatesUserType and MapUser_NullUserType tests Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -31,7 +31,8 @@ public class GraphUserDirectoryServiceTests
|
||||
UserPrincipalName = "alice@contoso.com",
|
||||
Mail = "alice@contoso.com",
|
||||
Department = "Engineering",
|
||||
JobTitle = "Senior Developer"
|
||||
JobTitle = "Senior Developer",
|
||||
UserType = "Member"
|
||||
};
|
||||
|
||||
var result = GraphUserDirectoryService.MapUser(user);
|
||||
@@ -41,6 +42,7 @@ public class GraphUserDirectoryServiceTests
|
||||
Assert.Equal("alice@contoso.com", result.Mail);
|
||||
Assert.Equal("Engineering", result.Department);
|
||||
Assert.Equal("Senior Developer", result.JobTitle);
|
||||
Assert.Equal("Member", result.UserType);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -52,7 +54,8 @@ public class GraphUserDirectoryServiceTests
|
||||
UserPrincipalName = "bob@contoso.com",
|
||||
Mail = null,
|
||||
Department = null,
|
||||
JobTitle = null
|
||||
JobTitle = null,
|
||||
UserType = "Guest"
|
||||
};
|
||||
|
||||
var result = GraphUserDirectoryService.MapUser(user);
|
||||
@@ -62,6 +65,7 @@ public class GraphUserDirectoryServiceTests
|
||||
Assert.Null(result.Mail);
|
||||
Assert.Null(result.Department);
|
||||
Assert.Null(result.JobTitle);
|
||||
Assert.Equal("Guest", result.UserType);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -120,6 +124,44 @@ public class GraphUserDirectoryServiceTests
|
||||
Assert.Null(result.JobTitle);
|
||||
}
|
||||
|
||||
// ── MapUser: UserType mapping ──────────────────────────────────────────────
|
||||
|
||||
[Fact]
|
||||
public void MapUser_PopulatesUserType()
|
||||
{
|
||||
var user = new User
|
||||
{
|
||||
DisplayName = "Eve Wilson",
|
||||
UserPrincipalName = "eve@contoso.com",
|
||||
Mail = "eve@contoso.com",
|
||||
Department = "Sales",
|
||||
JobTitle = "Account Executive",
|
||||
UserType = "Member"
|
||||
};
|
||||
|
||||
var result = GraphUserDirectoryService.MapUser(user);
|
||||
|
||||
Assert.Equal("Member", result.UserType);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MapUser_NullUserType_ReturnsNull()
|
||||
{
|
||||
var user = new User
|
||||
{
|
||||
DisplayName = "Frank Lee",
|
||||
UserPrincipalName = "frank@contoso.com",
|
||||
Mail = null,
|
||||
Department = null,
|
||||
JobTitle = null,
|
||||
UserType = null
|
||||
};
|
||||
|
||||
var result = GraphUserDirectoryService.MapUser(user);
|
||||
|
||||
Assert.Null(result.UserType);
|
||||
}
|
||||
|
||||
// ── GetUsersAsync: integration-level scenarios (skipped without live tenant) ──
|
||||
|
||||
[Fact(Skip = "Requires integration test with real Graph client — PageIterator.CreatePageIterator " +
|
||||
|
||||
Reference in New Issue
Block a user