CultLib/tests/GameCult.Networking.Tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens b3a8f6d195 Fix batch 4 (S-9/S-11): shard-scoped asOf, and the v1 subscribe door runs before the hop refusal
S-9: CurrentAsOf() returned the maximum shard-log sequence across every
shard the database holds, but that sequence is a per-shard counter -
mixing shards' counters together could report a page as exact "as of" a
sequence a different, untouched shard advanced to while the page's own
shard sat still. CultNetDatabase gains CurrentAsOf(shardId), the watermark
of one shard's own log, and CultNetDocumentRegistry.SelectPage now scopes
asOf to the single shard EnsureSingleShard already resolves the matched
rows to, falling back to the caller-supplied value only when the selection
matches no rows.

S-11: CultNetDatabaseServer.HandleSubscribeV1Async refused a hop-bearing
selection before running the door (Validate), so a selection invalid for
an unrelated reason (an empty keys list, an undeclared index, ...) got a
hop refusal that had nothing to do with why it was actually rejected. The
door now runs first, unconditionally. The hop refusal also always named
the field "cites" even when the selection carried Cited instead; it now
names whichever hop is actually set.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 21:12:07 +02:00
..
CultNetCanonicalNumberTests.cs CultNet selection cut1 fix batch: R-I/K/D tests and R-A/R-M reflection fix 2026-09-22 09:39:36 +02:00
CultNetDocumentBindingResolverTests.cs Make generated and reflective document members one rule 2026-09-13 22:00:16 +02:00
CultNetOperationServerTests.cs Bind CultMesh authority identity to physical routes 2026-08-18 17:21:58 +02:00
CultNetSchemaContractTests.cs Land fix batch 3's R-S: the schemas describe the bytes C# writes 2026-09-22 20:12:58 +02:00
CultNetSchemaServerGroupTests.cs Share CultNet handlers across transports 2026-08-18 01:31:04 +02:00
CultNetSelectionEvaluatorTests.cs Land fix batch 3's R-O and R-Q: keyed length-prefixed cursors, replica-apply sequence gap 2026-09-22 20:04:22 +02:00
CultNetSelectionFixBatchTests.cs Fix batch 4 (R-V/R-W/S-8/R-Y): row identity is (schemaId, recordKey), and the cursor digest covers its own body 2026-09-22 21:11:54 +02:00
CultNetSelectionPageTests.cs CultNet selection cut1 fix batch: R-I/K/D tests and R-A/R-M reflection fix 2026-09-22 09:39:36 +02:00
GameCult.Networking.Tests.csproj Add GameCult Mesh package home 2026-05-19 19:08:48 +01:00
MiniJsonSchemaValidator.cs Add "not" support to MiniJsonSchemaValidator 2026-09-22 20:13:53 +02:00
NetworkingTests.cs Fix batch 4 (S-9/S-11): shard-scoped asOf, and the v1 subscribe door runs before the hop refusal 2026-09-22 21:12:07 +02:00
README.md JSON backing store, I/O fixes, Networking Security 2026-04-18 13:01:24 +01:00
SelectionParityVectorTests.cs Add the two pending cites-refusal parity vectors, now that C# refuses them 2026-09-22 19:22:18 +02:00

GameCult.Networking.Tests

GameCult.Networking.Tests contains NUnit tests for the networking library.

Scope

The tests currently cover:

  • AES-GCM encrypt/decrypt round-trips in Secret
  • signed session-token validation
  • signed session-token tamper detection
  • signed session-token expiry handling

Run

dotnet test tests\GameCult.Networking.Tests\GameCult.Networking.Tests.csproj

Adding New Tests

Typical future areas to expand include:

  • client reconnect and verify flows
  • login and registration integration tests
  • malformed message handling
  • rate-limiting behavior under concurrency