CultLib/tests/GameCult.Mesh.Tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 7c4bc2bdc0 Make generated and reflective document members one rule
The generator and CultDocumentRegistry now discover members by the same
steps: most-derived declaration first, override chain collapsed to one
member, attributes read up the override chain, rejections in one order
with one text (GCC001 / InvalidOperationException).

- Accessors are named per document, so documents sharing a [CultName] or
  [CultIndex] base member no longer emit duplicate methods (CS0111).
- Duplicate [Key] slots are refused, including new-hidden fields and
  properties; a hidden persisted member with a different slot is refused.
- String [Key("x")] gets its own message instead of "has no [Key]".
- A persisted property whose set accessor is private, protected or init,
  or a readonly field, is refused instead of CS0272 in generated code.
- Overrides: MessagePack's DynamicObjectResolver reads the base
  declaration's [Key]/[IgnoreMember] (it throws "key is duplicated" for a
  re-keyed override and serializes an override marked [IgnoreMember]).
  An override that changes them is refused in both paths; an override
  that repeats or omits them is accepted and byte-pinned.
- Typed Serialize<T>/Deserialize<T> used static Options and skipped
  generated codecs and declared resolvers; deleted. CultNetDocumentBinding
  and CultMeshSnapshots route through the untyped path with their registry.

DocumentShapeSweepTests compiles each shape through the generator and
compares generated vs reflective schema id, catalog, name/index values
and payload against MessagePack's own bytes, or equal rejection text.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 22:00:16 +02:00
..
CultMeshAuthorityProofTests.cs Ship authenticated remote transports in Unity package 2026-08-18 20:23:27 +02:00
CultMeshAuthorityResolverTests.cs Centralize CultMesh authority resolution 2026-07-13 14:00:26 +01:00
CultMeshBodyPublicationTests.cs Keep exact live subscriptions active before publication 2026-07-19 11:49:18 +01:00
CultMeshBodySessionTests.cs Authenticate CultMesh authority routes and replay operations 2026-08-18 19:02:46 +02:00
CultMeshBodyTransportTests.cs Fence body commits by demand generation 2026-08-19 14:27:22 +02:00
CultMeshCdnTests.cs Add CultMesh distributed asset packages 2026-06-28 07:54:00 +01:00
CultMeshClientTests.cs Authenticate CultMesh authority routes and replay operations 2026-08-18 19:02:46 +02:00
CultMeshContentSessionTests.cs Authenticate CultMesh authority routes and replay operations 2026-08-18 19:02:46 +02:00
CultMeshContentTransferTests.cs Stream CDN artifacts in coarse durable windows 2026-07-19 20:29:07 +01:00
CultMeshDeterministicNetwork.cs Establish CultMesh reliability failure harness 2026-07-12 19:56:20 +01:00
CultMeshDiscoveryServiceTests.cs Bind CultMesh authority identity to physical routes 2026-08-18 17:21:58 +02:00
CultMeshEntityPrefabTests.cs Add CultMesh distributed asset packages 2026-06-28 07:54:00 +01:00
CultMeshFrameBodyTests.cs Support mapped frame bodies on Unix 2026-08-18 04:18:46 +02:00
CultMeshProviderSessionWireTests.cs Fence provider RUDP connection generations 2026-07-19 00:50:20 +01:00
CultMeshReliabilityDiagnosticsTests.cs Establish CultMesh reliability failure harness 2026-07-12 19:56:20 +01:00
CultMeshSessionManagerTests.cs Authenticate CultMesh authority routes and replay operations 2026-08-18 19:02:46 +02:00
CultMeshStreamingTests.cs Make generated and reflective document members one rule 2026-09-13 22:00:16 +02:00
CultMeshTestTrust.cs Authenticate CultMesh authority routes and replay operations 2026-08-18 19:02:46 +02:00
CultMeshTransportModularityTests.cs Bind CultMesh application ingress to session identity 2026-08-18 23:08:59 +02:00
GameCult.Mesh.Tests.csproj Bind CultMesh application ingress to session identity 2026-08-18 23:08:59 +02:00