AyCode.Core/AyCode.Services.Server.Tests/SignalRs
Loretta 2d04b9f8f6 Zero-copy SignalR: direct object response, no SignalData
Major overhaul for SignalR response pipeline:
- All deserialization now uses byte[] (offset/length) for zero-copy, allocation-free operation; all span/memory overloads removed.
- SignalR protocol sends (signalParams, object) directly; SignalData envelope and related logic removed.
- Server sets SignalParams.SignalDataType so protocol deserializes to the correct runtime type on the client.
- SignalResponseDataMessage now only used for client request/response tracking and stream path; RawResponseData holds the actual object.
- All extension methods, helpers, and infrastructure updated to use new byte[]-based APIs.
- AcSignalRDataSource and all test/benchmark code updated for new object flow.
- Removes all diagnostics, logging, and error handling related to binary envelopes.
- Enables true zero-copy, type-safe, allocation-free SignalR response handling.
2026-04-06 22:45:00 +02:00
..
SignalRDatasources Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
README.md Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
SignalRClientToHubTest.cs Refactor serializer options, string fast paths & analysis 2026-01-25 16:40:40 +01:00
SignalRTestHelper.cs Zero-copy SignalR: direct object response, no SignalData 2026-04-06 22:45:00 +02:00
TestSignalRService2.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
TestSignalRTags.cs Add expression serialization & chain API for JSON deserialization 2025-12-29 15:28:46 +01:00
TestableSignalRClient2.cs Zero-copy SignalR: direct object response, no SignalData 2026-04-06 22:45:00 +02:00
TestableSignalRHub2.cs Zero-copy SignalR: direct object response, no SignalData 2026-04-06 22:45:00 +02:00

README.md

SignalRs

Full SignalR client→hub→service test infrastructure with testable components that bypass real network connections.

Key Files

  • SignalRClientToHubTest.cs — Abstract round-trip test base. Tests: Post_SingleInt, Post_TwoInts, Post_Bool, Post_String, Post_Guid, Post_Enum, and more.
  • TestableSignalRClient2.csAcSignalRClientBase implementation: direct hub calls, zero network, zero delays.
  • TestableSignalRHub2.csAcWebSignalRHubBase implementation: simulates connection state, user identity, claims. Captures responses.
  • TestSignalRService2.cs — 50+ methods: primitives (23), complex objects (3), collections (9), arrays (6), mixed (4), async (4), Task.FromResult (4), large datasets, property mismatch, DataSource CRUD (7), production bug reproductions.
  • TestSignalRTags.cs — 50+ const int message tags (100-500 range).
  • SignalRTestHelper.cs — CreatePrimitiveParamsMessage, CreateComplexObjectMessage, GetResponseData, AssertSuccessResponse.

Subfolders

Folder Purpose
SignalRDatasources/ DataSource CRUD and collection tests