Port mocks to explicit fakes where interaction behavior is the assertion.
Keep external/live dependencies ignored and documented.
Validation
All owned tests compile against public signatures.
Every upstream test identity is preserved.
No synthetic behavior is added to make setup pass.
Prerequisite
Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
Project constraints
Translate the original test semantics exactly; do not weaken assertions, tolerances, inputs, errors, ordering, or interaction expectations.
Tests must exercise the mapped Rust API and must never call LibreMetaverse/.NET as their implementation.
Expected C# exceptions map to specific Rust error variants; an unimplemented panic must remain a failure.
Do not implement production behavior during this milestone. Update parity metadata and handover status with the change.
## Objective
Translate remaining tests for groups, friends, directory/search, marketplace, offline messages, chat/IM, product info, user reporting, and manager events.
## Deliverables
- Preserve IDs, query flags, message payloads, event counts/order, HTTP/LLSD fixtures, permissions, and callback expectations.
- Port mocks to explicit fakes where interaction behavior is the assertion.
- Keep external/live dependencies ignored and documented.
## Validation
- All owned tests compile against public signatures.
- Every upstream test identity is preserved.
- No synthetic behavior is added to make setup pass.
## Prerequisite
Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
## Project constraints
- Translate the original test semantics exactly; do not weaken assertions, tolerances, inputs, errors, ordering, or interaction expectations.
- Tests must exercise the mapped Rust API and must never call LibreMetaverse/.NET as their implementation.
- Expected C# exceptions map to specific Rust error variants; an unimplemented panic must remain a failure.
- Do not implement production behavior during this milestone. Update parity metadata and handover status with the change.
hugo
added this to the 03 - Full semantic test translation milestone 2026-08-08 08:13:49 +00:00
Implemented in commit 1604822. Added 64 one-to-one Rust translations (34 MarketplaceFolderClassifier, 24 MarketplaceManager, 2 OfflineMessages, 2 ProductInfoRequestMessage, and 2 remaining constructor-null cases). Tests call the public Rust API directly; marketplace/offline HTTP behavior uses explicit in-memory cross-platform fakes with request, payload, cache, callback, and event assertions. No production behavior was implemented. Isolated result on the current shim baseline: 64 tests executed, 63 fail at standardized unimplemented APIs and the pure bitflag composition case passes; 0 ignored. Full validation passed: cargo fmt --check, all three generator --check gates, API coverage, parity check, tool unit tests, workspace/all-target cargo check, downstream locked API compile, workspace test --no-run, clippy -D warnings, cargo doc, and git diff --check. Parity is now translated=650, ignored-live=19, benchmark=4, pending=616, drifted=0; every remaining pending identity is under LibreMetaverse.Tests/RLV/ and belongs to #25. The existing 19 live-grid identities remain conditionally ignored only when GRID_USER, GRID_PASSWORD, or GRID_LOGIN_URL is absent.
Implemented in commit 1604822. Added 64 one-to-one Rust translations (34 MarketplaceFolderClassifier, 24 MarketplaceManager, 2 OfflineMessages, 2 ProductInfoRequestMessage, and 2 remaining constructor-null cases). Tests call the public Rust API directly; marketplace/offline HTTP behavior uses explicit in-memory cross-platform fakes with request, payload, cache, callback, and event assertions. No production behavior was implemented. Isolated result on the current shim baseline: 64 tests executed, 63 fail at standardized unimplemented APIs and the pure bitflag composition case passes; 0 ignored. Full validation passed: cargo fmt --check, all three generator --check gates, API coverage, parity check, tool unit tests, workspace/all-target cargo check, downstream locked API compile, workspace test --no-run, clippy -D warnings, cargo doc, and git diff --check. Parity is now translated=650, ignored-live=19, benchmark=4, pending=616, drifted=0; every remaining pending identity is under LibreMetaverse.Tests/RLV/ and belongs to #25. The existing 19 live-grid identities remain conditionally ignored only when GRID_USER, GRID_PASSWORD, or GRID_LOGIN_URL is absent.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Translate remaining tests for groups, friends, directory/search, marketplace, offline messages, chat/IM, product info, user reporting, and manager events.
Deliverables
Validation
Prerequisite
Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
Project constraints
Implemented in commit
1604822. Added 64 one-to-one Rust translations (34 MarketplaceFolderClassifier, 24 MarketplaceManager, 2 OfflineMessages, 2 ProductInfoRequestMessage, and 2 remaining constructor-null cases). Tests call the public Rust API directly; marketplace/offline HTTP behavior uses explicit in-memory cross-platform fakes with request, payload, cache, callback, and event assertions. No production behavior was implemented. Isolated result on the current shim baseline: 64 tests executed, 63 fail at standardized unimplemented APIs and the pure bitflag composition case passes; 0 ignored. Full validation passed: cargo fmt --check, all three generator --check gates, API coverage, parity check, tool unit tests, workspace/all-target cargo check, downstream locked API compile, workspace test --no-run, clippy -D warnings, cargo doc, and git diff --check. Parity is now translated=650, ignored-live=19, benchmark=4, pending=616, drifted=0; every remaining pending identity is under LibreMetaverse.Tests/RLV/ and belongs to #25. The existing 19 live-grid identities remain conditionally ignored only when GRID_USER, GRID_PASSWORD, or GRID_LOGIN_URL is absent.