Files
UA-.NETStandard/tests
Klaus Landsdorf c189cd6fcb Include subtypes of AliasNameCategoryType in AliasNameClient.EnumerateSubCategoriesAsync (#4611)
# Description

`AliasNameClient.EnumerateSubCategoriesAsync` kept a browsed child only
when its TypeDefinition was exactly `AliasNameCategoryType`. OPC
10000-17 §6.3.1 declares `<SubAliasNameCategories>` as an
OptionalPlaceholder of `AliasNameCategoryType` and does not rule out
subtypes, so sub-categories modelled with a subtype were silently
dropped.

The exact type is still accepted without a round trip; any other type
definition is checked against the type hierarchy with
`Session.NodeCache.IsTypeOfAsync` (the pattern `RoleManagementClient`
uses for `RoleType`). The node cache keeps the type references, so each
distinct type is resolved once. The check runs on the first browse page
and on every BrowseNext page. `docs/AliasNames.md` notes that subtypes
are included.

Tests: the mocked session harness gets a node cache that answers
`IsTypeOfAsync` from a subtype map; a new test covers the exact type, a
direct subtype, a subtype of a subtype, a FolderType child and an
untyped child. It fails on master (`Missing: < "Vendor", "Derived" >`)
and passes with the fix. `Opc.Ua.Client.Tests` 2733/2733 on net10.0 and
net8.0; `Opc.Ua.Features.Tests` AliasNameIntegrationTests (real server)
7/7. Fork CI (full matrix incl. macOS) and CodeQL: green — [CI run
36769850776](https://github.com/biancode/UA-.NETStandard/actions/runs/36769850776)
(full matrix incl. macOS), [CodeQL run
36769855329](https://github.com/biancode/UA-.NETStandard/actions/runs/36769855329).

## Related Issues

- Fixes #4610

## Checklist

- [x] I have signed the
[CLA](https://opcfoundation.org/license/cla/ContributorLicenseAgreementv1.0.pdf)
and read the
[CONTRIBUTING](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/CONTRIBUTING.md)
doc.
- [x] I have added tests that prove my fix is effective or that my
feature works and increased code coverage.
- [x] I have added all necessary documentation.
- [x] I have verified that my changes do not introduce (new) build or
analyzer warnings.
- [ ] I ran **all** tests locally using the **UA.slnx** solution against
at least .net **framework** and .net **10**, and all passed. (Affected
suites on net10.0 and net8.0 locally on macOS; .NET Framework is covered
by the fork CI's Windows net48 legs.)
- [ ] I fixed **all** failing and flaky tests in the CI pipelines and
**all** CodeQL warnings.
- [ ] I have addressed **all** PR feedback received.
2026-10-01 06:52:04 +00:00
..